Числа, які легко запам'ятовувати, але теоретично не легко зробити
Ваше завдання полягає в тому, щоб зробити програму / функцію будь-якою мовою, яка генерує рівномірно випадкові числа, що відповідають цим критеріям:
Довжина - 5 цифр
Є дві окремі повторювані пари
Один набір повторних цифр знаходиться на початку або в кінці, і цифри знаходяться поруч
Непарне число назовні оточене іншою парою цифр
Двозначні пари та інше число повинні бути унікальними
Ваша програма може підтримувати номери з провідними нулями чи ні, на ваш розсуд. Якщо підтримуються провідні нулі, вони повинні бути включені у висновок: 06088, а не 6088. Якщо провідні нулі не підтримуються, то числа, як 06088, взагалі не повинні генеруватися.
Випробування
Прийняті результати:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
Не прийняті результати:
55555 77787 85855 12345 99233 12131 abcde 5033
Більш прийнятні тестові випадки можна знайти за цим посиланням .
Вони були зроблені за допомогою цієї програми python:
імпорт випадковим чином
для i в діапазоні (100):
якщо random.randint (0,100)> = 50: # Введіть пару на початку, якщо це правда
temp = [] # робочий масив
temp.append (random.randint (0,9)) # додавання випадкової цифри
temp.append (temp [0]) #додайте знову ту саму цифру
x = random.randint (0,9)
у той час як x == temp [0]:
x = random.randint (0,9)
temp.append (x) #додайте ще одну унікальну цифру
y = random.randint (0,9)
тоді як y == temp [0] або y == temp [2]:
y = random.randint (0,9)
temp.append (y) #додайте ще одну унікальну цифру та попередню унікальну цифру
temp.append (x)
else: # Вставте торкаючись пари наприкінці
temp = [] # робочий масив
temp.append (random.randint (0,9)) # додавання випадкової цифри
#Що не унікальне, спробуйте ще раз
x = random.randint (0,9)
у той час як x == temp [0]:
x = random.randint (0,9)
temp.append (x) #додайте ще одну унікальну цифру
temp.append (temp [0]) #додайте знову ту ж саму цифру
y = random.randint (0,9)
тоді як y == temp [0] або y == temp [1]:
y = random.randint (0,9)
temp.append (y) #додайте ще одну унікальну цифру двічі
temp.append (y)
tempstr = ""
для я в темп:
tempstr + = str (i)
print tempstr
Це код-гольф , тому найкоротша відповідь у байтах виграє!
randomце не означає рівномірно