Kartu Bingo masing-masing terdiri dari lima kolom dengan lima kotak, dengan alun-alun tengah ditetapkan "GRATIS". Angka tidak dapat diduplikasi.
Lima kolom diisi dengan kisaran angka berikut:
- B: 1-15
- I: 16-30
- N: 31-45
- G: 46-60
- O: 61-75
Dalam karakter sesedikit mungkin, output string yang dapat diartikan sebagai kartu Bingo acak. Sebagai contoh:
1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65,65
Contoh ini tidak diacak sehingga saya dapat menunjukkan bahwa kolom 1 diisi dengan 1,2,3,4,5. Perhatikan juga bahwa ruang kosong belum diberi perlakuan khusus karena front-end yang mengartikan string ini akan melewatinya.
Contoh lain adalah:
1,16,31,46,61,2,17,32,47,62 ...
Dalam contoh ini, output adalah dengan baris, bukan oleh kolom.
Contoh ketiga mungkin:
01020304051617181920313233343546474849506162636465
Ini adalah output yang sama dengan contoh pertama kecuali dalam panjang tetap.
Jawaban:
PHP, 86
sumber
join
adalah alias untukìmplode
dan Anda dapat menempatkan tugas di loop setelah. Ini akan mempersingkat ide Anda menjadifor($o=[];25>$i=count($o);$o[$n]=$n)$n=rand(1,15)+($i-$i%5)*3;echo join(",",$o);
Ruby 1.9, 48 karakter
sumber
Windows PowerShell, 51
54Saya tidak yakin apakah saya memahami tugas Anda dengan benar.
Output sampel:
sumber
PHP 106
Saya tidak yakin saya mengerti masalahnya dengan benar ... Bisakah Anda memberikan penjelasan yang lebih rinci?
sumber
R,
6351504945 byteTerima kasih kepada Billywob untuk saran yang terus-menerus dan mendorong daya saing saya.
sumber
cat(sapply(list(15,16:30,31:45,46:60,61:75),sample,5))
Sunting: apalagi pencetakan, ditambahkancat
sebagai gantinyacat(sapply(split(1:75,ceiling(1:75/15)),sample,5))
. Bekerja dengan memisahkan vektor1:75
ke dalam daftar di mana setiap elemen adalah vektor dengan panjang15
alih-alih menggunakanlist()
untuk meneruskan objeksapply
.labels = FALSE
opsi untukcut
. Karena semua yang penting adalah bahwa ada5
faktor berulang yang diteruskan ke fungsi split, terlepas dari nama.Clojure - 52 karakter
Contoh output (perhatikan bahwa ini menyediakan baris terpisah sebagai sub-daftar):
sumber
Python 2, 84 byte
Jika output sebagai daftar jika daftar tidak masalah ada solusi 75 byte :
sumber