ऐसे प्रोग्राम बनाएं जो उनकी लंबाई से कई गुना अधिक हो


16

एक नॉनवेजेटिव पूर्णांक को देखते हुए n, आपके समाधान को आपकी चुनी हुई भाषा में एक प्रोग्राम आउटपुट करना होगा जिसका आउटपुट हैn प्रोग्राम के रूप में कई बाइट्स हैं।

नियम

  • आपको अपने समाधान आउटपुट के कार्यक्रमों की भाषा और एन्कोडिंग निर्दिष्ट करना होगा, और आप अपने समाधान के लिए अलग-अलग इनपुट के लिए अलग-अलग भाषा या एनकोडिंग नहीं चुन सकते हैं। आपके आउटपुट प्रोग्राम की भाषा आपके समाधान की भाषा के समान हो भी सकती है और नहीं भी।
  • आपके सबमिशन को केवल आपकी भाषा की सीमा में पूर्णांकों को संभालने की आवश्यकता है, लेकिन कृपया इस नियम का दुरुपयोग न करें।

यह इसलिए बाइट्स जीत में सबसे कम सबमिशन है।

उदाहरण

मान लीजिए n4. मेरा समाधान तब आउटपुट f_8, एक प्रोग्राम जो, मेरी (काल्पनिक) भाषा आउटपुट में j3 1s+/2]!mz। प्रोग्राम आउटपुट की लंबाई 3 है और इसके आउटपुट की लंबाई 3 * 4 = 12 है, इसलिए समाधान 4 इनपुट के लिए सही है।

मान लीजिए कि इसके बजाय n1 और मेरा प्रोग्राम आउटपुट ffffpfpffp(10 बाइट्स) है। ffffpfpffpमेरी चुनी हुई भाषा में कार्यक्रम को 10 * 1 = 10 बाइट्स का उत्पादन करना होगा।


फिलहाल, यह बहुत ही कम है। क्या आप कुछ उदाहरण प्रदान कर सकते हैं?
DJMcMayhem

3
मुझे लगता है कि मुझे पता है कि हम क्या करने वाले हैं, लेकिन हर बार जब मैं कल्पना पढ़ता हूं, तो मैं निश्चित हो जाता हूं। कुछ पाठ का आउटपुट जो n बाइट्स के रूप में कई बार है क्योंकि आउटपुट प्रोग्राम का अर्थ है कि हमें टेक्स्ट और प्रोग्राम को आउटपुट करना है। वर्ण सेट और भाषा सभी पूर्णांकों के लिए संगत होनी चाहिए। यह किस "वर्ण सेट" का जिक्र है?
डेनिस

कोई बात नहीं, मैं वास्तव में गलतफहमी में था , और इसलिए सभी जवाबों में से एक था।
डेनिस

1
@ डेनिस यह मदद नहीं करता है कि शीर्षक शरीर के विपरीत लगता है। शायद आउटपुट एक ऐसा प्रोग्राम है जो एन-टाइम आउटपुट करता है, इसकी लंबाई एक बेहतर शीर्षक होगी, अगर मैं चुनौती को सही तरीके से समझ रहा हूं (मुझे यकीन नहीं है कि मैं करूंगा)
Sisyphus

1
क्या हम nएक तार के रूप में ले सकते हैं ?
झबरा

जवाबों:


7

जावास्क्रिप्ट (ईएस 6), 38 बाइट्स

n=>`(x="${n}")=>(x+1/7+1e9).repeat(x)`

डेमो



3

ब्रेनफक , 348 बाइट्स

--[>+<++++++]>>--[>+<++++++]>++[-<+>]----[>+<----]>---[-<+>]----[>+<----]>-[-<+>]-[>+<---]>++++++[-<+>]-[>+<---]>++++++++[-<+>]--[>+<++++++]>+++[-<+>]<[<],[->.<]>>>>>.<<<.>>.<<<.>>>.<<<.>>>.<<<.>>...>>>.<<....<<.>>>.<<..<<.>>>..<<.......>>>>.<<<..<<.>.....>>>.<<.>>.>>.<<<<<.>>>>.<<.<<.>>.>.<<<.>>.<<<.>>...<<.>>>..>>.<<.>.<<<.>.<<.>>>.>>.<<<..>>>.

इसे ऑनलाइन आज़माएं! या Ungolfed संस्करण देखें (यानी मुझे क्या काम करना था)


अस्वीकरण

मैंने यह सोचने में अधिक समय बिताया कि मुझे लगा कि यह मानवीय रूप से संभव है। मैं अपनी प्रेमिका को धन्यवाद देना चाहता हूं कि उसने मुझे इस पर काम करने की अनुमति दी; और साथ ही मेरा उद्धारकर्ता भी

यह कैसे भी काम करता है?

कोई सुराग नहीं।

यह कैसे काम करता है?

सभी आउटपुट में कोड की एक अनुगामी स्निपेट होती है जो सभी समान हैं:

[->+>+>+<<<]>>>>-[<<+>>-------]<<+-----[<[.-]>->[->+<<<+>>]>[-<+>]<<]

आइए इसे तीन भागों में विभाजित करें जिन्हें कहा जाता है a,b,c

a : [->+>+>+<<<]>>>>               THE DUPLICATOR
b : -[<<+>>-------]<<+-----        THE ADJUSTER
c : [<[.-]>->[->+<<<+>>]>[-<+>]<<] THE PRINTER

इनपुट iको केवल एक मोर्चे पर एकजुट किया जाता है:

iabc

(उदाहरण; यदि इनपुट 10 था, तो i = '++++++++++')

अनुलिपित्र - इनपुट को इनपुट के m, nबराबर दो समान संख्याओं में विभाजित करता है

समायोजक - समायोजन nऐसा है कि यह कार्यक्रम की लंबाई के बराबर है

प्रिंटर - प्रिंट m*nASCII वर्ण


ध्यान दें कि उदाहरण में इनपुट एक है newline, जो 10 के ASCII मान के रूप में है, इसलिए इनपुट है 10। यदि आप अन्य छोटी संख्याओं का परीक्षण करना चाहते हैं, तो ,कई +इच्छाएं बदलें ।



2

हास्केल , 55 बाइट्स

f n=(++)<*>show$"main=putStr$[1.."++show n++"*2]>>'#':"

इसे ऑनलाइन आज़माएं! उदाहरण का उपयोग: f 1निम्नलिखित 54 बाइट्स प्रोग्राम की पैदावार:

main=putStr$[1..1*2]>>'#':"main=putStr$[1..1*2]>>'#':"

इसे ऑनलाइन आज़माएं! जो निम्नलिखित 54 बाइट आउटपुट का उत्पादन करता है:

#main=putStr$[1..1*2]>>'#':#main=putStr$[1..1*2]>>'#':

1

पायथन 3 -> एचक्यू 9 +, 11 बाइट्स

'Q'.__mul__

यह हो जाना चाहिए था

इसे ऑनलाइन आज़माएं!


मैं मुख्यालय का परीक्षण कहां कर सकता हूं?
टाइटस

1
ठीक है, Qबस अपने स्वयं के स्रोत कोड प्रिंट करता है। आपको लगता है कि यहाँ का परीक्षण कर सकते हैं: hq9plus.alwaysdata.net । यह कभी भी एक गंभीर प्रविष्टि नहीं थी
michi7x7

यह काम नहीं करता है। यदि मैं इनपुट करता हूं 1, तो आप आउटपुट करते हैं Q, जो बदले में आउटपुट QQलंबाई है 1, लेकिन आपके कोड की लंबाई है 11
NoOneIsHere 15

@NoOneIsHere 'जिसका आउटपुट आउटपुट प्रोग्राम के रूप में कई बार बाइट्स है।' (प्रस्तुत कार्यक्रम नहीं)
michi7x7

1
@NoOneIsHere यह नहीं करता है: almnet.de/esolang/hq9plus.php (भाषा विनिर्देश केवल "स्रोत कोड फ़ाइल के पूरे पाठ को प्रिंट करता है")
बताता है

1

जावा 8, 175 174 बाइट्स

interface M{static void main(String[]a){System.out.printf("interface M{static void main(String[]a){int i=(88+%s)*%s;for(;i-->0;System.out.print(0));}}",a[0].length(),a[0]);}}

उदाहरण:

n=1आउटपुट :

interface M{static void main(String[]a){int i=(88+1)*1;for(;i-->0;System.out.print(0));}}

(लंबाई = 89) जो 89 जीरो आउटपुट करता है :

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

n=10आउटपुट :

interface M{static void main(String[]a){int i=(88+2)*10;for(;i-->0;System.out.print(0));}}

(लंबाई = 90) जो 900 जीरो आउटपुट करता है :

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

n=100आउटपुट :

interface M{static void main(String[]a){int i=(88+3)*100;for(;i-->0;System.out.print(0));}}

(लंबाई = 91) जो 9100 शून्य आउटपुट करता है :

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

स्पष्टीकरण:

interface M{                                // Class:
  static void main(String[]a){              //  Mandatory main method
    System.out.printf("interface M{static void main(String[]a){
                                            //   Print a new program with:
      int i=(88+%s)*%s;                     //    Integer containing (88*A)+B
      for(;i-->0;System.out.print(0));}}",  //    And print that many zeroes
        a[0].length(),                      //     Where A is the length of the number
                                            //     (0-9 = 1; 10-99 = 2; 100-999 = 3; etc.)
        a[0]);}}                            //     and B is the number itself

0

RProgN 2 , 7 5 बाइट्स

«•.* 

पीछे की जगह के साथ

व्याख्या की

«•.* 
«    # Yield a function from the remaining string.
 •.  # Append a space and stringify, which builds the original program (Because stringifying a function removes noops, which spaces are)
   * # Repeat the implicit input times.

इसे ऑनलाइन आज़माएं!


0

CJam, 8 13 बाइट्स

q_,S\" 8+*S*"

इसे ऑनलाइन आज़माएं

उत्पन्न प्रोग्राम स्पेस को आउटपुट करता है इसलिए यह बताना कठिन है।


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

ओह, हाँ, ओह ,,।
geokavel


0

पायथन → टीईसीओ, 20 बाइट्स

इसका जवाब पायथन में है जबकि उत्पन्न कोड TECO में है। पायथन एक फ़ंक्शन है जो VV12345\VVबार-बार n बार लौटता है । टीईसीओ के स्पष्टीकरण के लिए यहां देखें ।

'VV12345\VV'.__mul__

0

PHP, 47 + 1 बाइट्स

<?="<?=str_pad(_,",strlen($argn)+18,"*$argn);";

रिक्त स्थान के बाद एक अंडरस्कोर प्रिंट करता है।
पाइप के साथ चलाएं -F; -fया के साथ आउटपुट प्रोग्राम चलाएँ -F

यह 64 से अधिक अंकों वाले इनपुट के लिए विफल होगा,
जो PHP_INT_MAXइस समय (की तुलना में) अधिक है।

हालाँकि, यह PHP_INT_MAX18 से बड़े इनपुट के लिए विफल रहता है ... क्या यह अभी भी योग्य है?


@ हाइपरनेटिनो: यह PHP_INT_MAX-18 से अधिक इनपुट के लिए विफल हो जाएगा । क्या वह अयोग्य है?
टाइटस

नहीं, मैं कहूंगा कि यह ठीक है :)
हाइपरनेट्रो

0

PHP → पायथन 2, 40 + 1 बाइट्स

print "A"*<?=13+strlen($argn),"*",$argn;

एक पायथन प्रोग्राम को प्रिंट करता है जो बार-बार प्रिंट करता है A। साथ पाइप के रूप में चलाएँ -F


0

बैच → चारकोल, 22 बाइट्स

मुझे यकीन नहीं है कि मुझे कौन सी एन्कोडिंग का उपयोग करना चाहिए, क्योंकि ये बाइट्स हैं। यहां विंडोज -1252 के रूप में बाइट्स की व्याख्या की गई है:

@set/p=Á%1ñªÉñ«Ìñ¹<nul

PC-850 के समान बाइट्स:

@set/p=┴%1±¬╔±½╠±╣<nul

चारकोल के कोड पेज में वही बाइट्स:

@set/p=A%1θ×Iθ⁺Lθ⁹<nul

परिणामी चारकोल कार्यक्रम Plus(Length(Cast(n)), 9)बाइट्स लंबा है:

A       Assign
 %1      (String representation of n)
   θ      To variable q
        Implicitly print a number of `-`s equal to:
×        Product of:
 Iθ       Cast of q to integer
 ⁺        Sum of:
  Lθ       Length of q
  ⁹        Integer constant 9


0

जावास्क्रिप्ट (ईएस 8), 43 41 39 बाइट्स

n=>`f=_=>"".padEnd(${n}*(88+f).length)`

झसे आज़माओ

उत्पन्न फ़ंक्शन का आउटपुट रिक्त स्थान की एक स्ट्रिंग है जिसे *इस स्निपेट में एस के साथ बदल दिया जाता है ।

g=
n=>`f=_=>"".padEnd(${n}*(88+f).length)`

o.innerText=(h=n=>`Function: ${x=g(n)}\nLength:   ${x.length}\nOutput:   "${x=eval(x)().replace(/./g,"*")}"\nLength:   `+x.length)(i.value=10);oninput=_=>o.innerText=h(+i.value)
<input id=i type=number><pre id=o>


0

आर , 46 बाइट्स

function(n)sprintf("cat(rep('a',%d*23),'')",n)

इसे ऑनलाइन आज़माएं!

अनाम फ़ंक्शन जो स्ट्रिंग लौटाता है

cat(rep('a',n*23),'')

जो 23 बार a( aएक स्थान के बाद) प्रिंट करता है n। मुझे इसकी आवश्यकता थी ''क्योंकि अन्यथा catअंतिम स्थान वर्ण मुद्रित नहीं होता।


0

सी, 94 बाइट्स

main(int c,char**a){if(c>1){c=atoi(a[1]);if(c>0&&c<0xFFFFFF){c*=94;while(c--)printf("r");}}}

यह होगा 94 बाइट्स में अंतिम \ n शामिल होता है जो कि Stadard C कहता है कि इसे लिखा जाना चाहिए। यदि प्रोग्राम तर्क मौजूद नहीं है या यह <= 0 है या यह है तो 'r' अक्षर '(प्रोग्राम का तर्क) के रूप में लौटें या यह है> 0xFFFFF कुछ भी नहीं छापें

C:\>nameProg.exe 1
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

0

MATLAB (63 बाइट्स)

a=@(n)['repmat(''a'',1,',num2str(n*(15+numel(num2str(n)))),')']

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

>> a(5)

ans =

repmat('a',1,80)

तथा:

>> repmat('a',1,80)

ans =

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.