これは警官と強盗の挑戦の一部です。強盗の部分はここに行きます。
警官の挑戦
文字列を出力する、選択した言語でプログラムまたは関数を作成する必要がありますHaystack
。しかし、結果の文字列があるように、あなたのプログラムから(残りの順序を変更せずに)文字のサブセットを除去することが可能でなければならないも印刷し、同じ言語で有効なプログラムNeedle
の代わりに。両方のプログラム/関数は、オプションで単一の末尾の改行を(互いに独立して)出力できますが、それ以外は何も出力しません。出力では大文字と小文字が区別され、指定された正確な大文字小文字に従う必要があります。
もちろん、あなたの目標は「針」を非常によく隠すことです。しかし、あなたの提出物は、あなたが意図したものだけでなく、どんな有効な解決策でもクラックされる可能性があることに注意してください。
あなたの答えに含めてください:
- 提出の言語(および関連する場合はバージョン)。
- Haystackプログラムのサイズ(バイト単位)。
- Haystackプログラム自体。
- STDOUTでない場合の出力メソッド。
- 可能であれば、選択した言語のオンラインインタプリタ/コンパイラへのリンク。
提出物はプログラムまたは関数のいずれかですが、スニペットではなく、REPL環境を想定してはなりません。入力を受け付けてはならず、STDOUT、関数の戻り値、または関数(出力)パラメーターを介して出力できます。
両方のプログラム/機能は、合理的なデスクトップマシンで5秒以内に完了する必要があり、確定的である必要があります。ハッシュ、暗号化、または乱数生成に組み込み関数を使用しないでください(乱数ジェネレーターを固定値にシードした場合でも)。
公平を期すために、選択した言語用の無料のインタープリターまたはコンパイラーが必要です。
ニードルプログラムが見つかった場合、答えは破られます。回答が7日間クラックされていない場合は、回答で目的のニードルプログラムを公開できます。これにより、提出が安全になります。解決策を公開しない限り、7日が経過していても、強盗によってまだ解読されている可能性があります。最短の安全な Haystackプログラム(バイト単位)が勝ちます。
例
さまざまな言語の簡単な例を次に示します。
Ruby
Haystack: puts 1>0?"Haystack":"Needle"
Delete: XXXXXXXXXXXXXXX
Needle: puts "Needle"
Python 2
Haystack: print "kcatsyaHeldeeN"[-7::-1]
Delete: XXXXXXXX XX
Needle: print "eldeeN"[::-1]
削除された文字のサブセットは連続している必要はありません。
クラックされていない提出
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 144600;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>