लिखित अंक अनुक्रम


17

यहाँ एक यथोचित तुच्छ अनुक्रम है जो इंटेगर अनुक्रमों के ऑनलाइन विश्वकोश में नहीं है ।

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

संदर्भ के लिए अंग्रेजी में (आधार दस) अंकों के सभी वर्ण हैं:

zero   one    two    three  four   five   six    seven  eight  nine
4      3      3      5      4      4      3      5      5      4

(जो A52360 और A5589 दोनों की शुरुआत है ।)

यह पहली प्रविष्टि बनाता है a(0)=0 के बाद से वहाँ शून्य अंक खाली अनुक्रम में मौजूद हैं।

यह दूसरी प्रविष्टि बनाता है क्योंकि इसे "शून्य" लिखने के लिए चार अक्षर लगते हैं, अब तक मौजूद एकमात्र अंक।a(1)=4

यह तीसरी प्रविष्टि बनाता है क्योंकि यह "ज़ीरोफोर" लिखने के लिए कुल आठ के लिए "चार" लिखने के लिए चार और वर्ण लेता है।a(2)=8

यह चौथी प्रविष्टि बनाता है क्योंकि इसमें "जीरोफ्रीइट" लिखने के लिए कुल तेरह के लिए "आठ" लिखने के लिए पांच और चरित्र लगते हैं।a(3)=13

यह पांचवां प्रवेश करता है a(4)=21 के रूप में यह आठ और वर्ण लिखने के लिए "onethree" इक्कीस के लिए कुल लिखने के लिए "zerofoureightonethree" लेता है।

...और इसी तरह। यहाँ पहले 100 प्रविष्टियाँ हैं:

0, 4, 8, 13, 21, 27, 35, 44, 52, 59, 67, 75, 84, 93, 102, 112, 121, 130, 142, 152, 162, 171, 182, 193, 205, 216, 225, 235, 247, 259, 270, 282, 293, 305, 318, 331, 344, 357, 371, 384, 398, 412, 422, 432, 444, 456, 467, 479, 492, 503, 516, 526, 536, 548, 561, 571, 583, 597, 610, 620, 630, 642, 652, 662, 671, 682, 693, 705, 718, 731, 744, 757, 771, 784, 798, 812, 823, 836, 849, 862, 873, 888, 903, 916, 926, 936, 948, 961, 971, 983, 997, 1010, 1024, 1038, 1055, 1070, 1086, 1101, 1114, 1127

* हम इसे अन्य भाषाओं और / या अन्य आधारों या निश्चित रूप से रिक्त स्थान के लिए परिभाषित कर सकते हैं

चुनौती

n आउटपुट को देखते हुए , कोड के कुछ बाइट्स में से किसी के रूप में संभव है:

  • अनुक्रम के पहले n शब्द (गैर-नकारात्मक पूर्णांक के लिए काम करना चाहिए)
  • का मूल्य a(n) (गैर नकारात्मक पूर्णांक के लिए काम करना चाहिए)
  • n वें क्रम की अवधि (धनात्मक पूर्णांक के लिए काम करना चाहिए - के यानी मूल्य a(n1) )

यह इसलिए प्रत्येक भाषा के लिए बाइट्स जीत में सबसे छोटा उत्तर, और बाइट्स में सबसे छोटा उत्तर जीतता है। गोल्फ भाषाओं को अपनी पसंदीदा भाषा में प्रवेश करने से न रोकें, यह एक व्यावहारिक या एक गूढ़ बात है!


पहले विकल्प से, क्या आपका मतलब है कि 1) 1आउटपुट चाहिए [0]और 0आउटपुट होना चाहिए []या 2) 0आउटपुट [0](जैसा कि मेरे पूर्व उत्तर में है ) होना चाहिए ?
आउटगॉल्फ

@EriktheOutgolfer मेरा मतलब (1) है क्योंकि इसे पहले n शब्द वापस करने चाहिए। यही है, विकल्प "आउटपुट अनुक्रम हैं, लेकिन एक (एन)", "आउटपुट ए (एन)", या "आउटपुट (एन -1)" शामिल नहीं हैं।
जोनाथन एलन

तो, a (x) = a (x-1) + f (a (x-1)) जहाँ f (x) x लिखने के लिए आवश्यक वर्णों की मात्रा है?
फायरक्यूबेज़

@FireCubez हाँ, यदि a (0) = 0 और f (x) x का अंक लिखने के लिए गैर-अंतरिक्ष वर्ण है
जोनाथन एलन

जवाबों:


12

पर्ल 6 , 45 बाइट्स

{({[+] @_.join.uninames>>.comb X-6}...*)[$_]}

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

जब आप सीधे अंक का नाम प्राप्त कर सकते हैं, तो फैंसी मोडुलोइंग की कोई आवश्यकता नहीं है! अनाम कोड ब्लॉक जो अनुक्रम के nth मान को लौटाता है, या आप मानों की सूची प्राप्त करने के लिए एक सीमा में पास कर सकते हैं

स्पष्टीकरण:

{(                                     )[$_]}  # Index input into:
  {                               }...*        # An infinite sequence
                                               # Where each element is
   [+]   # The sum of
       @_.join  # All previous elements joined together
              .uninames  # The unicode names for each character
                         # These are names in the form "DIGIT ONE"
                       >>.comb  # Split each to lists of characters
                               X-6  # Subtract 6 from each

@JonathanAllan आह, मैंने मान लिया था कि आपने एक अनंत अनुक्रम को वापसी के रूप में अनुमति दी थी, क्षमा करें। मैं इसे ठीक करूँगा
Jo King

अच्छा, यह अच्छा है :)
जोनाथन एलन

अच्छा! »एक बाइट है, है ना? इसके अलावा, [+]बाइनरी ऑप्स रिड्यूसर बन सकते हैं sumऔर तीन बाइट्स के साथ और शेष समाधान को ध्यान में रखते हुए जो कम से कम नहीं हो सकता है, लेकिन यकीन है कि सबसे सुरुचिपूर्ण गोल्फ इमो है।
raiph

@ चरफ »दो बाइट्स है इसलिए यह विनिमेय है।
जो राजा

हो सकता है कि यह धोखा है लेकिन क्या राकूडो लैटिन 1 सोर्स कोड को सही तरीके से हैंडल नहीं करता है? यदि हां, तो ध्यान दें कि say '»'.encode('latin1').bytes प्रदर्शित करता है 1। :)
raiph

8

जावास्क्रिप्ट (ईएस 6), 69 68 61 58 बाइट्स

रिटर्न (n)

f=(n,s=0)=>n?f(n-1,[...s+''].map(d=>s+=(d+10)%23%3+3)|s):s

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

कैसे?

एक अंक को अक्षरों की संख्या n में बदल दिया जाता है :

n=(((×100+10)आधुनिक23)आधुनिक3)+3

 d | *100 | +10 | MOD 23 | MOD 3 | +3 | word
---+------+-----+--------+-------+----+-------
 0 |    0 |  10 |   10   |   1   |  4 | zero
 1 |  100 | 110 |   18   |   0   |  3 | one
 2 |  200 | 210 |    3   |   0   |  3 | two
 3 |  300 | 310 |   11   |   2   |  5 | three
 4 |  400 | 410 |   19   |   1   |  4 | four
 5 |  500 | 510 |    4   |   1   |  4 | five
 6 |  600 | 610 |   12   |   0   |  3 | six
 7 |  700 | 710 |   20   |   2   |  5 | seven
 8 |  800 | 810 |    5   |   2   |  5 | eight
 9 |  900 | 910 |   13   |   1   |  4 | nine

क्योंकि संख्या अंकों के वर्णों में विभाजित है, हम सिर्फ 10 जोड़कर (एक स्ट्रिंग संघनन के रूप में) ×100+10 को संसाधित कर सकते हैं ।10


7

स्टैक्स , 14 13 बाइट्स

┴♥7[╘⌂←─üTJ‼√

इसे चलाएं और डीबग करें

यहाँ प्रमुख अंतर्दृष्टि यह है कि अंक dको ((4 - 2 * d) // 3) % 3 + 3वर्तनी के लिए अक्षरों की आवश्यकता होती है । (यह अजगर पूर्णांक विभाजन है, और अजगर शैली गैर-नकारात्मक मापांक)


5

पिप , 21 बाइट्स

Lai+:$+4335443554@^Pi

इनपुट n को कमांड-लाइन तर्क के रूप में लेता है और पहले n शब्दों को आउटपुट करता है । इसे ऑनलाइन आज़माएं!

व्याख्या

Lai+:$+4335443554@^Pi
                       a is 1st cmdline arg; i is 0 (implicit)
La                     Loop (a) times:
                   Pi   Print i
                  ^     Split it into a list of characters (i.e. digits)
       4335443554@      Use each digit to index into this number, giving the length of the
                        name of the digit (0 -> 4, 1 -> 3, etc.)
     $+                 Sum the results
  i+:                   Increment i by that amount

2
मैंने इसे पढ़ा large constant to the power of piऔर स्मारकीय रूप से प्रभावित हुआ। (यह अभी भी प्रभावशाली है, लेकिन मेरी प्रारंभिक व्याख्या सिर्फ .. अधिक थी)
Οurous

4

वोल्फ्राम भाषा (गणितज्ञ) , 57 बाइट्स

Nest[#+Tr@StringLength@IntegerName@IntegerDigits@#&,0,#]&

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

Tr@StringLength@IntegerName@IntegerDigits@#&के अंकों को सूचीबद्ध करता है #, उनमें से प्रत्येक को एक अंग्रेजी नाम में परिवर्तित करता है, लंबाई को गिनता है, और परिणामों को बताता है। बहुत सी चीजें सूचियों में पिरोती हैं, यह बहुत रोमांचक है। तब हम केवल पुनरावृति परिभाषा लागू करते हैं।

टीआईओ की शिकायत है कि इसमें इंटरनेट कनेक्शन नहीं है, लेकिन मुझे यकीन नहीं है कि, क्योंकि यह सही उत्तर का पता लगाता है। हो सकता है कि यह पूर्णांक के नामों के अपडेट के लिए जाँच कर रहा हो?

(n)(0),(1),...,(n)NestNestList




4

एपीएल (डायलॉग यूनिकोड) , 29 28 बाइट्स

{{⍵++/3+3|⌊3÷⍨4-2×⍎¨⍕⍵}⍣⍵⊢0}

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

(मैंnपीयूटी)

इस एक के साथ मदद करने के लिए दोस्तों @ The APL Orchard को धन्यवाद:

@ 2 बाइट्स के लिए; @ 3 4 बाइट्स के लिए H.PWiz ।

अब @ पुनरावर्ती सूत्र का उपयोग करना।

किस तरह:

{{⍵++/3+3|⌊3÷⍨4-2×⍎¨⍕⍵}⍣⍵⊢0}  Main fn

 {                     }⍣⍵⊢0  Starting with 0, repeat (⍣) the inner fn input times
      3+3|⌊3÷⍨4-2×⍎¨⍕⍵       @recursive's formula
  ⍵++/                       ⍝ Sum with the input.

3

पायथन 2 , 61 बाइट्स

n=0
exec"for c in`n`:n+=(4-2*int(c))/3%3+3\n"*input()
print n

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

पुनरावर्ती की अंक गणना मैपिंग का उपयोग करता है ।


पायथन 2 , 63 बाइट्स

f=lambda n:n and f(n-1)+sum((4-2*int(c))/3%3+3for c in`f(n-1)`)

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

एक पुनरावर्ती फ़ंक्शन संस्करण। इसे चलाने के लिए घातीय समय लगता है क्योंकि इसमें दो पुनरावर्ती कॉल होते हैं f(n-1)


अच्छा! यदि आप इस अभिव्यक्ति को खोजने से पहले आपके द्वारा बताई गई अभिव्यक्ति-खोज स्क्रिप्ट का उपयोग कर रहे हैं, तो मैं उत्सुक हूं (या शायद इससे भी छोटा?)
लिन 12

@ लियन मैंने स्क्रिप्ट चलाई थी, लेकिन एक बेहतर नहीं मिला। पूर्ण खोज के लिए 13 वर्ण बहुत अधिक हैं, और सबसे लंबे 9 वर्णों में कुछ भी नहीं मिला। जब मैंने इसे काट दिया +3और इसे अंकगणित ऑपरेटरों (कोई बिटवाइज़) और संख्या <= 4 तक सीमित कर दिया, तो मुझे यह समाधान मिला लेकिन समकक्षों को छोड़कर कुछ भी छोटा या समान लंबाई नहीं थी।
xnor

3

पायथन 2 , 71 बाइट्स

f=lambda n,k=0:n and f(n-1,k+sum(632179420>>3*int(d)&7for d in`k`))or k

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


f=lambda n,k=0:n and f(n-1,k+sum(632179420>>3*int(d)&7for d in`k`))or kएक ही गिनती है, लेकिन एक संलग्न सूची के उत्पादन से बचा जाता है।
जोनाथन एलन

लगता है उनके स्टैक्स के जवाब से पुनरावर्ती का एल्गोरिथ्म 2 बाइट्स को बचाएगा। मुझे हालांकि यह पसंद है!
जोनाथन एलन

3

मैथॉल्फ , 17 बाइट्स

0\{_▒♀*♂+L%3%3+Σ+

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

यह अरनॉल्ड की विधि का उपयोग करता है । अनुक्रम के nth तत्व को आउटपुट करता है .. यदि खाली स्ट्रिंग के लिए ठीक है a(0), तो हम 0\शुरुआत में हटा सकते हैं ।

स्पष्टीकरण:

0\                 Setup 0 as the counter
  {                Loop input times
   _▒              Duplicate counter and split to list of digits
     ♀*            Multiply each element by 100
       ♂+          Add 10
         L%        Modulo by 23
           3%      Modulo by 3
             3+    Add 3
               Σ   Sum list
                +  And add to counter

3

पायथ , 21 बाइट्स

u+Gs@L+L3jC\᯻3jGTQ0

इसे यहाँ ऑनलाइन आज़माएँ ।

u+Gs@L+L3jC\᯻3jGTQ0   Implicit: Q=eval(input()), T=10

u                Q0   Starting at 0, repeat the following Q times, with current value as G:
          C\᯻           Get character code 7163
         j   3          Convert the above to base 3, yields [1, 0, 0, 2, 1, 1, 0, 2, 2]
      +L3               Add 3 to each to generate digit length dictionary
              jGT       Get digits of G (convert to base 10)
    @L                  Lookup each value in the above in the dictionary, modular indexing
   s                    Take the sum
 +G                     Add G to the above

बहुत संभावना है कि पायथ के कोडपेज में एक भी बाइट नहीं है। (मुझे लगता है कि यह UTF-8 का उपयोग करता है, जिस स्थिति में यह 3 बाइट्स है, और j7163 3इसकी लंबाई समान है; लेकिन tio.run का कहना है कि Pyth में SBCS है। रहस्यमय!)
Lynn

@ लियन आप बिलकुल सही हैं, मैं बाइट काउंट के बारे में भूल गया हूँ, मेरा बुरा। मैं अभी के लिए कोड छोड़ दूंगा और बाइट काउंट को अपडेट करूंगा
Sok






1

जे , 37 बाइट्स

(+1#.|(3+3|23|10+100*]),.&.":)@]^:[&0

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

अर्नुल्ड की विधि का उपयोग करता है

स्पष्टीकरण:

का तर्क है n

                                 ^:    - apply the verb on the left hand site
                                   [   - n times
                                    &0 - to a starting value 0
 (                             )@]     - calculate for the current value of the argument
                         ,.&.":        - convert to string and then each char to digit
        (3+3|23|10+100*])              - map each digit to its word length
       |                               - a filler for the fork
    1#.                                - sum the lengths 
   +                                   - add them to the current value

1

पहली टिप्पणी के बाद संपादित।

सभी शब्दों को प्रिंट करता है

स्काला, 76 बाइट्स

def^(n:Int)=(1 to n).scanLeft(0)((y,_)=>y+(y+"").map(x=>(x*9+1)%13%3+3).sum)

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

प्रिंट्स n वें पद

स्काला, 72 बाइट्स

def^(n:Int)=Stream.iterate(0)(x=>x+(x+"").map(x=>(x*9+1)%13%3+3).sum)(n)

स्काला, 69 बाइट्स

def^(n:Int)=(0/:(1 to n))((y,_)=>y+(y+"").map(x=>(x*9+1)%13%3+3).sum)

स्काला, 67 बाइट्स

def s(b:Int):Stream[Int]=b#::s(b+(b+"").map(x=>(x*9+1)%13%3+3).sum)

स्काला, 67 बाइट्स

val s:Stream[Int]=0#::s.map(x=>x+(x+"").map(x=>(x*9+1)%13%3+3).sum)

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


1
मुझे स्काला का पता नहीं है, लेकिन मुझे लगता है कि यह न तो कोई कार्यक्रम है और न ही कोई फंक्शन है, बल्कि एक स्निपेट (यानी यह एक बार nपरिभाषित होने पर आरईपीएल पर चलता है)। अगर आपको पता है कि स्काला को ठीक करना आसान है। यह भी ध्यान दें कि स्काला प्रश्न में गोल्फ के लिए एक सुझाव है जो मदद कर सकता है। अंत में एक ऑनलाइन दुभाषिया के लिए एक लिंक पोस्ट करना अच्छा है, टीआईओ में स्काला है और पीपीसीजी के बहुत से सदस्यों द्वारा उपयोग किया जाता है।
जोनाथन एलन

1
@JonathanAllan, धन्यवाद, यह बहुत मददगार था।
डॉ। वाई विट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.