शेजेर्स का क्रम


9

परिभाषा

  • a(1) = 1
  • a(2) = 2
  • a(n)सबसे छोटी संख्या है k>a(n-1)जो किसी भी 3-अवधि अंकगणितीय प्रगति से बचती है a(1), a(2), ..., a(n-1), k
  • दूसरे शब्दों में, a(n)सबसे छोटी संख्या k>a(n-1)ऐसी है x, yजहां मौजूद नहीं है , जहां 0<x<y<nऔर a(y)-a(x) = k-a(y)

उदाहरण के लिए काम किया

के लिए n=5:

हमारे पास है a(1), a(2), a(3), a(4) = 1, 2, 4, 5

यदि a(5)=6, तो 2, 4, 6एक अंकगणितीय प्रगति है।

यदि a(5)=7, तो 1, 4, 7एक अंकगणितीय प्रगति है।

यदि a(5)=8, तो 2, 5, 8एक अंकगणितीय प्रगति है।

यदि a(5)=9, तो 1, 5, 9एक अंकगणितीय प्रगति है।

यदि a(5)=10, कोई अंकगणितीय प्रगति नहीं पाई जा सकती है।

इसलिए a(5)=10

कार्य

दिया n, आउटपुट a(n)

चश्मा

  • n एक सकारात्मक पूर्णांक होगा।
  • आप 1-अनुक्रमित के बजाय 0-अनुक्रमित का उपयोग कर सकते हैं, जिस स्थिति में nहो सकता है 0। यदि आप 0-अनुक्रमित का उपयोग कर रहे हैं, तो कृपया इसे अपने उत्तर में बताएं।

स्कोरिंग

चूंकि हम 3-टर्म अंकगणितीय प्रगति से बचने की कोशिश कर रहे हैं, और 3 एक छोटी संख्या है, बाइट-काउंट के संदर्भ में आपका कोड यथासंभव छोटा (यानी छोटा) होना चाहिए।

परीक्षण के मामलों

वृषण 1-अनुक्रमित हैं। आप 0-अनुक्रमित का उपयोग कर सकते हैं, लेकिन यदि आप ऐसा करते हैं तो कृपया इसे अपने उत्तर में निर्दिष्ट करें।

1     1
2     2
3     4
4     5
5     10
6     11
7     13
8     14
9     28
10    29
11    31
12    32
13    37
14    38
15    40
16    41
17    82
18    83
19    85
20    86
10000 1679657

संदर्भ


2
सम्बंधित। (अगर मैं आपकी चुनौती को सही ढंग से समझ
पाऊं

@MartinEnder आपने मेरी चुनौती को सही ढंग से समझा।
लीकेज नन

जवाबों:


8

जेली , 4 बाइट्स

Bḅ3‘

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

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

यह 0-आधारित अनुक्रमण और OEIS की प्राथमिक परिभाषा का उपयोग करता है :

शेजेर्स का क्रम: बाइनरी में टर्नरी = एन -1 में ए (एन) -1

Bḅ3‘  Main link. Argument: n

B     Convert n to binary.
 ḅ3   Convert from ternary to integer.
   ‘  Increment the result.

6

हास्केल, 37 36 32 बाइट्स

0-आधारित सूचकांकों का उपयोग करके, OEIS प्रविष्टि में दिए गए सूत्र का उपयोग करना। 4 बाइट्स के लिए धन्यवाद @nimi!

a 0=1;a m=3*a(div m 2)-2+mod m 2

3

पायथन 3, 28 बाइट्स

lambda n:int(bin(n)[2:],3)+1

एक अनाम फ़ंक्शन जो तर्क के माध्यम से इनपुट लेता है और परिणाम देता है। यह शून्य-अनुक्रमित है।

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

lambda n    Anonymous function with input zero-indexed term index n
bin(n)      Convert n to a binary string..
...[2:]     ...remove `0b` from beginning...
int(...,3)  ...convert from base-3 to decimal...
...+1       ...increment...
:...        and return

Ideone पर इसे आज़माएं



2

माणिक, 28 24 बाइट्स

0-आधारित अनुक्रमित के साथ डेनिस के समान विधि का उपयोग करना:

->n{n.to_s(2).to_i(3)+1}

उत्तर पर परीक्षण मामलों को चलाएँ: https://repl.it/Cif8/1



0

जावा 8, 52 46 बाइट्स

0 अनुक्रमित।

i->Integer.valueOf(Integer.toString(i,2),3)+1;

आप की जरूरत नहीं है, returnलेकिन आपको अर्धविराम की आवश्यकता है
लीक नून

यह उत्तर जो कहता है कि अर्धविराम की गणना नहीं की गई है; मैं इसे किसी भी तरह से बदल सकता था, लेकिन अर्धविराम को सर्वसम्मति गिना रहा है?
जस्टिन

एह, यही उन्होंने मुझे बताया था। मुझे नहीं पता कि सहमति इस प्रकार है।
लीक नून

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