सबसे कम कोड बेतरतीब ढंग से जगह के लिए अंक और उन्हें कनेक्ट करें


26

काम

यह काफी सरल कोडिंग कार्य है, आपके सभी प्रोग्राम को एक कैनवास (या किसी अन्य कोडिंग भाषा में आपका विकल्प) पर एक बिंदु रखना है और इसे पहले से लगाए गए सभी डॉट्स से कनेक्ट करना है। आपके प्रोग्राम को एक इनपुट में लेना चाहिए, डॉट्स की संख्या, जिसे रखा जाना चाहिए, और कनेक्ट किए गए डॉट्स के साथ कुछ प्रकार के डिस्प्ले को आउटपुट करना चाहिए। उदाहरण

आवश्यकताओं

  • मुझे इसे चलाने में सक्षम होना चाहिए, जिसका अर्थ है कि इसे ऑनलाइन चलाने के लिए संकलक / उपकरण होना चाहिए, या सार्वजनिक रूप से डाउनलोड करने के लिए उपलब्ध होना चाहिए।
  • आपको इस चुनौती के सेट होने से पहले बनाई गई किसी भी लाइब्रेरी का उपयोग करने की अनुमति है, जब तक कि इसे हल करने के एकमात्र उद्देश्य के लिए डिज़ाइन नहीं किया गया था।
  • यह एक सबसे छोटा कोड कार्य है, जिसका अर्थ है वर्ण। टिप्पणियाँ, कोड जो रंग बदलता है (सावधानी के लिए) और पुस्तकालयों की अनदेखी की जाएगी।
  • आपका उत्तर अद्वितीय होना चाहिए, अन्य लोगों का कोड चोरी न करें, इसे कुछ वर्णों को छोटा करें और इसे फिर से लिखें।
  • यह 5 और 100 के मूल्यों के लिए, 5 मिनट से कम समय में चलने में सक्षम होना चाहिए। इसे कम से कम 200 * 200 के रिज़ॉल्यूशन का उपयोग करना चाहिए और प्रत्येक डॉट को गैर-तुच्छ वितरण का उपयोग करके कैनवास पर यादृच्छिक स्थान पर रखना चाहिए।

वर्तमान लीडरबोर्ड

Flawr        - Matlab        - 22  - Confirmed
Falko        - Python 2      - 41  - Confirmed
Wyldstallyns - NetLogo       - 51  - Confirmed 
Ssdecontrol  - R             - 66  - Confirmed
David        - Mathematica   - 95  - Confirmed
ILoveQBasic  - QBasic        - 130 - Confirmed
Adriweb      - TI-Nspire Lua - 145 - Confirmed
Manatwork    - Bash          - 148 - Confirmed
Doorknob     - Python 2      - 158 - Confirmed
Kevin        - TCL           - 161 - Confirmed
M L          - HPPPL         - 231 - Confirmed
Manatwork    - HTML/JS       - 261 - Confirmed - Improved code of Scrblnrd3
Makando      - C#            - 278 - Confirmed
Scrblnrd3    - HTML/JS       - 281 - Confirmed
Geobits      - Java          - 282 - Confirmed

यदि मैंने आपको याद किया है, तो मुझे बहुत खेद है, बस इतना कहकर अपने काम के लिए एक टिप्पणी जोड़ें और जैसे ही मैं इसे देखूंगा, मैं इसे जोड़ दूंगा =)

टी एल; डॉ

  • इनपुट - डॉट्स की संख्या (उदाहरण, हार्ड कोडित की जा सकती है)
  • आउटपुट - बेतरतीब ढंग से रखे गए डॉट्स की छवि, सभी एक दूसरे से जुड़े (ग्राफिक)
  • विजेता - सबसे छोटा कोड

1
क्या मैंने गणित पुस्तकालयों की अनुमति दी है? क्या पुस्तकालय वास्तव में आवश्यकता # 2 से बचने की कोशिश कर रहे हैं?
नाथन मेरिल

2
क्या संकल्प के लिए कोई सीमा है? यह काफी आसान है यदि आप मुझे 1x1 की छवि
जॉन ड्वोरक

3
जब आप कहते हैं कि कोई "गणित" पुस्तकालय नहीं है, तो उन भाषाओं के बारे में क्या है जहां डिफ़ॉल्ट PRNG "गणित" में शामिल है? मैं एक जनरेटर लिखना नहीं चाहता।
Geobits 13

1
चूंकि आप लाइब्रेरी कोड को अस्वीकार करते हैं जो सीधे कार्य से संबंधित है, और यह कार्य अनिवार्य रूप से एक यादृच्छिक नेटवर्क ग्राफ खींचना है, देशी ग्राफ़-ड्राइंग फ़ंक्शन का उपयोग भी नहीं है? यह प्रतिबंध अच्छी तरह से परिभाषित से दूर है।
15

3
@PopeyGilbert मुझे कहना चाहिए, मैंने कभी भी एक नए उपयोगकर्ता को उनके सवालों के साथ इतने संवेदनशील नहीं देखा और व्यक्तिगत रूप से प्रत्येक उत्तर का परीक्षण किया और लीडरबोर्ड बनाए रखा। अच्छा काम और PPGC में आपका स्वागत है!
केल्विन के शौक

जवाबों:


21

मतलाब (22)

gplot(ones(n),rand(n))

यह माना जाता है कि n अंक की संख्या है, और यह n = 10 के लिए इस तरह दिखता है: यादृच्छिक ग्राफ

n=6:

बिना सोचे समझे

explaination

gplotरेखांकन की साजिश रचने के लिए एक कमांड है। पहला तर्क एक n x nघटना मैट्रिक्स है (लोगों से भरा, जाहिर है)। दूसरा तर्क n x 2बिंदुओं के निर्देशांक के साथ एक मैट्रिक्स होना चाहिए , लेकिन इससे कोई फर्क नहीं पड़ता कि दूसरा आयाम 2 बड़ा है, इसलिए मैं बस n x nयादृच्छिक मूल्यों का मैट्रिक्स उत्पन्न करता हूं (जो कि मैट्रिक्स उत्पन्न करने से 2 वर्ण छोटा है n x 2)।

प्रलेखन के लिंक


मतलाब का इस्तेमाल कभी नहीं किया, इसलिए परीक्षण में एक पल लगेगा - लेकिन छवि से यह ठीक लग रहा है! 22 पात्रों में इसे करने के लिए बधाई। संपादित करें - यह पता चलता है कि मैं इसका परीक्षण नहीं कर सकता, लेकिन छवि को देखते हुए यह सही लगता है इसलिए मैं इसकी अनुमति दूंगा। हालांकि किसी और को यह कृपया परीक्षण कर सकते हैं?
अलेक्जेंडर क्रैग्स

3
धन्यवाद =) आप इसे यहाँ देख सकते हैं: octave-online.net चूंकि ऑक्टेव मूल रूप से MatLab का ओपनसोर्स संस्करण है।
14

27

जावा: 318 282 265

क्योंकि, हां पता है, जावा:

class M{public static void main(String[]a){new Frame(){public void paint(Graphics g){int i=0,j,d=640,n=25,x[]=new int[n],y[]=x.clone();for(setSize(d,d);i<n;i++)for(j=0,x[i]=(int)(random()*d),y[i]=(int)(random()*d);j<i;g.drawLine(x[i],y[i],x[j],y[j++]));}}.show();}}

इसका सिर्फ एक साधारण लूप है जो यादृच्छिक डॉट्स बनाता है और वर्तमान डॉट और पिछले सभी के बीच की रेखाएं खींचता है।

25 बिंदुओं के साथ उदाहरण:

यहाँ छवि विवरण दर्ज करें

लाइन ब्रेक और आयात के साथ:

import java.awt.*;
import static java.lang.Math.*;

class M{
    public static void main(String[]a){
        new Frame(){
            public void paint(Graphics g){
                int i=0,j,d=640,n=25,x[]=new int[n],y[]=x.clone();
                for(setSize(d,d);i<n;i++)
                    for(j=0,x[i]=(int)(random()*d),y[i]=(int)(random()*d);
                        j<i;
                        g.drawLine(x[i],y[i],x[j],y[j++]));
            }
        }.show();
    }
}

संपादित करें: चूंकि हम आयातों की गिनती नहीं कर रहे हैं, इसलिए मैंने कुछ पात्रों को सहेजने के लिए कुछ और चीजें आयात कीं।

संपादित करें 2: ओपी ने डॉट्स की हार्डकोडिंग संख्या के लिए एक भत्ता जोड़ा। -17 वर्ण :)


अच्छा! पहले एक होने पर बधाई।
अलेक्जेंडर क्रैग

2
पहला, लेकिन मुझे यकीन है कि यह लंबे शॉट से कम से कम नहीं होगा। कारण, फिर पता है, जावा;)
जोबिट्स

3
मैं उन लोगों की प्रशंसा करता हूं, जो हमेशा निराशाजनक रूप से जावा में कार्य को हल करते हैं, मैं ग्रहण शुरू करने के लिए बहुत आलसी
होऊंगा

1
@ क्रंचर हाँ, जावा कोड गोल्फ के लिए निश्चित रूप से सबसे अच्छी भाषा नहीं है। हालाँकि यह पहली भाषा थी जिसे मैंने सीखा, और इसे चुनना काफी आसान है। हालांकि, इसने मुझे भी अच्छी स्थिति में रखा, और व्यक्तिगत रूप से, मेरी पसंदीदा भाषा है।
अलेक्जेंडर क्रैग्स

1
मुख्य पैरामीटर को अंतिम रूप में परिभाषित करना आवश्यक नहीं है। आप उन 6 पात्रों को काट सकते हैं
क्रंचर

11

अजगर 2 - 41 35

इस चुनौती के लिए अनुमति के रूप में कुछ पुस्तकालयों को आयात करने के बाद

from pylab import rand as r
from pylab import plot as p
from itertools import product as x
from itertools import chain as c

हम कोड की केवल एक पंक्ति के साथ कुछ जुड़े हुए बिंदुओं की साजिश कर सकते हैं:

X=r(5,2);p(*zip(*c(*list(x(X,X)))))

(स्क्रीनशॉट को 10 अंकों के साथ जनरेट किया गया था।)


[हटाई गई टिप्पणी का जिक्र:] मुझे पता है, लेकिन यहां "पुस्तकालयों की अनदेखी की जाएगी"। यदि नहीं, तो मैं निश्चित रूप से इसे अलग तरीके से लागू करूंगा। उन पुस्तकालयों का उपयोग करने से importसामान्य कोड गोल्फ चुनौती में बयानों को सही ठहराने के लिए पर्याप्त वर्ण नहीं बचते हैं ।
फाल्को

pylab मानक वितरण का हिस्सा है? मुझे लगता है कि हम कुछ भी हम चाहते हैं बस आयात नहीं कर सकते। उस मीट्रिक के तहत आप किसी भी आयात विवरण के साथ अजगर में कुछ भी लागू कर सकते हैं।
क्रंचर

हाँ यह है । मैंने वही किया जो मुझे लगा कि यह मान्य होगा। लेकिन मुझे यकीन नहीं। और टिप्पणियों को देखने पर एक बड़ी चर्चा चल रही है। जैसे ही यह स्पष्ट हो जाता है कि मैं अपना कोड समायोजित करने को तैयार हूं।
फाल्को

हालाँकि इस प्रतियोगिताओं में यह देखा गया है कि पुस्तकालयों को दिन-प्रतिदिन बदलने की क्या अनुमति है, पाइलैब को निश्चित रूप से अनुमति दी जानी चाहिए।
अलेक्जेंडर क्रैग

8

गणितज्ञ 95 87

कुछ मदद से belisarius

CompleteGraph[n, VertexSize -> {2, 2},
VertexCoordinates -> Table[RandomInteger[{0, 199}, 2], {n}]]

एन = 5

5


एन = 100

समय: 2.082654 सेकंड

100


यह सत्यापित है, मैं इसे काम करने के लिए मिल गया हूँ! क्या गणितज्ञ आमतौर पर एक भाषा के रूप में गिना जाता है?
अलेक्जेंडर क्रैग

1
@PopeyGilbert ज़रूर करता है। कर रहे हैं ~ 750 जवाब मेथेमेटिका में अब तक।
Geobits 13

ओह, वाह, ठीक है! मेला पर्याप्त <3
अलेक्जेंडर क्रैग

मिथिंक्स यह छोटा है और नियमों को संतुष्ट करता हैCompleteGraph[100, VertexCoordinates -> RandomReal[{0, 199}, {100, 2}]]
डॉ। बिसरिज़री

धन्यवाद, आप सही हैं। मुझे लगा कि मैं जीत नहीं सकता, इसलिए मैंने सोचा कि मैं इसे बहुत सुंदर बनाऊंगा (वर्टेक्ससाइज़ -> {2,2}। मैंने हालांकि, इस तथ्य को नजरअंदाज कर दिया कि 100इसमें शामिल होने के लिए अनावश्यक था, और यह Input[]वैकल्पिक था।
डेविड

7

अजगर 2, 158

वर्ण गणना में शामिल नहीं किए गए आयात विवरण, जैसा कि प्रश्न में उल्लेखित है ("पुस्तकालयों की अनदेखी की जाएगी")।

from PIL import Image,ImageDraw
from random import randint

s=[(randint(0,200),randint(0,200))for _ in range(int(input()))]
i=Image.new('RGB',(200,200))
[ImageDraw.Draw(i).line((p,q),255)for p in s for q in s]
i.show()

नमूना आउटपुट:

n = 2 (...):

n = 2

n = 10 (फैंसी 3 डी चीज या कुछ और जैसा दिखता है):

एन = 10

n = 100 (ऐसा लगता है जैसे कोई लाल पेन से BLELEEEAARARGHHH गया):

एन = 100

n = 500, 1000, 10000 (लगभग 1.5 सेकंड, 5-6 सेकंड और क्रमशः 3.5 मिनट में रन):

नोट: 10000 अंक एक को थोड़ा अनुकूलित संस्करण के साथ चलाया गया था जो कि लाइन 3 (आयात सहित) में नहीं बदला गया:

d=ImageDraw.Draw
for p in s:
  for q in s:d.line((p,q),255)

नहीं तो हमेशा के लिए ले लिया होता। : पी

Ungolfed:

from PIL import Image, ImageDraw
from random import randint
point_count = int(input())
image_size = 200
points = [(randint(0, image_size), randint(0, image_size)) for _ in range(point_count)]
image = Image.new('RGB', (200, 200))
draw = ImageDraw.Draw(image)
for start_point in points:
    for end_point in points:
        draw.line((start_point, end_point), 255)
image.show()

1
वर्तमान में सबसे छोटा प्रवेशक होने पर बधाई! N = 100 पर अपनी टिप्पणी से प्यार करें। सबसे अच्छा हो सकता है कि आप image.new और image_size को 800 में रखें। कम अजीब लग सकता है =)
अलेक्जेंडर क्रैग्स

@PopeyGilbert तो मैं खान से आयात बयान निकाल सकते हैं ? मैंने माना कि "पुस्तकालयों की उपेक्षा करें" का मतलब है कि पुस्तकालय की गणना नहीं की गई थी (हमेशा की तरह)।
Geobits

हाँ, क्योंकि कुछ भाषाओं में बहुत कम आधार कार्य होते हैं, और अपना सारा सामान आयात करना पड़ता है। अगर आपको लगता है कि यह उचित नहीं है, तो मैं इस मेले को बनाने की कोशिश करना चाहता हूं।
अलेक्जेंडर क्रैग

@PopeyGilbert मैंने सिर्फ इसलिए पूछा क्योंकि यह आदर्श नहीं है और मैं इसे साफ़ करना चाहता था इससे पहले कि मैं अपने कोड से कुछ और वर्ण
काटूँ

1
चूंकि संकल्प केवल हो गया है कम से कम 200x200, आप की स्थापना करके कुछ वर्ण (5, मुझे लगता है) को बचा सकता है x=255और उसका उपयोग के मामलों को बदलने के लिए 200और 255
13

5

आर, 66

यह एक सीमा धोखा है, लेकिन मुझे अभी भी लगता है कि यह नियमों के भीतर है। के igraphसाथ पैकेज लोड करके सेट करें library(igraph), जिसे CRAN से डाउनलोड किया जा सकता है install.packages("igraph")। फिर चर को इनपुट असाइन करें N। नियमों के अनुसार, इन की गिनती कुल में नहीं की जाती है।

G=graph.adjacency(matrix(1,N,N),"un")
plot(G,layout=layout.random)

एन = 50

यहाँ छवि विवरण दर्ज करें

ध्यान दें कि यह कोड स्वयं-कनेक्शन भी बनाता है। उन्हें खत्म करना (हालांकि उनके खिलाफ कोई नियम नहीं है) 6 वर्ण जोड़ता है:

G=graph.adjacency(matrix(1,N,N),"un",diag=F)
plot(G,layout=layout.random)

आर, १४१

यह बेस आर में एक ईमानदारी से अच्छाई समाधान है:

p=replicate(2,runif(N))
g=as.matrix(expand.grid(1:N,1:N))
plot.new()
apply(g,1,function(i) segments(p[i[1],1],p[i[1],2],p[i[2],1],p[i[2],2]))

हालाँकि आपको अभी भी Nहाथ से प्रवेश करना है।

एन = 50

यहाँ छवि विवरण दर्ज करें

मैं सोच रहा था कि क्या एक forलूप की तुलना में कम वर्ण होंगे applyलेकिन मुझे जो मिला है उससे मैं खुश हूं।


मैं स्व-कनेक्ट स्वीकार करता हूं, तकनीकी रूप से प्रश्न सभी बिंदुओं के लिए एक रेखा है। मैंने इसका परीक्षण किया है और इसकी पुष्टि भी की है।
अलेक्जेंडर क्रैग

क्या आप बिंदुओं को जोड़ने वाले तीर को ध्यान में रखते हैं? यह ,"un"पहली पंक्ति के अंत में समाप्त करके एक और 5 को बचाएगा ।
छायाकार

यदि आपको कोई आपत्ति नहीं है, तो मुझे लगता है कि हमें इसे बनाए रखना चाहिए, इसलिए इसे प्रत्येक बिंदुओं को जोड़ने वाली रेखाएं होनी चाहिए। इस तरह से उत्तर प्रत्येक उत्तर में समान दिखाई देगा।
अलेक्जेंडर क्रैग्स

5

QBasic या QuickBasic, 130 वर्ण

SCREEN 1:RANDOMIZE:N=10:DIM X(100),Y(100):FOR I=1 TO N:X(I)=RND*320:Y(I)=RND*200:FOR J=1 TO I:LINE(X(I),Y(I))-(X(J),Y(J)):NEXT J,I

कोड भिन्नता

  • आप एक बीज के लिए संकेत प्राप्त नहीं करना चाहते हैं, की जगह RANDOMIZEके साथ RANDOMIZE TIMER
  • यदि आप एन के लिए संकेत दिया जाना चाहते हैं, के N=10साथ बदलें INPUT Nया INPUT "N";N

नमूना चलता है

N=5DOSBox 0.74 पर चल रहे QBasic 1.1 के साथ परीक्षण के लिए :

N=100DOSBox 0.74 पर चल रहे QBasic 1.1 के साथ परीक्षण के लिए :


ओह, वाह, एन = 5 के लिए अच्छी छवि! प्यार करो कि यह एक पेंटाग्राम है जब बीज 42 है। परीक्षण किया और पुष्टि की।
अलेक्जेंडर क्रैग

4

बैश + इमेजमैजिक: 148 अक्षर

c=()
while((i++<$1)); do
p=$[RANDOM%200],$[RANDOM%200]
c+=($p)
for e in ${c[@]};do
d+="line $p $e"
done
done
convert -size 200x200 xc: -draw "$d" x:

नमूना रन:

bash-4.3$ time ./line.sh 5

real    0m5.256s
user    0m0.137s
sys     0m0.017s

नमूना उत्पादन:

5 जुड़े हुए बिंदु

नमूना रन:

bash-4.3$ time ./line.sh 25

real    0m3.043s
user    0m0.574s
sys     0m0.023s

नमूना उत्पादन:

25 जुड़े हुए बिंदु

नमूना रन:

bash-4.3$ time ./line.sh 100

real    0m5.662s
user    0m11.156s
sys     0m0.076s

नमूना उत्पादन:

100 जुड़े हुए बिंदु


परीक्षण किया और पुष्टि की। अच्छी तरह से किया हुआ काम!
अलेक्जेंडर क्रैग्स

मुझे बहुत खेद है, क्या मैं इसे नेता मंडलों में जोड़ना भूल गया? मैं अब वही करूंगा।
अलेक्जेंडर क्रैग

4

टीसीएल 161 चार

स्पष्ट रूप से जीतने के लिए नहीं जा रहा है, लेकिन यहां प्रस्तुत कई अन्य लोगों की धड़कन है, और मुझे लगता है कि यह एक बहुत ही कम बोलचाल की भाषा का अच्छा उपयोग करता है।

for {set i 0} {$i<10} {incr i} {lappend l [expr rand()*291] [expr rand()*204]}
pack [canvas .c]
foreach {x y} $l {foreach {w z} $l {.c create line $x $y $w $z}}

उदाहरण

मेरे सिस्टम पर डिफ़ॉल्ट कैनवास का आकार 291x204 प्रतीत होता है। निश्चित नहीं कि क्यों, लेकिन इसका उपयोग करने से 13 वर्ण बचते हैं।

बहुत तेजी से, ५ सेकंड में ४०० अंक, ५०० में ~ १० एस। आकार और बिंदुओं को मनमाने ढंग से बढ़ाया जा सकता है और रंग और रेखा की शैलियों को बदल दिया जा सकता है, बिल्कुल पात्रों के मूल्य पर। Un-golfed और चर का उपयोग करके इसे स्पष्ट और स्केल और रंग में आसान बनाने के लिए:

set n 20
set width 500
set height 500
set bg_color black
set line_color white
for {set i 0} {$i < $n} {incr i} {
        lappend points [expr rand() * $width] [expr rand() * $height]
}
canvas .c -width $width -height $height -background $bg_color 
pack .c
foreach {x1 y1} $points {
        foreach {x2 y2} $points {
                .c create line $x1 $y1 $x2 $y2 -fill $line_color
        }
}       

1
छवि ठीक लगती है, दुर्भाग्य से मेरा कंप्यूटर काम नहीं कर रहा है इसलिए मैं बाद में इसका परीक्षण करूँगा। इस तरह की एक अविकसित भाषा का उपयोग करने के लिए बधाई।
अलेक्जेंडर क्रैग

बस इसकी पुष्टि की, एक सफल प्रविष्टि पर बधाई!
अलेक्जेंडर क्रैग्स



4

[TI-Nspire] लुआ - 145 135 130

(अपडेट किया गया संस्करण)

N = 10 के साथ स्क्रीनशॉट

"आर" के रूप में "गणित" आयात करना, पहला, जैसा कि अनुमत है: r=math.random

वास्तविक कोड:

function on.paint(g)t={}for b=1,2*n-1,2 do t[b]=r(318)t[b+1]=r(212)for c=1,b-1,2 do g:drawLine(t[b],t[b+1],t[c],t[c+1])end end end

नोट: यह कोड TI-nspire कैलकुलेटर पर काम करता है (। TI इस मंच की हाल ही में OSes को लुआ पटकथा कहा, एक और भी आधारित API उदाहरण के लिए ग्राफ सामान आदि करने के लिए उपयोगकर्ताओं की अनुमति के साथ)
यह भी किया जा सकता है यहाँ ऑनलाइन करने की कोशिश की है (बस मिटा डेमो स्क्रिप्ट और n=10उदाहरण के लिए मेरा prepend )


मेरे लिए लुआ सीखने का समय!
बीटा डेके

1
यह वही गलती के रूप में से पीड़ित रहा है fuandon के नष्ट PowerShell जवाब और VLO 'भी हटा रहा है आर जवाब: आप अन्य सभी डॉट्स के साथ नहीं हर डॉट जोड़ी में बिंदुओं को जोड़ना,। (इस साइट पर Lua इतना दुर्लभ है। कृपया इसे हटाने के बजाय अपना कोड ठीक करें।)
मैनटवर्क

ओह, मेरा बुरा - मैं जल्द ही ठीक कर दूँगा!
एड्रिएब

वहाँ हम चलते हैं, मुझे बताने के लिए धन्यवाद :)
Adriweb

यह परीक्षण और पुष्टि की गई है! लुआ के उपयोग पर अच्छा किया।
अलेक्जेंडर क्रैग

3

सी # विंडोज रूपों, 268

static void k(int n,int s){var f=new Form{Height=s+50,Width=s+25};f.Paint+=(u,v)=>{var r=new Random();var p=new Point[n];while(n>0)p[--n]=new Point(r.Next(s),r.Next(s));foreach(var a in p)foreach(var b in p)f.CreateGraphics().DrawLine(Pens.Tan,a,b);};f.ShowDialog();}

एन = 5

5 बिंदुओं का उपयोग करके प्लॉट करें

एन = 50

एन = 50 का उपयोग कर प्लॉट

पूरा कोड नीचे दिया गया है

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    static class Program
    {
        static void Main()
        {
            k(50, 200);
        }
        static void k(int n, int s)
        {
            var f = new Form {Height = s + 50, Width = s + 25};
            f.Paint += (u, v) =>
            {
                var r = new Random();
                var p = new Point[n];
                while (n > 0)
                    p[--n] = new Point(r.Next(s), r.Next(s));
                foreach (var a in p)
                    foreach (var b in p)
                        f.CreateGraphics().DrawLine(Pens.Tan, a, b);
            };
            f.ShowDialog();
        }
    }
}

परीक्षण किया और पुष्टि की! जब मैंने वर्ण गणना की जाँच की, तो मैंने पूर्ण कोड का उपयोग किया और जब यह >०० अक्षर ...> <के सामने आया तो आश्चर्यचकित रह गया। वैसे भी, एक सफल प्रविष्टि बनाने के लिए बधाई!
अलेक्जेंडर क्रैग्स

क्या Pens.Tanइसके बजाय कुछ शॉर्टकट नहीं है new Pen(Color.Tan)?
CompuChip

Pens.Tan का उपयोग करने के लिए परिवर्तित, एक अतिरिक्त 10 की बचत
जेड कोडर

2

HTML / JS, 210, मैनटवर्क के लिए धन्यवाद

<canvas id=q /><script>c=q.getContext("2d");r=Math.random;e=prompt(a=[]);for(i=0;i<e;i++){a[i]={x:r()*300,y:r()*150};for(j in a)c.beginPath()+c.moveTo(a[i].x,a[i].y)+c.lineTo(a[j].x,a[j].y)+c.stroke()}</script>

JSFiddle


यह सत्यापित है, मैं इसे काम करने के लिए मिल गया हूँ!
अलेक्जेंडर क्रैग्स

आप 5 बाइट बचाने ~~के m.floorलिए उपयोग कर सकते हैं
विलियम बारबोसा

बनाने canvasटैग स्वत: बंद और आसपास एकल उद्धरण हटाने idमूल्य: <canvas id=q />। (नोट आप पिछले विशेषता मान और स्वत: बंद होने के बीच एक स्थान छोड़ना है /।) Btw, Firefox में बिना ठीक काम करता है m.floor()और ~~
मैनटवर्क 17


पहली बार मैंने मैनटवर्क की jsfiddle की कोशिश की, मुझे लगा कि अलर्ट बॉक्स को पासवर्ड की आवश्यकता है! मैं हैरान था। कोई व्यक्ति कितना मूर्ख हो सकता है। मेरा मानना ​​है कि यह पर्याप्त रूप से दूसरे लोगों के लिए अलग है जो लीडर बोर्ड में किसी अन्य स्थान पर वारंट का जवाब देता है। क्या अन्य लोगों को लगता है कि यह काफी अलग है?
अलेक्जेंडर क्रैग

2

सी # डब्ल्यूपीएफ 306 296

partial class W:Window{public W(){InitializeComponent();int x=5,i=0,j,z=200;int[]f=new int[x],s=new int[x];var r=new Random();var X=new Grid();AddChild(X);for(;i<x;i++){f[i]=r.Next(z);s[i]=r.Next(z);for(j=i;j>=0;)X.Children.Add(newLine(){X1=s[j],Y1=f[j--],X2=s[i],Y2=f[i],Stroke=Brushes.Red});}}}

मैं यह कहना चाहूंगा कि मैं स्ट्रोक = ब्रश को हटा सकता हूं। लेकिन अफसोस की बात यह है कि मैं पारदर्शी लाइनों को चित्रित कर रहा हूं, और मेरा अनुमान है कि यह वास्तव में नहीं गिना जाएगा। : PI XAML व्यू में सिर्फ ग्रिड बनाकर बाइट के एक जोड़े को दाढ़ी भी बना सकता है। लेकिन यह अनुचित लग रहा था, इसलिए मैंने एक खाली कैनवास बनने के लिए एक्सएएमएल छीन लिया। (मैं XAML को बाइट्स के रूप में नहीं गिनता ...)

partial class W:Window
{
    public W()
    {
        InitializeComponent();
        int x=5,i=0,j,z=200;
        int[]f=new int[x],s=new int[x];
        var r = new Random();
        var X = new Grid();
        AddChild(X);
        for (;i<x;i++)
        {
            f[i]=r.Next(z);
            s[i]=r.Next(z);
            for (j=i;j>=0;)
                X.Children.Add(new Line()
                {
                    X1 = s[j],
                    Y1 = f[j--],
                    X2 = s[i],
                    Y2 = f[i],
                    Stroke = Brushes.Red
                });
        }
    }
}

XAML

<Window x:Class="W"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
</Window>

5

5

100

100


4
चूंकि यह WPF है इसलिए यह आउट ऑफ मेमोरी अपवाद के लिए लगभग 3k पॉइंट्स पर क्रैश हो जाएगा।
वोज़ज़ेक

परीक्षण किया और पुष्टि की, अच्छी तरह से यह C # WPF में कर रहा है!
अलेक्जेंडर क्रैग्स

2
varचरों को घोषित करते समय उपयोग करके थोड़ा छोटा किया जा सकता है ।
MarcinJuraszek

हाँ सचमुच। धन्यवाद! मैं "इस" से भी हटा सकता था।
वोजेज़ेक

1

HPPPL, 231 220

(HP प्राइम कलरिंग कैलकुलेटर के लिए HP प्राइम प्रोग्रामिंग लैंग्वेज)

इसे नीचे गिरा दिया। हर नए बिंदु के निर्माण के बाद सभी संभव नई लाइनों को आकर्षित करके 11 कम वर्ण। पिछले तीन के बजाय केवल दो नेस्टेड छोरों।

export c(n) begin rect();local g,h;a:=makemat(0,n,2);for g from 1 to n do a(g,1):=ip(random(1,320));a(g,2):=ip(random(1,240));if g>1 then for h from 1 to g-1 do line_p(a(h,1),a(h,2),a(g,1),a(g,2));end;end;end;freeze;end;

अनगोल्डेड (270 वर्ण):

export randomnet(n)
begin
rect();
local g,h;
a:=makemat(0,n,2);
for g from 1 to n do
  a(g,1):=ip(random(1,320));
  a(g,2):=ip(random(1,240));
    if g>1 then
      for h from 1 to g-1 do
        line_p(a(h,1),a(h,2),a(g,1),a(g,2));
      end;
    end;
end;
freeze;
end;

उदाहरण:

ग (10)

connect_10_points_HPPPL

connect_10_points_HPPPL_2

ग (30)

connect_30_points_HPPPL

एचपी प्राइम कलर ग्राफिंग कैलकुलेटर में 320x240 पिक्सल कलर डिस्प्ले है।

यहाँ छवि विवरण दर्ज करें

एक एमुलेटर जो कनेक्टिविटी किट के साथ काम करता है, वह एचपी वेबसाइट पर या यहाँ उपलब्ध है: http://www.hp-prime.de/en/category/6-downloads

... अभी भी हार्डवेयर आने का इंतजार है। निष्पादन समय पर अद्यतन का पालन करेंगे।

आज मेरे एचपी प्राइम पहुंचे। यहां वास्तविक कैलकुलेटर पर n = 100 के लिए निष्पादन समय है:

औसत निष्पादन समय

N = 100 के लिए लगभग 0.65 s।

एमुलेटर मेरे कोर i5 2410M लैपटॉप पर लगभग 4 गुना तेज (लगभग 0.178 सेकेंड) है।


1
ठीक है, मैंने कभी भी उस प्रोग्रामिंग भाषा के बारे में नहीं सुना है, लेकिन यह एमुलेटर पर काम करता है इसलिए बधाई! मैंने आपको लीडरबोर्ड में जोड़ा है।
अलेक्जेंडर क्रैग

धन्यवाद। जैसे ही मेरे पास हार्डवेयर होगा, मैं निष्पादन समय की जांच करूँगा। एमुलेटर वास्तविक कैलकुलेटर से तेज है। लेकिन मुझे लगता है कि कैलकुलेटर के लिए n = 100 के लिए 5 मिनट की सीमा बहुत उदार है।
ML

1

नेटलोगो, 51 बाइट्स

crt 9 [create-links-with other turtles fd random 9]

आवश्यकतानुसार 9 अन्य स्थिरांक या चर को बदलें।

नेटलोगो आउटपुट


1
लीडरबोर्ड में जोड़ा गया! डर लगता है कि मुझे पूरी तरह से यकीन नहीं है कि यह कैसे परीक्षण करना है। मैंने नेटलोगो को डाउनलोड किया है और मैंने इसे ऑब्जर्वर सेक्शन में टाइप किया है, फिर इसे एक प्लॉट पर पेन कमांड के रूप में सेट करने की कोशिश की, न तो कार्य करने के लिए दिखाई दिया। यदि आप मुझे कुछ संकेत दे सकते हैं, तो मैं इसकी पुष्टि कर पाऊंगा =)
अलेक्जेंडर क्रैग्स

F'rinstance: 'कोड' टैब में जाएं और उस लाइन को एक फंक्शन में लपेटें, जो "शुरू" होता है और "एंड" पर रुकता है। फिर आप पहले बटन को जोड़ सकते हैं जो "गो" कहता है और इसे हिट करता है।
wyldstallyns 19:

1
की पुष्टि की! सुंदर समाधान। यह बहुत अच्छा है कि यदि आप जानते हैं कि कछुआ क्या है तो आप अंग्रेजी जैसे कोड को पढ़ सकते हैं। लगभग निश्चित रूप से सबसे पठनीय समाधान अभी तक।
अलेक्जेंडर क्रैग्स

साफ! धन्यवाद! मैं इस तरह के सवालों की तलाश में हूं जो नेटलोगो को हल करने के लिए तैयार हैं। विडंबना यह है कि मैं नेटलोगो को एक असली गोल्फ दावेदार बनाने और प्रयास करने के लिए उस अच्छी क्रिया को हटाने के लिए एक पाइथ-ईश फ्रंट फ्रंट का निर्माण कर रहा हूं।
wyldstallyns 15

1
एह, मुझे लगा कि यह अभी भी एक उत्कृष्ट जवाब है! अपने Pyth NetLogo कोड को देखने के लिए इंतजार नहीं कर सकता, उम्मीद है कि निहारना चाहिए!
अलेक्जेंडर क्रैग्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.