चार सर्पिल अक्ष


9

संख्याओं को लें 0, 1, 2, 3, 4, ...और उन्हें एक दक्षिणावर्त सर्पिल में व्यवस्थित करें, नीचे की ओर शुरू करें, प्रत्येक अंक को अपने अलग वर्ग में लिखें।

फिर, एक अक्ष का प्रतिनिधित्व करने वाले चार विशिष्ट और सुसंगत ASCII वर्णों (आपकी पसंद) को देखते हुए, और एक इनपुट पूर्णांक n, nइसी धुरी के साथ वर्गों का चयन करके वर्णित अनुक्रम की पहली शर्तों को आउटपुट करता है।

उदाहरण के लिए, नीचे दिए गए भाग के माध्यम से व्यवस्थित सर्पिल है 29। मान लीजिए कि हम u / d / l / rअपने चार वर्णों के लिए उपयोग करते हैं, प्रतिनिधित्व करते हैं up / down / left / right। फिर, uइनपुट के रूप में, हम वें पद तक 0, 5, 1, 4 ...(सकारात्मक y- अक्ष) आउटपुट करते हैं n। हम बजाय दिए गए थे, तो lइनपुट के रूप में है, तो यह हो सकता है 0, 3, 1, 1 ...अप करने के लिए nवें अवधि।

  2---3---2---4---2---5---2
  |                       |
  2   1---3---1---4---1   6
  |   |               |   |
  2   2   4---5---6   5   2
  |   |   |       |   |   |
  1   1   3   0   7   1   7
  |   |   |   |   |   |   |
  2   1   2---1   8   6   2
  |   |           |   |   |
  0   1---0---1---9   1   8
  |                   |   |
  2---9---1---8---1---7   2

ये OEIS पर अनुक्रम हैं:

उदाहरण

d 19
[0, 1, 1, 8, 3, 7, 6, 2, 1, 5, 1, 1, 6, 2, 2, 1, 3, 4, 0]

r 72
[0, 7, 1, 7, 4, 2, 8, 1, 1, 3, 1, 2, 0, 2, 3, 1, 3, 4, 6, 5, 5, 5, 7, 7, 8, 8, 9, 6, 8, 1, 1, 1, 2, 3, 1, 8, 0, 6, 1, 7, 0, 9, 2, 8, 4, 3, 2, 1, 1, 7, 2, 6, 2, 1, 3, 3, 5, 5, 3, 2, 2, 0, 4, 3, 2, 5, 4, 6, 5, 0, 5, 1]

u 1
[0]

नियम

  • यदि लागू हो, तो आप मान सकते हैं कि इनपुट / आउटपुट आपकी भाषा के देशी पूर्णांक प्रकार में फिट होगा।
  • यदि आप चार अक्षों का प्रतिनिधित्व करने के लिए पूर्णांक का उपयोग कर रहे हैं, तो आप नियमों को तोड़े बिना नकारात्मक पूर्णांक का उपयोग कर सकते हैं।
  • इनपुट और आउटपुट किसी भी सुविधाजनक विधि द्वारा दिया जा सकता है ।
  • या तो एक पूर्ण कार्यक्रम या एक समारोह स्वीकार्य हैं। यदि कोई फ़ंक्शन है, तो आप इसे प्रिंट करने के बजाय आउटपुट वापस कर सकते हैं।
  • मानक खामियों को मना किया जाता है।
  • ये है इसलिए सभी सामान्य गोल्फिंग नियम लागू होते हैं, और सबसे छोटा कोड (बाइट्स में) जीतता है।

क्या हम कुछ दिशाओं के लिए नकारात्मक पूर्णांक ले सकते हैं?
mbomb007

@ mbomb007 यकीन है, यह ठीक होगा।
AdmBorkBork

बहुत व्यावहारिक नहीं लगता है, लेकिन क्या हम एक पूर्णांक को वापस ला सकते हैं जिसमें प्रमुख शून्य को छोड़कर आवश्यक अंक हैं (जो वैसे भी निहित होगा)?
आउटगॉल्फ

@AdmBorkBork मूल रूप से मेरे मन में ऐसा कोई समाधान नहीं है, बस पूछने के लिए सोचा था। :)
एरिक आउटोलॉफ़र

एक चुनौती को आउटपुट से आंका जाता है। इसलिए यदि शून्य को शामिल नहीं किया गया है, तो मुझे लगता है कि यह गलत होगा, क्योंकि यदि आप स्ट्रिंग आउटपुट के लिए शून्य को बाहर रखा गया है तो आप इसे गलत मानेंगे। पायथन प्रमुख शून्य के साथ पूर्णांकों का उत्पादन कर सकता है, इसलिए अन्य भाषाओं में नहीं।
mbomb007

जवाबों:


5

पायथन 2 , 94 89 84 83 74 72 70 बाइट्स

मैंने वोल्फ्रामअल्फा का इस्तेमाल किया और निर्धारित किया कि 5 n > 4n 2 + 3n की ऊपरी सीमा पर्याप्त लगती है। इसे बिना किसी लागत के 9 एन में बदला जा सकता है । बड़े इनपुट आज़माने के लिए, मेमोरी से बाहर भागने के 9*n*nबजाय उपयोग करें 5**n

lambda d,n:["".join(map(str,range(5**n)))[x*(4*x+d)]for x in range(n)]

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

निर्देशों के लिए इनपुट निम्न हैं:

  • 3: सही है
  • -3: नीचे
  • -1 बचा
  • एक ऊपर

रॉड ब्रेड के लिए 14 बाइट्स धन्यवाद, जोनाथन एलन के
लिए 2 बाइट्स धन्यवाद


1

MATL , 32 बाइट्स

tE1YLtn:qVXzw)3Lt3$)iX!w:qyfYm+)

इनपुट है n, a, जहां aरेखाएँ प्रतिनिधित्व इस प्रकार है:

  • 0: बाएं;
  • 1: यूपी;
  • 2: सही;
  • 3: नीचे

आउटपुट एक स्ट्रिंग है।

इसे ऑनलाइन आज़माएं! या सभी परीक्षण मामलों को सत्यापित करें


1

जेली ,  19  18 बाइट्स

Mbomb007 के पायथन उत्तर से 5 n ट्रिक का उपयोग करता है

4,0jḅɗ@€ị5*D€FʋṖ0;

nबाईं ओर एक डायडिक लिंक dऔर इससे पूर्णांक:[-3,-1,1,3]:[v,<,^,>]

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

एक 20 बाइट विकल्प जो दोनों बहुत तेज है और ऐसे छोटे n के लिए segfault नहीं है:

²×5D€ƲFị@4,0jḅɗ@€Ṗ0;

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

कैसे?

4,0jḅɗ@€ị5*D€FʋṖ0; - Link: integer, n; integer, d
     ɗ@€           - last three links as a dyad with sw@pped arguments for €ach (of implicit range [1,n])
4,0                -   literal list [4,0]
   j               -   join with d = [4,d,0]
    ḅ              -   convert from base n = 4*n^2+d*n+0
        ị          - index into...
              ʋ    - last four links as a monad:
         5         -   five
          *        -   exponentiate = 5^n
           D€      -   decimal list of each (in implicit range [1,5^n])
            F      -   flatten into a single list of the digits
               Ṗ   - pop (drop the final element)
                0; - prepend a zero

1

काफी n के लिए काम करेंगे (जैसे +1000)

जावास्क्रिप्ट (Node.js) , 104 बाइट्स

f=(d,n)=>--n?[...f(d,n),C(n*(4*n+d))]:[0]
C=(n,N=i=0)=>n>N?C(n-N,(p=10**i)*9*++i):+((p+--n/i|0)+"")[n%i]

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

व्याख्या

  • 3: सही है
  • -3: नीचे (-3 टिप्पणियों के अनुसार वैध है)
  • -1 बचा
  • 1: अप (@ mbomb007 की तरह)

चेम्परनोई के स्थिरांक का C- nth अंक

________________________________________________________

कम कुशल विधि (1000+ के लिए काम नहीं करेगा)

जावास्क्रिप्ट (Node.js) , 81 बाइट्स

f=(d,n)=>eval(`for(r=[],s=i=I="";I<n;)(s+=i++)[u=I*(4*I+d)]&&r.push(s[I++,u]),r`)

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


0

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

â╞ê←τ"(]]⌐┘?N

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

यह दिशा के साथ इनपुट लेता है, इसके बाद गिनती करता है। ठीक है, ऊपर, कर रहे हैं छोड़ दिया है, और नीचे 1, 3, 5, और 7क्रमशः। तीन प्रदान किए गए परीक्षण मामलों को चलाने के लिए पूर्ण मिनट लगते हैं।

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