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


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.