Hatırlanması kolay, fakat teorik olarak kolay sayılar yapılmadı.
Buradaki zorluk, bu kriterlere uyan düzenli olarak rasgele sayılar üreten herhangi bir dilde bir program / işlev yapmaktır:
Uzunluk olan 5 basamak
İki ayrı tekrarlanan basamak çifti vardır
Tekrarlanan rakamlardan biri başlangıçta veya sondadır ve rakamlar yan yanadır
Tek sayı, diğer rakamlarla çevrilidir.
İki basamaklı çift ve diğer sayının tümü benzersiz olmalıdır
Programınız, sizin takdirinize bağlı olarak, baştaki sıfırlarla birlikte sayıları destekleyebilir. Baştaki sıfırlar destekleniyorsa, çıkışa dahil edilmelidir: 06088, 6088 değil. Baştaki sıfırlar desteklenmiyorsa, 06088 gibi sayılar hiç üretilmemelidir.
Test Kılıfları
Kabul edilen çıktılar:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
Kabul edilmeyen çıktılar:
55555 77787 85855 12345 99233 12131 abcde 5033
Bu pastebin bağlantısında daha kabul edilebilir test vakaları bulunabilir .
Bunlar bu python programında yapıldı:
rastgele içe aktar i aralığında (100): eğer random.randint (0,100)> = 50: # Başlangıçta çiftin dokunması temp = [] #working dizisi temp.append (random.randint (0,9)) # rasgele basamak temp.append (temp [0]) # tekrar aynı rakamı ekle x = random.randint (0,9) x == temp iken [0]: x = random.randint (0,9) temp.append (x) # başka bir benzersiz rakam gir y = random.randint (0,9) y == temp [0] veya y == temp [2] iken: y = random.randint (0,9) temp.append (y) # başka bir benzersiz rakam ve bir önceki rakam temp.append (x) else: # Sonunda dokunan çift temp = [] #working dizisi temp.append (random.randint (0,9)) # rasgele basamak # Eşsiz olmasa da tekrar deneyin x = random.randint (0,9) x == temp iken [0]: x = random.randint (0,9) temp.append (x) # başka bir benzersiz rakam gir temp.append (temp [0]) # tekrar aynı 0ncı basamağa y = random.randint (0,9) y == temp [0] veya y == temp [1] iken: y = random.randint (0,9) temp.append (y) # iki kere başka bir benzersiz rakam girin temp.append (y) tempstr = "" i temp için: tempstr + = str (i) tempstr baskı
Bu kod-golf , bayt cinsinden en kısa cevap!
random
tek tip anlamına gelmez