Inspiriert von dieser schlecht erhaltenen migrierten Post .
Der Sicherheitschef Ihres Unternehmens ist besorgt über Ihr PIN-Generierungssystem, nachdem es ihm gegeben hat 12345
. Er hat den Spaceballs-Witz, den Sie auf seine Kosten gemacht haben, auch nicht wirklich geschätzt. Sie wurden also beauftragt, den PIN-Generator neu zu schreiben. Da es auf spezielle Hardware passen muss, muss es so klein wie möglich sein.
Deine Aufgabe
- Sie nehmen zwei Eingaben vor - Anzahl der PINs und PIN-Größe in Ziffern.
- Generieren Sie die angegebene Anzahl von PINs der angegebenen Größe nach dem Zufallsprinzip und drucken Sie sie aus.
- Alle gültigen PINs der Größe müssen ausgedruckt werden können, auch wenn sie nicht einheitlich wahrscheinlich sind.
Es gibt jedoch einige Einschränkungen für die PINs - hier sind die ungültigen:
- Wenn alle Paare die gleiche Ziffer haben:
114422
(Hinweis: Dies beinhaltet natürlich alle PINs mit der gleichen Ziffer). - Zunehmend linear PINs (mod 10):
246802
. - Alle Gruppen von 3 sind physische Linien auf der Tastatur
1 2 3;4 5 6;7 8 9;bksp 0 enter;
:147369
. - Die PIN kann vollständig in Gruppen von Regel 1 und Regel 3 aufgeteilt werden.
- Wenn alle Paare die gleiche Ziffer haben:
- Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes !
55123
)?123
,55432
wäre aber in Ordnung.Antworten:
Pyth, 120 Bytes
Dachte mir, ich sollte dann eine echte Implementierung hinzufügen. Erzeugt Zufallszahlen, bis eine gefunden wird, die alle Anforderungen erfüllt. Kann wohl noch viel verbessert werden!
Online Version
quelle
Perl 5, 244
Beginnt mit der Erzeugung von Zufallszahlen für die angegebene Größe.
Und druckt nur diejenigen, die die Einschränkungen nicht erfüllen.
Es hat Spaß gemacht, eine Lösung für die Tastaturleitungen zu finden (ohne Hardcoding-Kombinationen).
Prüfung
quelle