シークレットスワッピングシーケンスの検索


19

これは挑戦です。強盗のスレッドはこちらにあります

タスクは、OEISシーケンスを出力するコードを記述し、コードにシーケンスの名前を含め(A______)、コード内のシーケンスの名前が2番目のシーケンスの名前に変更されたときに2番目の別個のシーケンスを出力します。

HaskellのA000217およびA000290で機能する例を次に示します。

f x|last"A000217"=='0'=x^2|1>0=sum[1..x]

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

次に、2つのシーケンスのうちの1つと、2番目のシーケンスを秘密にするコードを明らかにします。強盗は隠されたシーケンスが何であるかを理解しようとします。強盗がなんとかしてシーケンス(または基準に合った別のシーケンス)を決定できた場合、解答は解読されます。回答が投稿されてから1週間以内に回答がない場合は、回答を安全とマークし、検証のための目的のソリューションを明らかにすることができます。 安全な答えを解読することはできません。

入出力

ここから撮影

コードは、標準入力メソッドを介してnを取得し、OEISページで指定されたインデックスによってインデックス付けされたシーケンスのn番目の用語を出力する関数または完全なプログラムです。

そのシーケンスのOEIS bファイルで提供されるすべての値をサポートする必要があります。bファイルにない数値はサポートする必要はありません。

得点

スコアはコード内のバイト数になり、バイト数が少ない方が良いでしょう。


1
スコアはコード内のバイト数になり、バイト数が少ない方が良いでしょう。-では、なぜこのタグ付きのcode-golfではないのですか?
Mr Xcoder

@ Mr.Xcoder忘れました。これらのことを読みすぎないでください;)
小麦ウィザード

それで、コードは、ある長さのシーケンス(定義されているかどうか)またはシーケンスのn番目の要素を出力する必要がありますか?
デッドポッサム

@DeadPossum n番目の用語
ミスターXcoder

@WheatWizardは、私がどこか他の場所を探していたと思いますが、監視します。私の悪い
デッドポッサム

回答:



5

Python 3、62バイト、A017016クラック

n=int(input())
print(sum(1for i in"A017016"if i>"0")*-~n//-~n)

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


私は...できるだけ難読化としてそれを作ってみました
氏Xcoder

1
@officialaimmわざとそうしました。これを難読化したいです。P:Pythonは、コードゴルフ難読化コンテストに勝つませんので、私は本当に、ゴルフ気にしない
氏Xcoder


ところで、それは意図した解決策でしたか?
完全に人間

@totallyhumanええ、それは意図した解決策でした。
氏Xcoder

4

Japt、13バイト(クラック

他の誰かがそれを突き刺したい場合、(少なくとも)他に1つの解決策があります。

p#A000012uCnG

オンラインで
試すA000012


説明

#その後にJaptの文字が続くと、その文字の文字コードが得られるため#A=65、残りの数字に追加され、65000012またはが得られ65000290ます。

uモジュロ法です(%常に正の数を返すという点で異なります)。 この方法は、それはそれに渡された番号からに適用された数を減算します。およびは、それぞれ11および15のJapt定数です。だから、私たちに与えます。 があります。この方法は、それが(暗黙的であり、この場合には、入力整数に適用されるの番号を上げる私たちの2つの最終的な式を与え、それに渡された数のパワーに)と。

nCGCnG4

65000012%4=065000290%4=2pUU**0U**2



1
@officialaimm:正しく、うまくやった。
シャギー

私はJaptを知らないので、引き上げられるべき力はであると想定していました(sum_of_numbers_in_oeis(excluding 'A') + 1)%4。:D
officialaimm

1
@officialaimm:私は強盗が知らない言語で挑戦をクラックするのを見るのが大好きです:)私はそれを実際に投稿しました。
シャギー

A020338は、文字列の入力が許可されている場合にも機能する場合があります(1インデックス付き)。
バブラー

4

MATL30 29バイト(クラック

A077430I\2-|Gw^1Mwx*10&Ylk1+&

A077430

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

@Sanchisesのおかげで-1バイト


1
今すぐ修正する必要があります
シナスキー

1
ちょっとしたヒント:I1バイトを3で置き換えることができます。
-Sanchises

@Sanchisesありがとう!知らなかったIが3に初期化される
シナスキー

2
表3を確認してください。l(1)とO(ゼロ)に加えて、MATLプログラムでスペースを使用する必要はほとんどありません。関連する注意事項については、多くの便利な定義済み定数を含む表7もチェックアウトしてください(ただし、たとえば4X2Z%速記があることに注意してください1Z%
Sanchises


3

C#、28バイト(クラック

n=>n*n*("A000290"[6]<49?1:n)

A000290動作します。

これを簡単に開始できます。

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


まだクラッキングできません> _ <
Xcoder氏17

@ Mr.Xcoderできるようになりました:)
TheLethalCoder

1
ひび割れ本当にひび割れではありませが!)
シャギー

@Shaggy私はちょうどボールを転がしたかったです:P
TheLethalCoder

3

Python 2、43バイト、A000079ひび割れ

オンラインで試す

lambda n:((sum(map(ord,'A000079'))*2)%8)**n


@TheLethalCoderまあ..それは合っていますが、私が選んだのはそれではありません。また、あなたのコメントの前に編集しましたが、もはや適合しません
デッドポッサム

5
投稿後に変更しましたか?少し不公平。
TheLethalCoder

@TheLethalCoder私はこの偽陽性シーケンスから保護するためにそれをやった:C
死んだポッサム

1
エントリの編集については知りませんが、OPのルールから、「強盗があなたのシーケンス(または基準に合った別のシーケンス)を決定することに成功した場合、答えはクラックされます」、参考までに。
-alleks

3

C#、75バイト、(クラック

n=>{int r=1,e=3-0xA000244%2;for(;n>0;e*=e){r*=(n%2>0?e:1);n>>=1;}return r;}

A000244

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



@Lynn何を与えたの?最初のシーケンス?
TheLethalCoder

3
あなたはOEIS番号を取っている% 2プログラムができるように、 - 文字通り2つのだけのことを行うための1:その結果に応じて、0およびのための1つを1。だから、私はその場所に奇数を入れました、そして挑戦はちょっと割れました。
リン

@Lynn Ahは、その部分を難読化するとは思わなかったと思います。
TheLethalCoder

2

Python 2、53 バイト、A000012 [クラック]

lambda x:len(`x**(sum(map(int,'A000012'[1:]))==22)`) 

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

次のシーケンスはA055642(10進数の桁の長さ)です。OEISの数字の合計は22に等しいため、数値はそれ自体に評価されます。したがって、len(...)は、 'A055642'の入力番号の実際の長さを計算します。シーケンスA000012(またはA055642以外の場合)は、評価される数が「1」になるため、lenは常に1に等しくなります。



1

Python 3、65バイト、A000027、クラック

a=lambda a,n=((int("A000027",11)-0x103519a)%100%30+1)/2:a//(14-n)

イェークレイジー算術!


ええと、A004526は、n=12どちらが正しいように見えますが、結果は1インデックス分ずれています。
ジョナサンアラン

どちらでもない; A004526を誤って解釈しましたa(n) = floor(n/2)。リストされているシーケンスは0から始まります。しかし、これは意図した解決策です。
-pppery

そうそうオフセット-右(うわー)、ありがとう!よく割れました。
ジョナサンアラン

1

Smalltalk、148バイト、安全!

|x o|x:=(16rA018253*0.00861-1445345)floor. o:=OrderedCollection new. 1 to:x/2 do:[:i|x\\i=0 ifTrue:[o add:i]].o add:x.^o at:stdin nextLine asInteger

A018253

入力として整数を受け取ります。シーケンスは1から始まります。

目的の2番目のシーケンスはA133020です。A018253の記事には、数値の約数に関連するシーケンスのエントリのリストへのリンクがあります。そのリストでは、A133020正方形の約数の下にあります:100²。シーケンス全体を表示する場合は、コード内のTranscript show: o printString; cr.return ^ステートメントの前に挿入します。


1

Haskell、226バイト、安全!

賢いのか、いのか、どちらかというと…

o n=read.pure.(!!n)$"A001906"
m::Integral a=>[a->a->a]
m=[const,(+),(-),(*),div,(^)]++(flip<$>m)
l=o 1:o 3-o 1:zipWith(m!!(o 6+o 3-o 2))(tail l)l
f=(l!!).((m!!(o 4+o 5+o 6-2*o 1-o 2))$sum[1|n<-[1..6],odd(o n)]).((m!!o 6)$o 3)

そのため、これはA001906を計算しますが、多くのシーケンスを生成できるはずです。

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


ソリューション:A131078

これが難しすぎるのか、誰も試していないのではないかと思いますか?

o 1to o 6はシリーズ番号の数字で、m操作のリストです。lは、シリーズ番号から導出された最初の2つの値と、からの固定演算を使用して前の2つから計算された残りの値を持つ再帰的に定義された無限リストmです。A001906の場合、定義は次のように簡略化できます。

l=0:1:zipWith(flip(+))(tail l)l

(flip(+))は(通常)と同じ(+)であり、フィボナッチ数のよく知られた(しかし最短ではない)定義を取得します。この再帰スキームはA001906を直接計算できますが、これにはの操作よりも複雑な操作が必要mです。別の例:開始値1and 2および操作(*)を使用すると、シリーズA000301が得られます。シリーズ番号がに置き換えられると、コードによって計算されます?103206

最後に、関数fはlist lにインデックスを付けますが、入力の何らかの変換後のみです。A001906の場合、中間部分はに減少する(*)2ため、フィボナッチ数は偶数位置でのみ取得されます。右側の部分はになりますflip const 1。これは恒等関数であり、それ以上干渉しません。

溶液のためA131078の開始値がlある10、操作はflip constできている、lです1,0,1,0,...。の中間部分がにfなり(flip div 4)、結果はになり1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,...ます。これはいい答えのように見えましたが、A131078がで始まることがわかりましたn=1。そのためf、ここでflip(-)11を差し引くためにの正しい部分を追加しました。

私のアイデアはm、シリーズ番号の数字を使用してインデックスを付けることで少し難読化することでしたが、それを機能させるために難読化されました(複雑な用語)そして、f実際に機能させるためにさらに難読化されました(の右側)。それでも、推測と試行のいくつかはそれを破ったかもしれないと思います。


いくつかのシーケンスを試してみましたが、通常はゼロによる除算エラー、負の指数エラー、または永久に実行されるように見えました。正直に言うと、Haskellは私を驚かせます。頭を包み込むように思えないだけで、手続きに長くかかりすぎたようです。

あなたがちょうどしようとしている場合、解決策でさえ与えられ0たときに「負のインデックス」エラーを与える余分な問題があります。それだけで始まるので大丈夫1です!で開始1すると、「ゼロ除算」エラーの一部も削除されます。例が永遠に実行されることに驚いています。多分インデックス変換が...このような場合には非常に大きな値を作成する
クリスチャンSieversの


0

Python 3.6、114バイト、クラック

from random import*
g=lambda n:eval(''.join(Random("A005843").choices('n8-9+17n#8*+26%n1 32-3+4-545*-#6*7',k=34)))

A005843

g(n) n> = 0のシーケンスのn番目の値を返します。

random.choices(s,k)Python 3.6の新機能で、k選択されたアイテムsを置換して返します。


暗号化/ハッシュに非常に似ています。
-pppery

@ppperry-ルールに反する場合は削除します。
RootTwo


0

チップ、67バイト、Yimin Rongによるクラック

2D5B#{*Cm49!}E-7
(A000012d#,zkmsh
b-\6/e2)[1Zv^~^S
33a#kcf3g88taz1@

A000012。はい、少し生意気です。

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

I / Oにバイトを使用するため、私は素晴らしく、bashy / pythonyラッパーを作成しました。


代替シーケンスはA060843です。オンラインで入力してみてください1..4

Yimin Rongが右を振り返ると、このような短いChipプログラムでは非常に単純なものしか計算できません。元のシーケンスはすべて1であり、代替シーケンスはビジービーバー番号であり、そのうち4つだけが既知です。

これらの数値は1, 6, 21, 107、入力に対して単純にハードコーディングされてい1..4ます。

この挑戦のためにチップを使用して約興味深いのは、桁があることである0- 9数字が、論理的な要素ではありません。具体的には、0- 7はスタックの先頭をアドレス指定する8ビット89あり、読み取りと書き込みのトグルです。そのため、これが少し面白くなり、はるかに難読化されました。

潜在的な景品は、A- のみDが表示されます。これは、シーケンスにインデックスを付けるためのビットが4ビットしかないことを意味します。つまり、最大16の異なる値が存在する可能性がありました。実際、A- のみCが実際に代替シーケンスに使用され、最大8つの異なる値を与えます。

興味があるかもしれない人のために、ここに同じコードがあり、ノーオペレーションと未使用の要素が取り除かれています:

   B  *C 49!
 A000012d ,z  s
b-\6/e   1Zv-~^S
`3a`-cf3g`8taz1

明らかなことを除外するために、空のシーケンス(例:A290000)を忍び込ませようとはしていません。技術的には、コードはゼロの入力に対して何も返さないため、このシーケンスは一致します!

Ha、他のシーケンスに少なくとも1つの値があります:)また、OEISがインデックス付けされる方法なので、これを1インデックス付けになるように設計しました。
Phlarx

ネバー

それで、私はそれをもう少し調べましたが、何もしないのはpythonのせいです。ゼロの出力がなかったため、コードは実行されませんでした。これをTIOリンクで修正しました。(ビット長を1バイトのフロアにします)。
Phlarx

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