前書き
あなたは、新しいハイテクスタートアップDejavuからいくつかの秘密の計画を盗むことを任された犯罪者です。奥の壁をこっそり覗き込みますが、ドアを開くにはピンが必要です。ロックのメーカーを認識し、0〜4のすべての数字を使用して5桁のピンを取ることを知っています。各桁が入力されると、ロックは入力された最後の5桁をチェックし、コードが正しい場合は開きます。あなたは、このロックをすり抜けなければなりません。
一言で言えば超順列
順列は、特定の数字セットのすべての可能な組み合わせです。たとえば、数字0、1、2のすべての順列は次のとおりです。
012、021、102、120、201、および210。
これらすべての順列を連結すると、スーパー順列が得られます。
012021102120201210
このスーパー順列には0、1、2の順列がすべて含まれていますが、これよりも短い順列を作成することもできます。ここでは少しスキップしますが、これらの数字の最短のスーパーパーミュテーションは次のとおりです。
012010210
私たちの意図と目的のために、これは本質的にそれらの数字のすべての可能な順列、すなわちスーパー順列を含む数字の最短文字列です。
仕事
心配する必要のある数字がさらに2桁あるため、上記のスーパー順列の例よりもタスクが少し難しくなります。-スーパー順列について読んでいない場合、または上記の私の例が少し不明瞭だった場合、このテーマに関するパトリック・ホナーのこの素晴らしい記事を読むことを強くお勧めします(この挑戦は彼の記事に非常に強く触発されたので、彼に敬意を表します):https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/。あなたの目標は、数字0〜4のスーパー順列を生成する可能な限り短いプログラムを書くことです。
得点
プログラムはいかなる種類の入力も受け付けず、0から4までの数字のスーパー順列を生成します。この結果のスーパー順列は、選択した言語が提供する範囲でコンソールに出力するか、ユーザーに表示する必要があります。これは可能な限り短い順列である必要はなく、有効なスーパー順列でなければなりません。このため、目標は最短の順列を持つ最短のプログラムを書くことです。そのため、次のようにスコアを計算する必要があります。
ファイルサイズ(バイト)*生成されたスーパーパーミュテーションの長さ(桁)
たとえば、40バイトのプログラムがあり、スーパー順列の長さが153桁の場合、スコアは次のようになります。
40 * 153 = 6120
いつものように、目標はこのスコアをできるだけ低くすることです。
テンプレート
回答を投稿する方法は次のとおりです。
言語| スコア
作業環境のコードへのリンク(可能な場合)
code snippet
コードの説明など
ファイナリティ
これは、このサイトに関する最初の質問の1つです。それで、私が何かを逃しているのか、私の挑戦のセクションが不明確なのか教えてください。ありがとう、そして楽しいゴルフを!