Numeri facili da ricordare ma teoricamente non facilmente realizzabili
La tua sfida è creare un programma / funzione in qualsiasi lingua che generi numeri casualmente uniformi che soddisfino questi criteri:
La lunghezza è di 5 cifre
Esistono due coppie di cifre ripetute separate
Una serie di cifre ripetute è all'inizio o alla fine e le cifre sono una accanto all'altra
Il numero dispari è circondato dall'altra coppia di cifre
Le coppie di due cifre e l'altro numero dovrebbero essere univoci
Il tuo programma può supportare numeri con zero iniziali o meno, a tua discrezione. Se gli zero iniziali sono supportati, devono essere inclusi nell'output: 06088, non 6088. Se gli zero iniziali non sono supportati, i numeri come 06088 non devono essere generati affatto.
Casi test
Uscite accettate:
55373 55494 67611 61633 09033 99.757 95.944 22808 65622 22161
Uscite non accettate:
55555 77787 85855 12345 99.233 12131 ABCDE 5033
Casi di test più accettabili sono disponibili a questo link pastebin .
Questi sono stati realizzati con questo programma Python:
importazione casuale per i nella gamma (100): if random.randint (0,100)> = 50: #Metti la coppia toccando all'inizio se vera temp = [] #working array temp.append (random.randint (0,9)) #appEND cifra casuale temp.append (temp [0]) # aggiunge nuovamente la stessa cifra x = random.randint (0,9) mentre x == temp [0]: x = random.randint (0,9) temp.append (x) # aggiunge un'altra cifra univoca y = random.randint (0,9) mentre y == temp [0] o y == temp [2]: y = random.randint (0,9) temp.append (y) # aggiunge un'altra cifra univoca e la precedente cifra univoca temp.append (x) altro: #Metti la coppia toccante alla fine temp = [] #working array temp.append (random.randint (0,9)) #appEND cifra casuale # Anche se non unico, riprova x = random.randint (0,9) mentre x == temp [0]: x = random.randint (0,9) temp.append (x) # aggiunge un'altra cifra univoca temp.append (temp [0]) # aggiunge nuovamente la stessa 0a cifra y = random.randint (0,9) mentre y == temp [0] o y == temp [1]: y = random.randint (0,9) temp.append (y) #appende un'altra cifra univoca due volte temp.append (y) tempstr = "" per i in temp: tempstr + = str (i) stampa tempstr
Questo è code-golf , quindi vince la risposta più breve in byte!
random
non significa uniformemente così