1, 2, 3, 14 ... या यह 15 है?


32

आयरिश रॉक बैंड U2 का एक प्रसिद्ध गीत स्पेनिश में "1, 2, 3, 14" गायक के साथ शुरू होता है (" uno, dos, tres, catorce ")।

उन संख्याओं के महत्व के रूप में विभिन्न सिद्धांत हैं । जाहिर तौर पर आधिकारिक स्पष्टीकरण " हमने उस रात बहुत ज्यादा पी लिया "। लेकिन एक और अधिक दिलचस्प परिकल्पना है: बोनो OEIS से कुछ पूर्णांक अनुक्रम का उल्लेख कर रहा है, जैसे कि

A107083 :

इंटेगर kऐसा है 10^k + 31जो प्राइम है।
1, 2, 3, 14, 18, 44, 54, ...

एक साक्षात्कार में, जब अपरिहार्य प्रश्न "क्यों 14" पूछा गया, तो बोनो ने स्वीकार किया कि वह उस संख्या से थोड़ा थक गया था। पत्रकार ने इसके बजाय "15" का सुझाव दिया, और उस रात के संगीत कार्यक्रम में गीत वास्तव में "1, 2, 3, 15" में बदल गए। (कहानी यहां , स्पेनिश में पढ़ी जा सकती है )। काफी संभावना है कि पत्रकार ने प्रेरणा ली

A221860 :

सूचकांकों kऐसा है कि prime(k) - kकी एक शक्ति है 2, जहां prime(k)है kमई के प्रधानमंत्री।
1, 2, 3, 15, 39, 2119, 4189897, ...

चुनौती

एक ही भाषा में दो कार्यक्रम लिखें। पहले को A107083 , या पहले शब्दों का इनपुट nऔर आउटपुट -थn टर्म लेना चाहिए । इसी तरह, दूसरे को A221860 के -th टर्म या पहले शब्दों का आउटपुट देना चाहिए ।nnn

स्कोर है योग की लंबाई दो कार्यक्रमों की, बाइट में, प्लस वर्ग के Levenshtein दूरी दो कार्यक्रमों की बाइट अभ्यावेदन के बीच।

यदि एक वर्ण एन्कोडिंग का उपयोग किया जाता है जैसे कि प्रत्येक वर्ण एक बाइट से मेल खाता है, तो इस स्क्रिप्ट का उपयोग लेवेंसहाइट दूरी को मापने के लिए किया जा सकता है।

उदाहरण के लिए, यदि दो कार्यक्रम हैं abcdefghऔर bcdEEfg, स्कोर है 8 + 7 + 4^2 = 31

सबसे कम स्कोर जीतता है।

सशर्त नियम

  • आउटपुट को 1-बेड या 0-बेड किया जा सकता है , प्रत्येक अनुक्रम के लिए स्वतंत्र रूप से (इसलिए यह अनुमति दी जाती है यदि प्रोग्राम में से एक- 1आधारित और दूसरा- 0आधारित है)।

  • प्रत्येक प्रोग्राम लगातार, लेकिन स्वतंत्र रूप से या तो, n-th टर्म या पहले nशब्दों को आउटपुट कर सकता है ।

  • प्रत्येक अनुक्रम के लिए स्वतंत्र रूप से कार्यक्रमों या कार्यों की अनुमति है।

  • इनपुट और आउटपुट के साधन और प्रारूप हमेशा की तरह लचीले होते हैं । मानक खामियों को मना किया जाता है

जवाबों:


20

जेली , 16 + 16 + 1² = 33

A107083

⁵*+31ÆḍÆNB>/
1Ç#

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

A221860

⁵*+31ÆạÆNB>/
1Ç#

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

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

1Ç#           Main link. Argument: n

1             Set the return value to 1.
 Ç#           Call the helper link with arguments k, k + 1, k + 2, ... until n of
              them return a truthy value. Return the array of n matches.


⁵*+31ÆḍÆNB>/  Helper link. Argument: k

⁵*            Yield 10**k.
  +31         Yield 10**k + 31.
     Æḍ       Count the proper divisors of 10**k + 31.
              This yields c = 1 if 10**k + 31 is prime, an integer c > 1 otherwise.
       ÆN     Yield the c-th prime.
              This yields q = 2 if 10**k + 31 is prime, a prime q > 2 otherwise.
         B    Binary; yield the array of q's digits in base 2.
          >/  Reduce by "greater than".
              This yields 1 if and only if the binary digits match the regex /10*/,
              i.e., iff q is a power of 2, i.e., iff 10**k + 31 is prime.


⁵*+31ÆạÆNB>/  Helper link. Argument: k

     Æ        Unrecognized token.
              The token, as well as all links to its left, are ignored.
       ÆN     Yield p, the k-th prime.
      ạ       Take the absolute difference of k and p, i.e., p - k.
         B    Binary; yield the array of (p - k)'s digits in base 2.
          >/  Reduce by "greater than".
              This yields 1 if and only if the binary digits match the regex /10*/,
              i.e., iff p - k is a power of 2.


4

जेली , 12 + 12 + 8² = 88 बाइट्स

1, 2, 3, 14

ÆN_µæḟ2=
1Ç#

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

1, 2, 3, 15

10*+31ÆP
1Ç#

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


1) यह nth शब्द का उत्पादन करना चाहिए, न कि पहले n शब्द 2) अरे, हमारे स्निपेट में से एक लगभग समान हैं! 3) उह ... जो 10बहुत लंबा लगता है।
२०:५० पर आउटगॉल्फ

1) एन-वें शब्द के आउटपुट के बजाय, प्रत्येक प्रोग्राम स्वतंत्र रूप से पहले एन शब्दों का उत्पादन कर सकता है।
लीक नन

हम्म, ताकि मेरा जवाब एक छोटे स्कोर का हो।
को एग्री द आउटग्राफर

@EriktheOutgolfer भ्रम के बारे में क्षमा करें, मैंने इसे अधिक स्पष्टता के लिए मुख्य पाठ में शामिल किया है (पहले यह केवल "अतिरिक्त नियमों" के तहत था)
लुइस मेंडो


3

MATL , 17 + 17 + 7² = 83

1, 2, 3, 14, ... (17 बाइट्स)

0G:"`Q11qy^31+Zp~

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

1, 2, 3, 15, ... (17 बाइट्स)

0G:"`QtYqy-Bzq~p~

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

दोनों एक समान योजना के 0G:"`Qलिए काम करते हैं और जब कोई शर्त पूरी की जाती है तो काउंटर चालू करते हैं और लौटते हैं n। वास्तविक कार्यक्रम तब काफी सीधा है। 15संस्करण कुछ पूरक (है ~p~, जबकि,) Levenshtein दूरी को कम करने के 14कार्यक्रम एक को रोजगार 11qyके बजाय t10wबेहतर अन्य कार्यक्रम मैच के लिए।

साझा किया गया भाग:

0      % Push counter (initially zero)
 G:"   % Loop `n` times
    `  % Do .... while true
     Q % Increment counter

शीर्ष कार्यक्रम:

11q         % Push 10
   y        % Duplicate counter
    ^       % Power
     31+    % Add 31
        Zp  % isprime
          ~ % If not, implicitly continue to next iteration. 
            % Else, implicit display of counter.

निचला कार्यक्रम:

tYq         % Nth prime based on counter
   y-       % Duplicate counter, subtract from nth prime.
     Bzq    % Number of ones in binary presentation, minus one (only zero for powers of two).
        ~p~ % Filler, effectively a NOP.
            % If not zero, implicitly continue to next iteration
            % Else, implicitl display of counter.

1

05AB1E (विरासत) , 10 + 11 + 6 2 = 84 69 57 बाइट्स

1, 2, 3, 14, ... (A107083)

ε>а32<+p

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

1, 2, 3, 15, ... (A221860)

ε>Ð<ØαD<&_

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

दोनों 1-आधारित आउटपुट करते हैं nवें मूल्य।

05AB1E की विरासत संस्करण का उपयोग करता है, क्योंकि यह करता है ½( 1 से वृद्धि counter_variableअगर स्टैक के शीर्षµ सत्य है ) प्रत्येक -loops के चलना के बाद स्पष्ट रूप से ( जबकि counter_variableइसके बराबर नहीं हैअभी तक, ... )।

स्पष्टीकरण:

Î            # Push 0 and the input
 µ           # While the counter_variable is not equal to the input yet:
  >          #  Increase the top by 1
   Ð         #  Triplicate it (which is our `k`)
    °32<+    #  Take 10 to the power `k`, and add 31
         p   #  Check if this is a prime
             #  (implicit: if it is a prime, increase the counter_variable by 1)
             # (implicitly output the top of the stack after the while-loop)

Î            # Push 0 and the input
 µ           # While the counter_variable is not equal to the input yet:
  >          #  Increase the top by 1
   Ð         #  Triplicate it (which is out `k`)
           #  Get the 0-indexed k'th prime
      α      #  Get the absolute difference of this prime with the copied `k`
       D<&   #  Calculate `k` Bitwise-AND `k-1`
          _  #  And check if this is 0 (which means it's a power of 2)
             #  (implicit: if it is 0, increase the counter_variable by 1)
             # (implicitly output the top of the stack after the while-loop)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.