キー 0 ~ 9 を入力して「金庫を破る」アルゴリズムを見つけようとしています。コードの長さは 4 桁です。入力の部分文字列としてコードを識別する金庫が開きます。つまり、コードが「3456」の場合、次に入力すると金庫が開きます:「123456」。(これは、金庫が 4 つのキー入力ごとに再起動しないことを意味します)。
シーケンスに 1 桁を追加するたびに、新しい 4 桁の数字 (シーケンス \ 文字列の最後の 4 桁の新しい組み合わせ) を作成するアルゴリズムはありますか?
ありがとう、キロ。
編集 (何年も前に投稿しました): 問題は、入力 (1 桁) を金庫に設定するたびに、以前に生成されなかった新しい 4 桁のコードを生成する方法です。たとえば、金庫が 3 桁の長さのバイナリ コードを取得する場合、これが入力シーケンスになります。
0001011100
すべての入力に対して、以前に生成されなかった新しいコード (3 桁の長さ) を取得するためです。
000 -> 000
1 -> 001
0 -> 010
1 -> 101
1 -> 011
1 -> 111
0 -> 110
0 -> 100