Liczby, które są łatwe do zapamiętania, ale teoretycznie niełatwe do wykonania
Twoim wyzwaniem jest stworzenie programu / funkcji w dowolnym języku, który generuje jednolicie losowe liczby spełniające te kryteria:
Długość to 5 cyfr
Istnieją dwie oddzielne pary powtarzających się cyfr
Jeden zestaw powtarzających się cyfr znajduje się na początku lub na końcu, a cyfry są obok siebie
Liczba nieparzysta jest otoczona drugą parą cyfr
Dwie pary cyfr i druga liczba powinny być niepowtarzalne
Twój program może obsługiwać liczby z wiodącymi zerami lub nie, według własnego uznania. Jeśli obsługiwane są zera wiodące, muszą być uwzględnione w danych wyjściowych: 06088, a nie 6088. Jeśli zera wiodące nie są obsługiwane, wówczas liczby takie jak 06088 nie powinny być generowane w ogóle.
Przypadki testowe
Zaakceptowane wyniki:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
Nieakceptowane wyniki:
55555 77787 85855 12345 99233 12131 abcde 5033
Więcej akceptowalnych przypadków testowych można znaleźć pod tym linkiem .
Zostały one wykonane za pomocą tego programu python:
importuj losowo
dla i w zakresie (100):
if random.randint (0,100)> = 50: # Ustaw parę dotykającą na początku, jeśli jest prawdą
temp = [] #working array
temp. append (random.randint (0,9)) #append losowa cyfra
temp.append (temp [0]) # ponownie dodaj tę samą cyfrę
x = random.randint (0,9)
podczas gdy x == temp [0]:
x = random.randint (0,9)
temp.append (x) #append inną unikalną cyfrę
y = losowy. losowy (0,9)
podczas gdy y == temp [0] lub y == temp [2]:
y = losowy. losowy (0,9)
temp.append (y) #append inną unikalną cyfrę i poprzednią unikalną cyfrę
temp. append (x)
else: #Umieść parę dotykającą na końcu
temp = [] #working array
temp. append (random.randint (0,9)) #append losowa cyfra
# Chociaż nie jest wyjątkowy, spróbuj ponownie
x = random.randint (0,9)
podczas gdy x == temp [0]:
x = random.randint (0,9)
temp.append (x) #append inną unikalną cyfrę
temp.append (temp [0]) # dodaj ponownie tę samą cyfrę 0
y = losowy. losowy (0,9)
podczas gdy y == temp [0] lub y == temp [1]:
y = losowy. losowy (0,9)
temp. append (y) #app dwukrotnie kolejną unikalną cyfrę
temp. dopisywanie (y)
tempstr = ""
dla i w temp:
tempstr + = str (i)
temp. wydruku
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach!
randomnie oznacza to jednakowo