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