Des nombres faciles à retenir mais théoriquement difficiles à réaliser
Votre défi consiste à créer un programme / fonction dans n’importe quelle langue qui génère des nombres uniformément aléatoires qui correspondent à ces critères:
La longueur est de 5 chiffres
Il y a deux paires de chiffres répétés séparés
Un ensemble de chiffres répétés est au début ou à la fin et les chiffres sont côte à côte
Le nombre impair à l'extérieur est entouré par l'autre paire de chiffres
Les paires de deux chiffres et l'autre nombre doivent tous être uniques
Votre programme peut prendre en charge les nombres avec des zéros non significatifs ou non, à votre discrétion. Si les zéros au début sont pris en charge, ils doivent être inclus dans la sortie: 06088 et non 6088. Si les zéros au début ne sont pas pris en charge, les numéros tels que 06088 ne doivent pas être générés du tout.
Cas de test
Sorties acceptées:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
Sorties non acceptées:
55555 77787 85855 12345 99233 12131 abcde 5033
Des cas de test plus acceptables peuvent être trouvés à ce lien pastebin .
Celles-ci ont été faites avec ce programme python:
importer au hasard pour i dans la gamme (100): si random.randint (0,100)> = 50: #Put paire de toucher au début si vrai temp = [] # tableau de travail temp.append (random.randint (0,9)) #append chiffre aléatoire temp.append (temp [0]) #applique à nouveau le même chiffre x = random.randint (0,9) tandis que x == temp [0]: x = random.randint (0,9) temp.append (x) #append un autre chiffre unique y = random.randint (0,9) tandis que y == temp [0] ou y == temp [2]: y = random.randint (0,9) temp.append (y) #append un autre chiffre unique et le chiffre précédent unique temp.append (x) sinon: mettre la paire touchante à la fin temp = [] # tableau de travail temp.append (random.randint (0,9)) #append chiffre aléatoire #Quand pas unique, essayez à nouveau x = random.randint (0,9) tandis que x == temp [0]: x = random.randint (0,9) temp.append (x) #append un autre chiffre unique temp.append (temp [0]) #applique à nouveau le même chiffre 0 y = random.randint (0,9) tandis que y == temp [0] ou y == temp [1]: y = random.randint (0,9) temp.append (y) #append un autre chiffre unique deux fois temp.append (y) tempstr = "" pour i in temp: tempstr + = str (i) imprimer tempstr
C'est du code-golf , donc la réponse la plus courte en octets gagne!
random
ne signifie pas uniformément ainsi