24
エニグマを破る?
前書き エニグマは、第二次世界大戦で使用された最初の電気機械式ローター暗号マシンの1つでした。つまり、1つの文字がコーディングされた後、次の文字のキーが変更されます。これは、巨大なキースペースのために、ドイツ人によって破られないと考えられていました。総当たり攻撃でさえほとんど不可能でした。しかし、エニグマには設計エラーがありました。手紙を暗号化しても、それ自体にはなりません。それは、手紙Aが手紙を除くすべての手紙に暗号化できることを意味しAます。 コード化されたメッセージの例を見てみましょう。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ 典型的なドイツ語の単語はWETTERBERICHT、英語の天気予報です。上記の原則を使用すると、単語がどの場所に存在する可能性があるかを判断できます。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ I暗号化できないため、これは不可能です。そのため、1か所に移動します。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ これも不可能なので、別の場所に再び移動します。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ これも不可能です。実際、最初に発生する可能性があるのWETTERBERICHTは次のとおりです。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT 0123456789012345678901234567890123456789012345678901234567890123 ^ 13 そのため、最初に発生する可能性のある0から始まる位置、つまり13を返します。 タスク コード化されたメッセージと単語が与えられた場合、最初に発生する可能性のあるインデックスを見つけます。 基本的な大文字のアルファベット文字のみが使用されると仮定します(ABCDEFGHIJKLMNOPQRSTUVWXYZ)。 何の出現が見つからない場合は、出力任意のできる負の整数、文字、または何も(例えば-1、X)。 入力は、引数として、個別の改行、リスト、その他で受け入れられます。 これはcode-golfであるため、バイト数が最小の提出が勝ちです! テストケース Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT Output: 13 Input: ABCDEFGHIJKL, HELLO Output: 0 Input: EEEEEEEEEEEE, HELLO Output: -1 Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND Output: 11 …