Angka yang mudah diingat namun secara teoritis tidak mudah dibuat
Tantangan Anda adalah membuat program / fungsi dalam bahasa apa pun yang menghasilkan angka acak seragam yang sesuai dengan kriteria ini:
Panjangnya adalah 5 digit
Ada dua pasangan digit berulang yang terpisah
Satu set angka berulang adalah di awal atau akhir dan digit di sebelah satu sama lain
Angka ganjil keluar dikelilingi oleh pasangan digit lainnya
Pasangan dua digit dan angka lainnya semuanya harus unik
Program Anda dapat mendukung angka dengan angka nol di depan atau tidak, sesuai kebijakan Anda. Jika nol terdepan didukung, mereka harus dimasukkan dalam output: 06088, bukan 6088. Jika nol terkemuka tidak didukung, maka angka-angka seperti 06088 tidak boleh dihasilkan sama sekali.
Uji Kasus
Output yang Diterima:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
Output tidak diterima:
55555 77787 85855 12345 99233 12131 abcde 5033
Kasus uji yang lebih dapat diterima dapat ditemukan di tautan pastebin ini .
Ini dibuat dengan program python ini:
impor acak untuk saya dalam kisaran (100): if random.randint (0,100)> = 50: #Pasangan menyentuh pada awalnya jika benar temp = [] # array pekerjaan temp.append (random.randint (0,9)) # tambahkan digit acak temp.append (temp [0]) # tambahkan digit yang sama lagi x = random.randint (0,9) sementara x == temp [0]: x = random.randint (0,9) temp.append (x) #append digit unik lainnya y = random.randint (0,9) sementara y == temp [0] atau y == temp [2]: y = random.randint (0,9) temp.append (y) # tambahkan digit unik lain, dan digit unik sebelumnya temp.append (x) lain: #Pas menyentuh pasangan di akhir temp = [] # array pekerjaan temp.append (random.randint (0,9)) # tambahkan digit acak #Sementara tidak unik, coba lagi x = random.randint (0,9) sementara x == temp [0]: x = random.randint (0,9) temp.append (x) #append digit unik lainnya temp.append (temp [0]) # tambahkan digit ke-0 yang sama lagi y = random.randint (0,9) sementara y == temp [0] atau y == temp [1]: y = random.randint (0,9) temp.append (y) # tambahkan digit unik lain dua kali temp.append (y) tempstr = "" untuk saya dalam temp: tempstr + = str (i) cetak tempstr
Ini kode-golf , jadi jawaban tersingkat dalam byte menang!
random
tidak berarti secara seragam begitu