सबसे लंबे समय तक उत्पादन के लिए सबसे छोटा कोड [बंद]


10

यह एक बहुत सरल है।

सबसे अधिक आउटपुट जेनरेट करते समय आप सबसे छोटा प्रोग्राम लिख सकते हैं।

इसे मज़ेदार बनाने के लिए, अनंत उत्पादन करने वाले कार्यक्रमों को अयोग्य घोषित कर दिया जाएगा।

विजेता सबसे बड़ा आउटपुट आकार / कोड आकार अनुपात वाला कार्यक्रम है।

परिणाम मेरे कंप्यूटर पर काम करते हैं, जो एक मैक पर चल रहे मैक ओएस एक्स 10.7.5 पर इंटेल कोर आई 5 और 8 जीबी मेमोरी के साथ आधारित हैं।


यह स्पष्ट नहीं है कि आप क्या पूछ रहे हैं। जवाब अनबाउंड मेमोरी, अनबाउंड इंडेक्स साइज आदि को मान लेना चाहिए?
पीटर टेलर

@PeterTaylor मैंने तय किया।
tbodt

5
अगर मैं इसका पता लगा सकता हूं, तो उड़ा दिया जाए, लेकिन मुझे यकीन है कि एक व्याख्याकर्ता के पास एक खाली फ़ाइल की व्याख्या करने और किसी भी सामग्री का उत्पादन करने का एक तरीका है - जो एक अनंत अनुपात भी देगा ।

8
@LegoStormtroopr GolfScript बिल फिट बैठता है। एक खाली स्क्रिप्ट को निष्पादित करने से उत्पादन का एक ही चरित्र उत्पन्न होगा:\n
प्राइमो

1
@ user2509848 नहीं, क्योंकि, जैसा मैंने कहा, अनंत आउटपुट की गिनती नहीं है।
tbodt

जवाबों:


18

पायथन: 8 वर्ण कोड, 387420489 वर्ण आउटपुट - अनुपात: 48427561.125: 1

'a'*9**9

अधिक **9एस जोड़कर हम अनुपात को अनंत तक ले जा सकते हैं :

'a'*9**9**9
'a'*9**9**9**9
etc.

उदाहरण के लिए:

'a'*9**9**9**9**9**9

जिसका अनुपात ~ 10 10 10 10 10 10 8.568 (अकल्पनीय रूप से बड़ी संख्या) है।


दूसरे से बेहतर ...
tbodt

@tbodt क्यों? यदि आप पर्याप्त रूप से जोड़ते हैं **9, तो क्या यह अंततः नहीं बनेगा Infinity?
दरवाज़े

@Doorknob क्षमा करें, मुझे अजगर के बारे में सब कुछ नहीं पता है। अब चुनौती यह है: **9आउटपुट बनने से पहले अधिकतम कितनी संख्या आप बाहर डाल सकते हैं Infinity
tbodt

1
@ डॉर्कनोब पायथन इन्ट्स की मनमानी सटीकता है।
मेष राशि

@tbodt ऊपर टिप्पणी देखें।
मेष राशि

16

तो, ये सभी अच्छे कार्यक्रम हैं जो बहुत कम कोड के साथ बहुत सारे आउटपुट का उत्पादन करते हैं, लेकिन उनमें से कोई भी वास्तव में छोटा नहीं है ...

brainfuck, 5 वर्ण, 255 बाइट्स आउटपुट

-[.-]

मुझे लगता है कि यह एकमात्र उपयोग का मामला है जहां ब्रेनफक वास्तव में उत्कृष्ट है। मुझे पता है कि यह जीतने वाला नहीं है, लेकिन मुझे नहीं लगता कि हम संभवतः पायथन उदाहरण से बेहतर कर सकते हैं। इतना ही नहीं, बल्कि ...

brainfuck, 4 वर्ण, अनंत आउटपुट

-[.]

मैं अनुमान लगाता हूं कि यह सबसे छोटा अनंत-आउटपुट कार्यक्रम है।

असल में, पकड़, मेरे दोस्त बस एक बहुत अच्छा एक के साथ आ रहा है।

पायथन, 80 बाइट्स, आउटपुट की अज्ञात राशि

from datetime import datetime
while datetime.now()!=datetime.max()
 print "This will probably get disqualified"

यह कार्यक्रम निश्चित रूप से अंततः रुक जाएगा, लेकिन लगभग 8,000 वर्षों के बाद ही ऐसा करेगा। वर्ण आउटपुट की सही संख्या उस दर पर निर्भर करती है जिस पर आपका कंप्यूटर वर्णों का उत्पादन कर सकता है।


1
मुझे अजगर एक: डी
केविन कॉक्स

2
"मैं अनुमान लगाता हूं कि यह सबसे छोटा अनंत-आउटपुट प्रोग्राम है .।"
फायरफली

14

पर्ल - 19 बाइट्स, 187200000000000000 बाइट्स आउटपुट (9852631578947368.42: 1)

print+($]x9e7)x26e7

एक सिंगल प्रिंट स्टेटमेंट के साथ 166 पेटाबाइज़, जिसमें 1.7GB से अधिक मेमोरी का उपयोग नहीं किया गया है।

कुछ चीजें हैं जिन्होंने इस चुनौती को और अधिक दिलचस्प बना दिया है जो मुझे लगा कि यह होगा। पर्ल किसी भी एकल सूची में 1GB से अधिक मेमोरी आवंटित करने से इनकार करता है। इसलिए, आंतरिक स्ट्रिंग के लिए 4-बाइट स्केलर संदर्भ केवल 26e7 28 2 28 बार दोहराया जा सकता है । $]'ओल्ड पर्ल वर्जन' संख्या है, जो एक स्ट्रिंग के रूप में, 8 बाइट्स लंबी, सदृश है 5.016002

अधिक सिस्टम मेमोरी के साथ, यह उच्च जाने में सक्षम होना चाहिए। मान लें कि पूर्ण 8GB वास्तव में उपलब्ध थे, आपको $]x9e8इसके बजाय आंतरिक स्ट्रिंग के लिए उपयोग करने में सक्षम होना चाहिए , जो 1.62 एक्साबाइट का उत्पादन करेगा।


16
"यदि आप 1,000,000 बंदरों को 1,000,000 टाइपराइटर देते हैं, और उन्हें सामान लिखने के लिए 1,000,000 वर्ष का समय देते हैं, तो एक बंदर एक जावा प्रोग्राम को पूरा करेगा। बाकी लोग सिर्फ पर्ल स्क्रिप्ट का निर्माण करते हैं।" यही कारण है कि मैं क्या सोचा था जब मैं इस देखा है: पी स्रोत
दरवाज़े

5

रूबी और पायथन, 13 वर्ण, 599994 चार आउटपुट, ~ 46153: 1 अनुपात

999999**99999

बस एक बहुत बड़ी संख्या को एक और बहुत बड़ी संख्या की शक्ति को बढ़ाता है। चलाने में लगभग 20 सेकंड लगते हैं। मैं संख्या में वृद्धि नहीं कर सकता क्योंकि इससे संख्या अनंत हो जाएगी।

(मैंने पहले ऐसा किया था , मैं वर्तमान में अधिक उत्पादन के लिए लूप बनाने पर काम कर रहा हूं)

संपादित करें: मैंने यह किया है!

रूबी, 28 वर्ण, 6e599999 चार आउटपुट, ~ 6e599998 अनुपात (मुझे लगता है)

a=999999**99999;a.times{p a}

अनछुए (स्पष्ट कारणों के लिए), लेकिन मुझे पूरा यकीन है कि पहली संख्या 1e599994 है, जिसे 599994 से गुणा किया गया है और यह लगभग 6e599999 है। सैद्धांतिक रूप से यह काम करेगा, लेकिन मुझे यकीन नहीं है कि यह आपके कंप्यूटर को क्रैश कर देगा, इसलिए अस्वीकरण: मैं जिम्मेदार नहीं हूं अगर यह आपके कंप्यूटर को किसी भी तरह से नुकसान पहुंचाता है: पी

बेशक, आप जा सकते हैं:

रूबी, 37 चार्ट, 6e359992800041 चार आउटपुट, ~ 6e359992800040 अनुपात

a=999999**99999;a.times{a.times{p a}}

और इसी तरह, लेकिन मुझे संदेह है कि कोई भी कंप्यूटर इसे संभाल सकता है: पी


यह वास्तव में एक
बहुवचन है

@tbodt हेहे, ठीक है! जब मैं अपने परिवर्तन जोड़ने यह हालांकि नहीं होगा
दरवाज़े

5

यदि अनंत इनपुट की अनुमति थी,

cat /dev/random

चूंकि यह नहीं है,

head -99 /dev/random

(25128 आउटपुट: 20 इनपुट = 1256.4: 1)

मैं लिनक्स बॉक्स पर नहीं हूं, लेकिन मुझे लगता है कि आप कुछ ऐसा कर सकते हैं

timeout 99d cat /dev/random

और एक बहुत बड़ा उत्पादन मिलता है। (गीगावाट की प्रतिक्रिया के माध्यम से)


2
आप एक चरित्र को स्थानापन्न कर सकते हैं और अपने उत्पादन को 8562 गुना लंबा कर सकते हैं timeout 99d:। हाँ, 99 दिन का समय। इसके अलावा, मैं इस पर निश्चित नहीं हूं, लेकिन अंत में आप एन्ट्रापी पूल को खाली कर देंगे /dev/randomऔर यह ब्लॉक /dev/urandomहो जाएगा , इसलिए यह अधिक उपयुक्त हो सकता है। (मैं 40 एमबी / एस पाने में कामयाब रहा urandomऔर केवल 128 केबी / एस के साथ random)
श्री लामा

@ गीगावाट जो कमाल की है।
त्रिस्टिन

4

HQ9 +, 11471

9

इंटरप्रेटर के आधार पर वास्तविक वर्ण गणना भिन्न होती है, लेकिन संभवतः लगभग 10000 सही होगी?


HQ9 + क्या है ? मैंने इसके हारे में नहीं सुना है।
tbodt 19

आह, क्षमा करें, यह ज्यादातर एक मजाक था क्योंकि यह 'वास्तविक' प्रोग्रामिंग भाषा नहीं है, लेकिन: esolangs.org/wiki/HQ9%2B
डोम हेस्टिंग्स

2

C #: 108 वर्ण। अनुपात: 742123445489230793057592: 1

for(ulong i=0;i<ulong.MaxValue;i++){Console.Write(new WebClient().DownloadString(@"http://bit.ly/dDuoI4"));}

यह संयुक्त राज्य अमेरिका के सर्वोच्च न्यायालय (4344904 वर्ण) 18446744073709551615 बार विकिपीडिया की सूची को डाउनलोड करता है और प्रिंट करता है ।


इसके लिए URL शॉर्टनर की आवश्यकता होती है। मैं इस बारे में निश्चित नहीं हूं।
tbodt

1
ठीक है। और इसके बारे में क्या: for(ulong i=0;i<ulong.MaxValue;i++){Console.Write(new string('a',int.MaxValue));}2147483647 चार्ट * 18446744073709551615 बार = 39614081238685424720914939905/81 => अनुपात: 489062731391795366969875801
thepirat000

काफी बेहतर। कोई URL शॉर्टनर की आवश्यकता नहीं है।
tbodt

2

~ - ~! - अनुपात: (६४ ६४ ) / १५४ ~ = १० १० १० १० १० १.५89३३२20२०३३६।

'=~~~~,~~~~,~~~~:''=|*<%[%]'=',',',':''&*-~|:'''=|*<%[%]''&',',',':'''&*-~|:''''=|*<%[%]'''&',',',':''''&*-~|:''''&':''=|*<%[%]@~~~~,~~~~,~~:''&*-~|:''&':

यह कैसे काम करता है: सबसे पहले, यह तय करता है 'तो 4 ^ 3, या 64 के लिए, यह बनाता है ''एक समारोह जो सेट 'करने के लिए '^ 4 * बार (जहां * यह के इनपुट है)। '''फिर एक फ़ंक्शन बनाया जाता है जो ''इनपुट के साथ '^ 4 के रूप में कॉल करता है । फिर, ''''एक फ़ंक्शन बनाया जाता है जो ^ 4 के '''साथ कॉल 'करता है क्योंकि यह इनपुट है। ''''तब 64 के इनपुट के साथ कॉल किया जाता है। अंत में, ''एक फ़ंक्शन में बदल जाता है जो एक स्पेस * बार प्रिंट करता है; इसके बाद इनपुट के साथ बुलाया जाता है '

पता चला है, अंत में, 'है 64 4 4 4 64 , और मेरे कार्यक्रम की लंबाई है 154 ; वोल्फ में पंच | अल्फा और यह 10 10 10 10 10 1.583328920493678 से बाहर निकलता है , जो इसे गणना करने के लिए परेशान नहीं करता है। मुझे यह भी पता नहीं है कि इसमें कितने अंक हैं , लेकिन 64 4 4 में 463 शामिल हैं। एक भाषा के लिए बहुत अच्छा है जो केवल स्पष्ट स्पष्ट संख्याओं का समर्थन करती है और इसमें एक घातांक फ़ंक्शन नहीं है; 3

मैं इसे बहुत बड़ा बना सकता था, लेकिन, ओवरकिल।


1

जावास्क्रिप्ट: 27 वर्ण; 260,431,976 चार आउटपुट; 9,645,628.74 अनुपात

for(s=i=61;s=btoa(s),i--;)s

यह कोड 61बेस 64 बार इनपुट को पुन: इनपुट करता है । nBase64 को लंबाई के किसी भी इनपुट को एन्कोड करने से लंबाई का आउटपुट उत्पन्न होता है n * 8/6, जिसे 4 के कई तक गोल किया जाता है।

यह जावास्क्रिप्ट कंसोल वातावरण से चलाया जाना चाहिए जो मूल रूप से बेस 64-एन्कोडिंग फ़ंक्शन का समर्थन करता है btoa। (कोई भी आधुनिक ब्राउज़र, लेकिन Node.js. नहीं) नोट Chrome से अधिक नहीं चल सकता है i=61, जबकि फ़ायरफ़ॉक्स केवल पहुंच सकता है i=60। यह भी ध्यान दें कि क्रोम का कंसोल वास्तव में आउटपुट को प्रदर्शित नहीं कर सकता क्योंकि यह बहुत बड़ा है, लेकिन आप परिणाम आकार को चलाकर सत्यापित कर सकते हैं

for(s=i=61;s=btoa(s),i--;)s.length

यदि इस कार्यक्रम को अधिकतम के लिए चलाने की अनुमति दी गई थी i=99, तो यह लगभग 540 बिलियन (5.39e11) के काल्पनिक अनुपात के लिए 14,566,872,071,840 (14.5 ट्रिलियन, 14.5e12) आकार के एक काल्पनिक उत्पादन का उत्पादन करेगा ।


1

रूबी, 23 वर्ण - ~ 500000000000000 (5e14) आउटपुट

while rand
puts 0
end

टीआई-बेसिक 84, 13 अक्षर - ~ 3000 आउटपुट

:Disp 1
:prgmA

कार्यक्रम का नाम बताइए prgmA


1

रूबी, 283 96 44 चरस

a=1e99.times;a{a{a{a{a{puts'a'*99}}}}}}}}}}

बहुत कम नहीं है, लेकिन यह आउटपुट में इसके लिए क्षतिपूर्ति करता है, जो कि इतना है कि मैं अभी तक इसे मापने में सक्षम नहीं हूं।


2
मेरे हिसाब से यह 1e127चार्ट आउटपुट के बारे में होगा । वैसे भी, एक चर को असाइन करने से कोड का आकार लगभग आधा हो जाएगा। भी, 1e99एक बड़ी संख्या है जो कम जगह लेती है। भी, का उपयोग mapकरने के बजाय each, का उपयोग putsकरने के बजाय print, के बीच अतिरिक्त सफेद स्थान को निकालना printऔर "ier...। आप उस बड़ी स्ट्रिंग को बदल भी सकते हैं 'a'*999(या उससे भी ?a*999) जो एक लंबी स्ट्रिंग है जो कम जगह लेती है। सारांश: यह सब पर golfed नहीं है
दरवाज़े

@Doorknob धन्यवाद। मुझे माणिक के बारे में कुछ भी नहीं पता है, माणिक के लिए मार्मिक गाइड के अध्याय 3 को छोड़कर क्यों।
tbodt

हाँ, तुम सिर्फ (0..1e99).mapएक चर को क्यों नहीं सौंपते ? जैसेa=(0...1e99).map;a{a{a{a{a{puts'a'*99}}}}}
दरवाज़े

मेरी रूबी व्याख्याकार स्मृति मूल्यांकन से बाहर भाग गया a=(0...1e99).map। हो सकता है कि आप उसे थोड़ा पीछे खींचना चाहें। 0..1e9लगभग 4GB का उपयोग करेगा।
प्रिमो

1

गणितज्ञ 9 वर्ण अनुपात: ~ 4564112: 1

निम्नलिखित Mathematica इनपुट की एक तस्वीर है। मुझे नहीं लगा कि इसे एसई में कैसे प्रस्तुत करना है।

घातांक

यहाँ एक स्क्रीन शॉट है जो आउटपुट में अंकों की संख्या दिखाता है। IntegerDigitsआउटपुट को अंकों की सूची में परिवर्तित करता है। Lengthअंकों की संख्या को गिना जाता है।

गिनती

कीस्ट्रोक में प्रवेश के लिए: 9, ctrl6, 9, ctrl6, 9, ctrl6, 9, ctrl6, 9....


1
क्या? आप इसे गणित में टाइप कर सकते हैं?
तब्बोत्त

हां, यह मैथेमेटिका के लिए वैध इनपुट है।
डेविड नोव

और क्या कीस्ट्रोक्स की आवश्यकता होती है?
त्बुदत्त

@tbodt कीस्ट्रोक्स अब जवाब में दिखाए गए हैं।
डेविड नोव

1
मुझे नहीं पता कि आपको ऑर्डर निर्दिष्ट करना होगा, लेकिन आप चाहते हैं कि इसकी गणना ऊपर की ओर की जाए: (9 ^ 9) ^ 9 एक 78 अंकों की संख्या है, लेकिन 9 ^ (9 ^ 9) एक 369,693,100 अंकों की संख्या है (धन्यवाद,
वोल्फरामल्पा

0

Befunge-93: 48 वर्ण, (2 ^ 32) ^ 2) के बारे में * 10 वर्ण आउटपुट

Befunge का स्टैक सैद्धांतिक रूप से अनंत है, लेकिन स्टैक स्टोर की संख्या एक अहस्ताक्षरित लंबे पूर्णांक के आकार तक सीमित है (यहां 32 बिट्स माना जाता है)। इस प्रकार, एक Befunge दुभाषिया के लिए, (x + 1)> x x के उचित मूल्य के लिए गलत है। हम इस तथ्य का उपयोग पहले शून्य से अधिकतम (दो बार, हर तीसरे नंबर के साथ) के लिए सभी मानों को धक्का देने के लिए करते हैं, और फिर स्टैक पर प्रत्येक मूल्य के लिए, हम इसे आउटपुट करते हैं और इसे घटाते हैं, फिर शून्य तक पहुंचने पर इसे पॉप करते हैं। आखिरकार स्टैक खाली हो जाता है और कार्यक्रम समाप्त हो जाता है। मैं आउटपुट आकार पर थोड़ा हट सकता हूं, लेकिन यह उस बॉलपार्क में कहीं होना चाहिए।

>::1# + #1\`# :# _> #- #1 :# :# .# _# .# :# _@

0

C: 48 वर्ण, लगभग। (2 ^ 32 - 1) * 65090 बाइट्स आउटपुट

main(){for(int i=1<<31;i<~0;)puts("!");main();}

ध्यान दें कि 65090 सटीक नहीं है, और स्टैक आकार पर निर्भर करता है। जब यह दुर्घटनाग्रस्त हो जाएगा तो कार्यक्रम अंततः बंद हो जाएगा। इसके अलावा, मैं राशन दृष्टिकोण को अनंत बनाने के लिए पुट () में एक लंबी और लंबी स्ट्रिंग लगा सकता हूं, लेकिन ऐसा लगता है कि यह धोखा है।


1
यह एक अनंत लूप है
izabera

आउच, तुम सही हो, मुझे लगता है। मैं देखूंगा कि क्या मैं इसे ठीक करने के लिए समझ सकता हूं।
Stuntddude

0

जावा (131): अज्ञात लेकिन परिमित राशि

class A{public static void main(String[] args){while(Math.random()>0){for(long l=0;l!=-1;l++){System.out.println("1234567890");}}}}

एक लूप में 0 पाने के लिए Math.random () की कम संभावना का उपयोग करते हुए और फिर 2 ^ 64-1 लूप्स के साथ आउटपुट के साथ फोरचच 1234567890;


0

पायथन 3, 115 बाइट्स, 7983 वर्षों तक चलता है (अज्ञात # वर्णों का)

संपादित करें: ymbirtt ने मुझे इसे हराया ।_

मुझे पता है, यह वास्तव में कम नहीं है, और मुझे पता है कि अन्य पायथन का जवाब बहुत लंबा है, लेकिन मैंने इसे एक शॉट देने का फैसला किया।

कार्यक्रम लगभग 8000 वर्षों तक चलता है, जो कि, जैसा कि आप जानते हैं, बहुत लंबा समय है।

यह क्या करता है लगातार datetime.datetime.now()फ़ंक्शन का उपयोग करके वर्तमान समय मिलता है , और यह इसकी तुलना करता है 9999-12-31 24:59:59.999999, जो कि जहां तक ​​मैं पायथन में अधिकतम तिथि जानता हूं।

तो है है बराबर, कार्यक्रम बंद हो जाता है। यदि ऐसा नहीं है, तो यह लगातार आउटपुट करता है a

import datetime
while 1:
    if str(datetime.datetime.now())=="9999-12-31 24:59:59.999999":exit
    else:print("a")

1
क्या होगा अगर आप उस पल को याद करते हैं?
C5H8NNaO4

@ C5H8NNaO4 यदि आप इसे सभी 7983 वर्षों के लिए छोड़ देते हैं, तो आपको उम्मीद है कि यह याद नहीं होगा।
m654
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.