Zahlen, die leicht zu merken sind, aber theoretisch nicht leicht zu machen sind
Ihre Herausforderung besteht darin, ein Programm / eine Funktion in einer beliebigen Sprache zu erstellen, die einheitliche Zufallszahlen generiert, die diesen Kriterien entsprechen:
Die Länge beträgt 5 Ziffern
Es gibt zwei separate, sich wiederholende Ziffernpaare
Ein Satz wiederholter Ziffern befindet sich am Anfang oder Ende und die Ziffern stehen nebeneinander
Die ungerade Zahl ist von dem anderen Ziffernpaar umgeben
Die beiden Ziffernpaare und die andere Nummer sollten alle eindeutig sein
Ihr Programm kann nach eigenem Ermessen Zahlen mit führenden Nullen unterstützen oder nicht. Wenn führende Nullen unterstützt werden, müssen sie in die Ausgabe einbezogen werden: 06088, nicht 6088. Wenn führende Nullen nicht unterstützt werden, sollten überhaupt keine Zahlen wie 06088 generiert werden.
Testfälle
Akzeptierte Ausgaben:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
Nicht akzeptierte Ausgaben:
55555 77787 85855 12345 99233 12131 abcde 5033
Weitere akzeptable Testfälle finden Sie unter diesem Pastebin-Link .
Diese wurden mit diesem Python-Programm erstellt:
zufällig importieren für i in range (100): if random.randint (0,100)> = 50: #Put pair touching at begin, falls true temp = [] #working array temp.append (random.randint (0,9)) # zufällige Ziffer anhängen temp.append (temp [0]) #nochmal die gleiche Ziffer anhängen x = random.randint (0,9) während x == temp [0]: x = random.randint (0,9) temp.append (x) #hänge eine weitere eindeutige Ziffer an y = random.randint (0,9) während y == temp [0] oder y == temp [2]: y = random.randint (0,9) temp.append (y) #hängt eine weitere eindeutige Ziffer und die vorherige eindeutige Ziffer an temp.append (x) sonst: #Berührendes Paar am Ende eingeben temp = [] #working array temp.append (random.randint (0,9)) # zufällige Ziffer anhängen #Versuchen Sie es erneut, obwohl dies nicht eindeutig ist x = random.randint (0,9) während x == temp [0]: x = random.randint (0,9) temp.append (x) #hänge eine weitere eindeutige Ziffer an temp.append (temp [0]) #nochmal die gleiche 0-te Ziffer anhängen y = random.randint (0,9) während y == temp [0] oder y == temp [1]: y = random.randint (0,9) temp.append (y) #hängt zweimal eine andere eindeutige Ziffer an temp.append (y) tempstr = "" denn ich in temp: tempstr + = str (i) Drucktempstr
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes!
random
bedeutet das nicht einheitlich