助けて!Stack Exchangeにログインしたばかりですが、パスワードを忘れてしまいました!ログオフする前に解決する方法が必要です。
幸いなことに、私は優秀なハッカーです。パスワードのハッシュを見つけることができただけでなく、Stack Exchangeのハッシュアルゴリズムも見つけました!各桁のASCII値にその桁の位置を掛けて、それらすべての値を合計します。例えば:
"135" -> 1*49 + 2*51 + 3*53 = 310
私のパスワードは3桁の長さで、各文字は0〜5の数字(正規表現に一致するようになります:)であることを覚えていますが^[0-5]{3}$
、それでも推測するには余りにも多くの可能性があります。ハッシュを潜在的なパスワードに変換できるプログラムが必要ですが、熟練したハッカーであるにもかかわらず、命を救うためにコーディングすることはできません!私はこれらのテストを手で書くことができました:
input -> output
288 -> 000 // lowest possible hash
290 -> 200, 010
298 -> 022, 050, 103, 131, 212, 240, 321, 402, 430, 511
318 -> 555 // highest possible hash
ハッシュの1つを受け取り、使用できるすべての可能なパスワードを印刷するプログラムを作成できますか?
入力は常に少なくとも1つの有効なパスワードを生成できます。文字列を明確に識別できる限り、任意の出力形式が許可されます。また、先行ゼロについても心配していません。したがって、潜在的なパスワードがの場合、またはを001
受け入れます。01
1
Stack Exchangeからロックアウトされるのを助けてください!
得点
これはcode-golfなので、各言語で最短の答えが勝ちです!
"135" -> 1*49 + 2*51 + 3*53 = 310
54
、前のゼロを確認できます。
1
のは、ASCII値49
の代わりに48
?