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!
random
nie oznacza to jednakowo