コードの変更、シーケンスの変更:警官


27

これは挑戦です。強盗スレッドについては、こちらをご覧ください

この課題には、警官が選択した2つのOEISシーケンス(S 1S 2)と、それらのシーケンスをどれだけうまくゴルフと難読化できるかが含まれます。

警官の挑戦

警官としてのあなたの挑戦は、自由に利用できる言語と2つのOEISシーケンスを選択することです。次に、入力nを取得してS 1(n)を生成するコードAをその言語で記述します。そのコードがX文字のレーベンシュタイン距離Xせいぜい)で変更され、同じ言語でコードBに変換されると、S 2(n)を生成する必要があります。実際にこのコードBを記述する必要がありますが、チャレンジが安全になるまで公開しないでください(以下を参照)。0.5 * (length A)

警官の提出は、言語名、完全なコード含まれている必要がありますA、のバイト数AXの彼らの秘密を取得する方法について多くの変化の値がBのコード、および選ばれたS 1S 2のシーケンス番号を。各シーケンスのインデックスを0にするか1にするかを選択できますが、提出時に指定してください。

特定の提出物を解読するには、強盗は、S 2(n)を生成し、Y文字がA(with )から離れるYと同じ言語(およびバージョン)のプログラムCを作成する必要があります。強盗は必ずしも警官が(密かに)生成したものとまったく同じBコードを見つける必要はありません。Y <= X

勝利と得点

警察官の回答が7日(168時間)以内に解読されていない場合、独自のBソリューションを公開できます。この時点で、回答は安全と見なされます。解決策を公開しない限り、7日が経過していても、強盗によってまだ解読されている可能性があります。回答がクラックされた場合、対応する強盗の回答へのリンクとともに、回答のヘッダーにこれを記載してください。

警官は、最短のAでクラックのない提出を行うことで勝ちます。同点の場合、最小のXがタイブレーカーとして使用されます。まだ同点であれば、以前の提出が勝ちます。

さらなるルール

  • ハッシュ、暗号化、または乱数生成に組み込み関数を使用しないでください(乱数ジェネレーターを固定値にシードした場合でも)。
  • プログラムまたは関数のいずれかが許可されますが、コードはスニペットであってはならず、REPL環境を想定してはなりません。
  • 入力を受け取り、便利な形式で出力できます。入出力メソッドは、両方のシーケンスで同じでなければなりません。
  • この挑戦のためのレーベンシュタイン距離のための決定的な計算がある。この1プラネットCalcの上。
  • CnRチャレンジであることに加えて、これはため、すべての通常のゴルフルールが適用されます。

また、この質問で何かを変更した場合は、強盗を更新するようにしてください。
mbomb007

警官が、シーケンスを生成する実際のコードに対して本当に大きな関数/変数を指定するとどうなりますか?そのLEV距離がその少ないもので、この場合、任意のシーケンスを作成することが可能になるだろう(0.5*len(A))
hashcode55

@ hashcode55 2つのこと-1)警官のスレッドに勝つための良い候補にはなりそうにない。2)そのように巨大な場合、強盗がそれをクラックするための良い余裕も与えます。
AdmBorkBork

1
これはコードゴルフなので、すべての通常のゴルフ規則が適用されます」これは、コードAを可能な限りゴルフしなければならないことを意味しますか、それともコードBにより類似するように冗長すぎる/厄介な方法で意図的に記述できますか?
smls

回答:


10

Brain-Flak、28バイト、距離4、A002817A090809 クラック

この答えは1インデックスを使用しています

(({({}[()])}{}){({}[()])}{})

オンラインで試す

興味のある方には、このプログラムからレーベンシュタイン距離4の距離にある27475の有効なBrain-Flakプログラムと、距離4以下の27707があります。したがって、ブルートフォースソリューションは、消費者グレードのコンピューターで実行可能です。


あなたが持っている場合、おそらく読むために短くかつ迅速になると思いX = 4代わりにLevenshtein distance of 4
mbomb007

1
@ mbomb007個人的に混乱を避けるために、チャレンジが多くの文字変数を使用して代わる代わる代わる代わって混乱します。混乱を起こさずに、短くしました。
小麦ウィザード

肩をすくめる。誰もが質問を読んだ場合、彼らはそれを取得する必要があります。X本当に知る必要がある唯一の変数です。
mbomb007

@ mbomb007ただし、質問ではバイト数も求められます。
DLosc


6

7、33文字、13バイト、X = 10、A000124A000142、セーフ

171720514057071616777023671335133

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

レーベンシュタイン距離は文字で測定されるため、上記の文字を使用してプログラムを記述しました(言語自体も含めて、オンラインで試してみてください。ASCIIでエンコードされたプログラムを実行できます)。ただし、プログラムは7のサブバイトエンコーディングを使用してディスクに保存されます。つまり、プログラム自体は実際には次のhexdump(つまり13バイトの長さ)です。

00000000: 3cf4 2982 f1ce 3bfe 13dc b74b 7f         <.)...;....K.

(レーベンシュタイン距離は文字で測定されるため、ここで必ずしも10 バイトを追加/削除/変更するわけではないため、おそらく元のASCIIで作業するのが最善です。)

書かれているプログラムは、A000124(三角数字+ 1)を実装しています。クラックにはA000142(階乗)を実装する必要があります。両方のプログラムは、stdinから入力を(10進整数として)受け取り、その出力をstdoutに書き込み、1の入力をシーケンスの最初の要素(2番目の要素として2などの入力)を意味するものとして扱います。

X値が非常に高いため、今回は人がプログラムを強引に強制するのを防ぐことができます(7の警官と強盗のエントリでは常にリスクです)。

ソリューション

177172051772664057074056167770236713351353

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

オリジナルとの違い:

17 172051 405707 1 61677702367133513 3
17 7 172051 77266 405707 405 61677702367133513 5 3

これらがどのように機能するかについての説明は用意されていないので、ほとんど最初から理解しなければならないので、説明を得るのに少し時間がかかります。うまくいけば最終的に説明があるでしょう。



4

Perl 6、10バイト、X = 1、A000012A001477

割れた!

*[0]o 1***
  • S 1 = A000012 = 1,1,1,1,1,...=すべて1のシーケンス。(0インデックス付き)

  • S 2 = A001477 = 0,1,2,3,4,...=非負の整数。(0インデックス付き)

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

Perl 6リリース2017.01およびTIOで実行されているPerl6バージョンで動作することを確認しました。

Aをさらにゴルフする1***こともできます。それがそのまま許可されることを願っています。)


3

Perl 6、13バイト、X = 1、A161680A000217

安全!

{[+] [,] ^$_}
  • S 1 = A161680 = 0 0 1 3 6 10 15 21...=ゼロの後に三角形の数字が続きます。
  • S 2 = A000217 = 0 1 3 6 10 15 21 28 ...=三角数字。
  • ゼロインデックス。

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

(TIOで実行されているPerl 6バージョンで動作することを確認しました。)

溶液

{[+] [\,] ^$_}

オリジナルの仕組み:

{           }  # A lambda.
          $_   # Lambda argument.                     e.g. 4
         ^     # Range from 0 to n-1.                 e.g. 0, 1, 2, 3
     [,]       # Reduce with comma operator.          e.g. 0, 1, 2, 3
 [+]           # Reduce with addition operator.       e.g. 6

ソリューションの仕組み:

{            } # A lambda.
           $_  # Lambda argument.                     e.g. 4
          ^    # Range from 0 to n-1.                 e.g. 0, 1, 2, 3
     [\,]      # Triangle reduce with comma operator. e.g. (0), (0,1), (0,1,2), (0,1,2,3)
 [+]           # Reduce with addition operator.       e.g. 10

加算のような数値演算子はリストを要素の数として扱うという事実を利用するため、この例では合計は1 + 2 + 3 + 4 = 10です。

ええ、オリジナルの「カンマ演算子で縮小」のノーオペレーションは、コードゴルフのルールを少し回避していますが、私はそれを可能な限りゴルフされた(空白など)愚かなアルゴリズムとして見ることを好みますそれは何ですか... :)


私に時間や傾向があれば(そしてperlの知識があるなら)、これは野forcedな強引な態度をとることを懇願します。
ローハンジュンジュンワラ

これは十分に長く生き残った安全としてマークされるように
fənɛtɪk


2

Javascript、41バイト、距離3、A061313A004526クラック

f=x=>{return x>1?x%2?f(x+1)+1:f(x/2)+1:0}

オンラインで試す

1ベースのインデックスを使用し、ソリューションは0ベースのインデックスを使用します。

もう一度、別のソリューション...

f=x=>{return x>1?x<2?f(x-1)+1:f(x-2)+1:0}


3
ちなみに、tio.runパーマリンクは使用しないでください。彼らはすぐに動作を停止します。
デニス

^ 代わりにtio.run/nexusを使用します。
mbomb007


1

WolframAlpha、18バイト、X = 1

math_junkieにクラックされました!

(sum1to#of n^1)*2&

時々、WolframAlphaは実際にこのような純粋な関数を関数形式で表示できます(混乱する場合もあります)。ただし、特定の入力((sum1to#of n^1)*2&@5yields など)で元気に呼び出すことができます30

S1 = A002378(プロニック番号)

S2 = A000537(最初のnキューブの合計)

両方のシーケンスは0から始まります。




1

Javascriptを、15704バイト、2、の距離A059841及びA000004は - 割れました

このソリューションは非常に長いため、このgithubの要点で完全なコード見つけることができます

元の回答(これ)は1インデックスです。(これは長すぎることを知っています、それはただの楽しみのためです。)


割れた。また、絶対に無駄にコードを追加+ []! -ルールの精神には本当にないです(+ []!)
fənɛtɪk

ご存知のように、この答えはこの課題のOPにいくつかの問題を引き起こしています。どうやら、大ざっぱなJavaScriptのように見えるため、ページ全体がブロックされているようです。コードを外部リンクに入れることはできますか?(要点、ペーストダンプなど)
DJMcMayhem

実際、私はそれを要点に入れました。コードをどこか別の場所に配置したい場合は、限界を超えた場合は、自由に編集してください。
DJMcMayhem

!+ []-(!+ [])は、変換を元に戻すことができないようにするためのものだと思います。しかし、他のゴミのいくつかはそれを長くします。同等のコードはわずか15640バイトです。
fənɛtɪk


0

Javascript、30バイト、距離4、A000290A000079- クラック!

f=x=>{return x?2*x-1+f(x-1):0}

0ベースのインデックス付け

@Kritixi Lithosのソリューションは実際には私のソリューションとは異なりました

f=x=>{return x?f(x-1)+f(x-1):1}

オンラインで試す


1
これがあるx**2とない2**x
KritixiのLithos

A000079ではなくA000290 だと思います。
ベットセグ

@KritixiLithosそれは両方になるはずです。反対側を変更したときに、上部の間違ったシーケンスリンクを変更しました。
fənɛtɪk


0

Javascriptを(ES6)、距離が1であり、A000079及びA000004 - 割れました

as=function(){ return 2*2**((11)*-1*~arguments[0]/11-(4-(as+[]).length%89))-(as+[]).length%7}

元の答え(これ)は0ベースです。クラックされたので、元のB関数を次に示します。

as=function(){ return 2*2**((1^1)*-1*~arguments[0]/11-(4-(as+[]).length%89))-(as+[]).length%7}

1
クラックcodegolf.stackexchange.com/a/109976/64505を取得して、2つの異なる環境間で一貫性のない動作をさせることができました。
fənɛtɪk

0

Perl 6、7バイト、X = 2、A059841A001477

割れた!

+(*%%2)
  • S 1 = A059841 = 1 0 1 0 1 0 1 0...= "*期間2:繰り返し(1,0)"。(0インデックス付き)
  • S 2 = A001477 = 0 1 2 3 4 5 6 7...=「非負の整数」。(0インデックス付き)

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

(TIOで実行されているPerl 6バージョンで動作することを確認しました。)


1
私はこれを正しくやっていますか?< codegolf.stackexchange.com/a/110001/60793 >
ジョーイMarianer

0

Java 7、レーベンシュタイン距離4、A094683A000290クラック

int x{double r=1;for(int i=0;i<42;i++)r=r/2+n/r/2;int k=(int)((int)n*(float)n/Math.pow(n,(Math.sin(n)*Math.sin(n)+Math.cos(n)*Math.cos(n))/2));return n%4%2==(int)Math.log10(Math.E)/Math.log((double)'H'-'@')?(int)r:k;}

0インデックス。
ここで試してみてください!


@LliwTelracsは、最初の15個の非負の整数についてこれを行いました。更新された回答を参照してください。
ピーチ

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