あなたの会社のセキュリティ責任者は、彼に与えたPIN生成システムを心配しています12345
。彼はまた、あなたが彼の費用で行ったスペースボールのジョークを本当に感謝していなかったので、あなたはPINジェネレータを書き直すように委任されました。いくつかの特別なハードウェアに収まる必要があるため、できるだけ小さくする必要があります。
あなたのタスク
- PINの数とPINの桁数の2つの入力を受け取ります。
- 指定されたサイズの指定された数のPINをランダムに生成し、印刷します。
- サイズが均一である可能性がなくても、すべての有効なPINを印刷できる必要があります。
ただし、PINにはいくつかの制限があります。無効なものは次のとおりです。
- すべてのペアが同じ数字である場合:(
114422
注:これには明らかにすべて同じ数字のPINが含まれます)。 - ますます線形のPIN(MOD 10):
246802
。 - 3のすべてのグループは以下のキーパッドの物理的な線です
1 2 3;4 5 6;7 8 9;bksp 0 enter;
:147369
。 - PINはルール1とルール3からグループに完全に分割できます。
- すべてのペアが同じ数字である場合:(
- これはcode-golfなので、バイト単位の最短コードが勝ちです!
@minxomatの良い点は、両方のグループを含めるようにルールを修正することです。その一つが、後半はありますので、
—
マルティセン
123
しかし、55432
罰金になります。
ルール3には対角線が含まれていますか?
—
マーティンエンダー
皮肉なことに、いわゆる「セキュア」ピンのこの定義は、攻撃者が総当たりする必要があるピンの数を減らすだけです。
—
DankMemes
ルール2の最短の長さは?
—
デニス
55123
)も含まれていますか?