コードを逆にし、OEISを逆にします


11

ここでのタスクは、自然数nを取り、OEISシーケンスのn番目の項を生成するプログラムを作成することです。そのシーケンスにはA、6桁の数字が続く形式の識別子が必要です。これで、ソースコードを取得し、そのバイトの順序を逆にして新しいプログラムを作成すると、そのプログラムはOEISシーケンスも実装する必要があります。新しいシーケンスはA、前回と同じ6桁の数字が逆順(先行ゼロを含む)で続いて識別される必要があります。

さて、物事が些細なものになるのを防ぐために、OEIS識別子番号もあなたのプログラムも回文ではありません。つまり、シーケンスとプログラムは異なるはずです。逆のシーケンスが存在しないか、空であるシーケンスを選択することはできません。

シーケンスごとに、0または1のインデックスを使用することを選択できます。同じインデックスを使用する必要はありません。一部のOEISシーケンスにはドメインが制限されているため、シーケンスのドメインの正しい数値を出力するだけで済みます。必要な動作は、ドメイン外では定義されていません(出力0、クラッシュ、ピザの注文など)。

これはため、回答はバイト単位でスコア付けされ、バイト数は少ない方が良いです。


先行ゼロはシーケンス番号の反転に含まれますか?
pppery

1
@pppery OEIS番号は正確に6桁であるため、そうでなければなりません。(それも質問で明示的に言っています)
ジョーキング

入力(インデックス)を文字列として取得できますか?
TFeld

回答:



4

Perl 6、55バイト(A055642およびA246550)

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

オンラインでお試しください!

n

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

オンラインでお試しください!

xexe4

この課題のほとんどは、複雑すぎないリバースを使用して適切なシーケンスを見つけることでした。

更新:torcadoの回答を使用すると、これは19バイト(A010851およびA158010)になります

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

オンラインでお試しください!


2

\ / \ />15 14バイト(A010851およびA158010

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

効果的にcn、出力12

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

事実上j:"Ā"*1-*n、n(256n-1)

信じられないほどシンプルなシーケンスを見つけてくれた友人に感謝します!


1

Haskell、47バイト(A000010およびA010000

両方のシーケンスは比較的単純です。

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

オンラインでお試しください!

p n = nのオイラートージェント関数(A000010)(1-indexed)

逆に:

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

オンラインでお試しください!

p n n = 0の場合は1、それ以外の場合はn ^ 2 + 2

コメントを使用しない答えを見るのは面白いでしょう...


1

Python 2、59バイト(A030000およびA000030)

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

オンラインでお試しください!

fk2kn

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

オンラインでお試しください!

n


短いバージョン。文字列を入力として(両方のシーケンスに対して)使用しますが、両方とも0インデックス付きです。

Python 2、56バイト

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

オンラインでお試しください!

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

オンラインでお試しください!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.