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!
randomnão significa de maneira uniforme por isso