2017 तक बढ़ो


16

इस चुनौती में आप एक ऐसे कार्यक्रम का निर्माण करेंगे जो उम्र के माध्यम से आगे बढ़ता है ... यह 2017 तक है।

चुनौती

जब भी यह चुनौती विवरण "कार्यक्रम" कहता है, तो आप "फ़ंक्शन" भी पढ़ सकते हैं।

आपके द्वारा सबमिट किए जाने पर, एक प्रोग्राम को आउटपुट करेगा जो कि THE LENGTH OF YOUR SUBMISSION+ 1बाइट्स लंबा है।

जब उस प्रोग्राम को निष्पादित किया जाता है, तो यह उस प्रोग्राम को आउटपुट करेगा जो THE LENGTH OF YOUR SUBMISSION+ 2बाइट्स लंबा है ... और इसी तरह।

हालांकि , जब आपका कार्यक्रम 2017 बाइट्स की लंबाई तक पहुंच गया है, तो इसके बजाय आउटपुट 2017और निकास होना चाहिए ।

नियम

  • अंतिम कार्यक्रम का उत्पादन 2017और केवल होना है 2017। यह एक स्ट्रिंग या पूर्णांक हो सकता है, लेकिन इसे पढ़ना चाहिए या 2017नहीं 2017.0या 0x7E1इस तरह के अन्य बकवास।
  • कोई मानक खामियां नहीं हैं ।
  • केवल आपके प्रारंभिक कार्यक्रम में इनपुट की आवश्यकता होती है, जो आपके बायटेकाउंट में जोड़ा जाएगा।
    इसलिए यदि आपका प्रारंभिक कार्यक्रम 324 वर्ण लंबा है और 13 बाइट्स का इनपुट लेता है, तो आपका कुल स्कोर 324 + 13 = 337 होगा और इसके द्वारा उत्पादित कार्यक्रम 338 बाइट लंबाहोना चाहिए।
    • कमांड लाइन झंडे (जैसे perl -X) का उपयोग करना ठीक है, हालांकि - जब तक आपका प्रारंभिक कार्यक्रम और साथ ही सभी उत्पन्न कार्यक्रम समान झंडे का उपयोग करते हैं । इसके अलावा, वे भी कुल बाइटकाउंट की ओर गिनती करते हैं। एक कमांड लाइन ध्वज के सामने डैश, स्लैश आदि कुल की ओर नहीं गिने जाते हैं, इसलिए उदाहरण perl -Xके लिए एक अतिरिक्त बाइट के रूप में गिना जाता है ।
  • यदि आप एक फ़ंक्शन लौटाते हैं, तो यह एक वास्तविक फ़ंक्शन होना चाहिए न कि एक स्ट्रिंग, जिसका मूल्यांकन किया जाता है, एक फ़ंक्शन का उत्पादन करता है।
  • अनुचित quines (यदि आपका प्रोग्राम एक quine है) को अस्वीकार कर दिया गया है।

उदाहरण

स्यूडोकोड, 99 बाइट्स

IF (PROGRAM LENGTH == 2017)
  PRINT 2017
ELSE
  PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE PADDING)

आपका सबमिशन अलग तरह से काम कर सकता है, जब तक कि यह ऊपर के नियमों का अनुपालन करता है।


क्या केवल एनओपी को लागू करने ;;;की अनुमति है?
फ्लिपकार्ट

@FlipTack Yes। ·
user2428118

"डैश, स्लैश इत्यादि कमांड लाइन के झंडे के सामने कुल की ओर नहीं आते हैं, इसलिए उदाहरण के लिए पर्ल-एक्स एक अतिरिक्त बाइट के रूप में गिना जाता है।" - क्या यह आदर्श रूप से यहाँ आदर्श के विपरीत है जैसा कि मेटा पर वर्णित है? आम तौर पर, डैश, स्लैश, आदि कभी कभी, गिनती की जानी चाहिए पर निर्भर करता है कि क्या बिना की तरह उस विकल्प दिखता मंगलाचरण: meta.codegolf.stackexchange.com/questions/273/...
HVD

@hvd मुझे नहीं लगता कि मैंने पढ़ा है कि ऐसा नहीं है, यह जानबूझकर नहीं है। उस ने कहा, मुझे नहीं लगता कि उन्हें नजरअंदाज करने में बहुत नुकसान है इसलिए मैं इसे इस चुनौती के लिए नहीं बदलूंगा।
user2428118

जवाबों:


6

* <<> , 29 28 30 बाइट्स

" r::2+l'-':*7-(?ul1-n;Ol?!;ou

यहाँ यह कोशिश करो! (* 2017 बाइट्स के साथ प्रयास करें )
* 0ms के लिए देरी सेट करें या आपको लंबे समय तक इंतजार करना पड़ सकता है

यह एक अतिरिक्त प्रत्येक उप-रन चलाता है। यदि इसके पास 2017 बाइट्स हैं और इसे चलाया जाता है, तो यह 2017 को आउटपुट करेगा और किसी अन्य आउटपुट के साथ निष्पादन को रोक देगा।

अद्यतन: यदि लंबाई 2017 के बजाय बराबर से कम है, तो 1 बाइट की जाँच करके सहेजा गया

अपडेट 2: +2 बाइट्स के लिए निश्चित आउटपुट

व्याख्या

" r: 2+                         build quine
    :                           copy extra " "
       l                        push length to stack
        '-':*7-                 push "2018" to stack
               (?u     O        if not length < 2018:
                  l1-n;           output length-1 and exit
                       Ol?!;ou  output entire stack and exit

हाँ, बिल्कुल सही when your program has reached a length of 2017 bytesनहीं, 2016 नहीं
विनाशकारी नींबू

@DestructibleWatermelon तय
redstarcoder

4

पायथन 2.7, 90 बाइट्स

यहाँ एक अपेक्षाकृत सरल है:

p='q';s=r"p+='q';print('p=\''+p+'\';s=r\"'+s+'\";exec s')if len(p)<1929 else'2017'";exec s

यहाँ पहली पुनरावृत्ति की कोशिश करो! यहां पर पार्लिमेंट्री इटरेशन की कोशिश करें! यहाँ अंतिम पुनरावृत्ति की कोशिश करो!

Ungolfed:

p='q'      # The length of string p is the number of iterations so far.

s=r"p+='q';print('p=\''+p+'\';s=r\"'+s+'\";exec s')if len(p)<1928 else'2017'"

exec s     # s contains the source code, but also contains a line saying "p += 'q'",
           # which makes the byte count longer. When the length of p is 1928 (i.e. when the
           # entire program is 2017 bytes long), 2017 is printed instead.

@redstarcoder अंतिम पुनरावृत्ति में बिल्कुल 2017 वर्ण हैं। मुझे लगता है कि ऊपरी दाएं कोने में बाइट की गिनती देख सकते हैं ....
Calconym

मेरी गलती है, यकीन नहीं कैसे हुआ, क्षमा करें!
redstarcoder

आप उपयोग कर सकते हैं p='';...और 1929else, लेकिन ध्यान दें कि छपाई भी अंत में एक नई रेखा को प्रिंट करती है, इसलिए आपको अपने कार्यक्रम में एक नई रूपरेखा जोड़नी चाहिए, अन्यथा यह पहले रन के बाद दो बाइट्स बढ़ाती है।
mbomb007


1

> <> , 34 बाइट्स

":l' '95**)b*f3++0.1-}'#'r>o<:ln;#

इसे ऑनलाइन आज़माएं! ध्यान दें कि, छोटे मूल्यों के लिए इसका परीक्षण करने के लिए, आपका मूल्य (शून्य से 1) 7 बाइट्स में उत्पन्न करने में सक्षम होना चाहिए।

व्याख्या

":l' '95**)b*f3++0.1-}'#'r>o<:ln;#
".................................   push this string
 :                                   duplicate
  l                                  push length of stack
   ' '95**                           push 2016
          )                          1, if length > 2016, 0 otherwise
           b*                        multiply by 11
             f3++                    add 18
                 0.                  jump to that character on this line
                                     if the length is sufficiently long, this skips the
                                     next 10 characters, to the 11th (`b` from earlier):
                             :ln;    (if length is > 2016)
                             :         duplicate
                              l        push length
                               n       output as number
                                ;      terminate
                   1-}'#'r>o<        (if length <= 2016)
                   1-                  subtract 1 from the last char, `#`, to get `"`,
                     }                 which is then moved to the bottom
                      '#'              pushes `#` (will be appended)
                         r             reverses the stack
                          >o<          output stack, until error (accepted by default)
                                 #   This is never reached, but is used to generate `"`

1

जावा, 251 बाइट्स (ग्रहण आईडीई)

import java.io.*;class G{public static void main(String[]args) throws Exception{File x=new File("./src/G.java");if(x.length()==2017){System.out.print("2017");}else{PrintWriter y=new PrintWriter(new FileOutputStream(x,1>0));y.print("A");y.close();}}}//

यह मान रहा है कि इस परियोजना का निर्माण ग्रहण में किया गया था .java काम कर रहे डायर के एसआरसी में फाइलों । यह पता लगाने के अन्य तरीके हैं कि स्रोत कहां है, लेकिन मुझे नहीं लगता कि यह नियमों के खिलाफ है।

मूल रूप से .java स्रोत-कोड खोलता है, और 2017 तक (एक टिप्पणी के बाद) तक संलग्न है। जब स्रोत का फ़ाइल-आकार कुल 2017 बाइट्स तक पहुंचता है, तो यह बजाय 2017 को प्रिंट करेगा।



1

पायथन 2, 217 167 78 बाइट्स

ध्यान दें कि एक अनुगामी न्यूलाइन होनी चाहिए। मैंने उसी तरह की अवधारणाओं का उपयोग किया जो कैलकॉनम ने इस्तेमाल किया, इसलिए प्रेरणा के लिए धन्यवाद!

p='q';s='p+=p[0];print"p=%r;s=%r;exec s"%(p,s)if len(p)<1941else 2017';exec s

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

2016 में प्रयास करें ; 2017 में प्रयास करें


पुराना वर्जन:

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

from inspect import*
n=stack()[0][2];s='from inspect import*%sn=stack()[0][2];s=%r;print(s%%(chr(10)*n,s))if n<1852else 2017';print(s%(chr(10)*n,s))if n<1852else 2017

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


1

CJam , 39 33 30 बाइट्स

33q:X~

इनपुट के साथ

2017:N=N{33')X+`":X~"+}?

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

यह कार्यात्मक रूप से मेरे पिछले संस्करण के बराबर है, सिवाय इसके कि यह उद्धरण लिखने और बचने की आवश्यकता से बचता है। पिछला संस्करण:

33"2017:N=N{33')X+`\":X~\"+}?":X~

जो आउटपुट देता है

33")2017:N=N{33')X+`\":X~\"+}?":X~

जो आउटपुट देता है

33"))2017:N=N{33')X+`\":X~\"+}?":X~

और इसी तरह। अंत में, कार्यक्रम

33"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))2017:N=N{33')X+`\":X~\"+}?":X~

आउटपुट 2017

यह काम किस प्रकार करता है

33      Push 33
  q     Read the input: 2017:N=N{33')X+`":X~"+}?
   :X   Store it in variable X
     ~  Eval it

लेकिन वास्तव में इनपुट में कोड क्या करता है?

 2017:N                      Push 2017 and store it in N
       =                     Check if the other number (33 on first run) equals 2017
        N                     If it does, push 2017
         {                    Else, execute this block:
          33                   Push 33
            ')                 Push the ) character
              X                Push X
               +               Concatenate with ')
                `              String representation (wraps it in quotes, escapes quotes inside)
                 ":X~"       Push the string ":X~"
                      +      Concatenate
                       }?    (end of block)

यदि प्रोग्राम की पहली संख्या 2017 के बराबर नहीं है, तो यह एक प्रोग्राम को आउटपुट करेगा जिसमें यह संख्या इस बार की तुलना में एक बार बढ़ाई गई है। यदि यह 2017 के बराबर होता है (अर्थात यह 1984 की वृद्धि हुई है), तो बस 2017 को धकेल दें और समाप्त करें। पहली संख्या 33 (कोड की लंबाई) के रूप में शुरू होती है; प्रत्येक वेतन वृद्धि कोड की लंबाई 1 और उस संख्या को 1 से बढ़ाती है, इसलिए जब 33 को 2017 के लिए पर्याप्त बढ़ा दिया गया है, तो कोड भी 2017 बाइट्स लंबा हो जाएगा।


0

जावास्क्रिप्ट, 98 83 बाइट्स

यह काफी चुनौती भरा था ... लगता है कि मुझे वास्तविक कार्यों को वापस करने की आवश्यकता है और न केवल फ़ंक्शन का स्रोत।

मूल कार्य

function x(){return "3".length>1933?2017:Function(`return ${x}`.replace(/3/,33))()}

मैं यहाँ के functionबजाय का उपयोग कर रहा हूँ =>क्योंकि उत्तरार्द्ध नामित कार्यों का समर्थन नहीं करता है, बस अनाम कार्यों को एक चर में नियत करता है।

पहला पुनरावृति

आपके ब्राउज़र कंसोल में ऊपर चल रहा है एक फ़ंक्शन देता है, जब एक स्ट्रिंग में डाली जाती है, तो ऐसा दिखता है:

function x(){return "33".length>1933?2017:Function(`return ${x}`.replace(/3/,33))()}

2017 को हो रहा है

चूंकि प्रत्येक फ़ंक्शन एक नया फ़ंक्शन देता है, आप 2017 प्राप्त करने के लिए मूल फ़ंक्शन / इसके परिणाम 1934 बार कॉल कर सकते हैं ।

console.log((
function x(){return "3".length>1933?2017:Function(`return ${x}`.replace(/3/,33))()}
)()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
)

फ़ायरफ़ॉक्स के साथ परीक्षण किया गया।

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