Números fáceis de lembrar, mas teoricamente não são fáceis
Seu desafio é criar um programa / função em qualquer idioma que gere números aleatoriamente uniformes que atendam a esses critérios:
O comprimento é de 5 dígitos
Existem dois pares de dígitos repetidos separados
Um conjunto de dígitos repetidos está no início ou no final e os dígitos estão próximos um do outro
O número ímpar é cercado pelo outro par de dígitos
Os pares de dois dígitos e o outro número devem ser únicos
Seu programa pode suportar números com zeros à esquerda ou não, a seu critério. Se os zeros iniciais forem suportados, eles deverão ser incluídos na saída: 06088, não 6088. Se os zeros iniciais não forem suportados, números como 06088 não deverão ser gerados.
Casos de teste
Saídas aceitas:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
Saídas não aceitas:
55555 77787 85855 12345 99233 12131 abcde 5033
Casos de teste mais aceitáveis podem ser encontrados neste link pastebin .
Estes foram feitos com este programa python:
importação aleatória para i na faixa (100): if random.randint (0,100)> = 50: #Put pair tocando no início se true temp = [] # matriz de trabalho temp.append (random.randint (0,9)) #append digit random temp.append (temp [0]) # acrescente o mesmo dígito novamente x = random.randint (0,9) enquanto x == temp [0]: x = random.randint (0,9) temp.append (x) #append outro dígito exclusivo y = random.randint (0,9) enquanto y == temp [0] ou y == temp [2]: y = random.randint (0,9) temp.append (y) # anexa outro dígito exclusivo e o dígito exclusivo anterior temp.append (x) else: #Coloque o par no final temp = [] # matriz de trabalho temp.append (random.randint (0,9)) #append digit random # Embora não seja exclusivo, tente novamente x = random.randint (0,9) enquanto x == temp [0]: x = random.randint (0,9) temp.append (x) #append outro dígito exclusivo temp.append (temp [0]) # adicione novamente o mesmo 0º dígito y = random.randint (0,9) enquanto y == temp [0] ou y == temp [1]: y = random.randint (0,9) temp.append (y) # anexa outro dígito exclusivo duas vezes temp.append (y) tempstr = "" para i em temp: tempstr + = str (i) imprimir tempstr
Isso é código-golfe , então a resposta mais curta em bytes vence!
random
não significa de maneira uniforme por isso