Kehren Sie Ihren Code um, kehren Sie den OEIS um

11

Die Aufgabe hier besteht darin, ein Programm zu schreiben, das eine natürliche Zahl annimmt und den ten Term einer OEIS-Sequenz erzeugt. Diese Sequenz sollte eine Kennung in Form von gefolgt von 6 Ziffern haben. Wenn Sie nun Ihren Quellcode verwenden und die Reihenfolge seiner Bytes umkehren, um ein neues Programm zu erstellen, sollte dieses Programm auch eine OEIS-Sequenz implementieren. Die neue Sequenz sollte durch eine gefolgt von denselben 6 Ziffern wie beim letzten Mal gekennzeichnet sein, jedoch in umgekehrter Reihenfolge (einschließlich führender Nullen).nnAA

Damit die Dinge nicht trivial werden, können weder die OEIS-Identifikationsnummer noch Ihr Programm Palindrome sein. Das heißt, die Sequenzen und Programme sollten unterschiedlich sein. Sie können keine Sequenz auswählen, für die die Umkehrung nicht existiert oder leer ist.

Für jede Ihrer Sequenzen können Sie entweder die Indizierung 0 oder 1 verwenden. Sie müssen nicht dieselbe Indizierung verwenden. Da einige OEIS-Sequenzen eine begrenzte Domäne haben, müssen Sie nur die richtigen Nummern für die Domäne der Sequenz ausgeben. Ihr erforderliches Verhalten ist außerhalb der Domäne undefiniert (Sie können 0eine Pizza ausgeben , abstürzen, bestellen usw.).

Dies ist daher werden die Antworten in Bytes bewertet, wobei weniger Bytes besser sind.

Post Rock Garf Hunter
quelle
Werden führende Nullen in die Umkehrung der Sequenznummer einbezogen?
pppery
1
@pppery Sie müssen es sein, da OEIS-Nummern genau 6 Ziffern haben. (es sagt es auch ausdrücklich in der Frage)
Jo King
Können wir die Eingabe (Index) als Zeichenfolge verwenden?
TFeld

Antworten:

4

Perl 6 , 55 Bytes (A055642 und A246550)

+*.comb#}]1-_$[)4+_$^**X]_$^[)*..2,emirp-si&(perg(tros{

Probieren Sie es online aus!

Dies ist ein anonymes Lambda, das die OEIS-Sequenz A055642 (Länge der Dezimaldarstellung von ) mit 0-Index implementiert .n

{sort(grep(&is-prime,2..*)[^$_]X**^$_+4)[$_-1]}#bmoc.*+

Probieren Sie es online aus!

Die Umkehrung ist die Sequenz A246550 (die geordnete Liste von wobei Primzahl und ) 1-indiziert.xexe4

Der größte Teil dieser Herausforderung bestand darin, eine gute Sequenz mit einer nicht allzu komplizierten Umkehrung zu finden.

Update: Bei Verwendung der Antwort von torcado können dies 19 Bytes sein (A010851 und A158010).

{256*$_**2-$_}#{21}

Probieren Sie es online aus!

Scherzen
quelle
2

\ / \ /> , 15 14 Bytes ( A010851 und A158010 )

cn;n*-1*"Ā":j

effektiv cnAusgabe 12

j:"Ā"*1-*n;nc

effektiv j:"Ā"*1-*nn (256n-1)

Vielen Dank an einen Freund für die Suche nach unglaublich einfachen Sequenzen!

Torcado
quelle
1

Haskell, 47 Bytes ( A000010 und A010000 )

Beide Sequenzen sind relativ einfach.

p n=sum[1|x<-[1..n],gcd x n<2]--2+n*n=n p;1=0 p

Probieren Sie es online aus!

p n = die Euler-Totientenfunktion von n (A000010) (1-indiziert)

Rückgängig gemacht:

p 0=1;p n=n*n+2--]2<n x dcg,]n..1[-<x|1[mus=n p

Probieren Sie es online aus!

p n = 1 wenn n = 0, sonst n ^ 2 + 2

Es wäre interessant, eine Antwort zu sehen, die keine Kommentare verwendet ...

Leo Tenenbaum
quelle
1

Python 2 , 59 Byte (A030000 und A000030)

f=lambda n,k=0:k if`n`in`2**k`else f(n,k+1)#]0[`n`:n adbmal

Probieren Sie es online aus!

Definiert eine Funktion f, die den n-ten Term von A030000 (kleinste nichtnegative Zahl so dass die Dezimalerweiterung von die Zeichenfolge enthält ) mit 0-Index zurückgibtk2kn

lambda n:`n`[0]#)1+k,n(f esle`k**2`ni`n`fi k:0=k,n adbmal=f

Probieren Sie es online aus!

Eine anonyme Funktion, die den n-ten Term von A000030 (Anfangsziffer von ) mit 0-Index zurückgibtn


Kürzere Version, die Zeichenfolgen als Eingabe verwendet (für beide Sequenzen) und beide noch 0-indiziert sind:

Python 2 , 56 Bytes

f=lambda n,k=0:`k`*(n in`2**k`)or f(n,k+1)#]0[n:n adbmal

Probieren Sie es online aus!

lambda n:n[0]#)1+k,n(f ro)`k**2`ni n(*`k`:0=k,n adbmal=f

Probieren Sie es online aus!

TFeld
quelle