Misalkan Anda memiliki dua dadu enam sisi. Gulung pasangan 100 kali, hitung jumlah masing-masing pasangan. Cetak berapa kali setiap jumlah terjadi. Jika jumlah tidak pernah digulir, Anda harus menyertakan nol atau cara untuk mengidentifikasi bahwa jumlah tertentu tidak pernah digulir.
Contoh Output: [3, 3, 9, 11, 15, 15, 11, 15, 7, 8, 3]
Jumlah kali jumlah yang digulirkan diwakili dalam indeks jumlah - 2
Dalam contoh ini, jumlah dua digulirkan 3 kali ([2-2]), jumlah tiga 3 kali ([3-2]), jumlah empat 9 kali ([4-2]), dan seterusnya di. Tidak masalah gulungan dadu individu untuk mencapai jumlah (5 dan 2 akan dihitung sebagai jumlah yang sama dengan 6 dan 1)
Keluaran "Jelek" baik-baik saja (banyak nol tambahan, keluaran ekstra, cara aneh untuk merepresentasikan data, dll.) Selama Anda menjelaskan bagaimana data harus dibaca.
sumber
0
dalam daftar, atau dapatkah dihilangkan?extra output
tetapi kita masih tidak dapat menampilkan daftar angka acak yang tak terbatas dan mengatakannya muncul secara acak di suatu tempat di sana, kan? Itu iirc celah standar.Jawaban:
Jelly ,
1312 byteTautan niladik. Format output adalah daftar daftar
[value, count]
.(Zero rolls berarti tidak ada entri seperti itu dalam output - misalnya output
[[6, 12], [7, 74], [8, 14]]
akan mengidentifikasi bahwa hanya jumlah enam, tujuh dan delapan digulung.)Cobalah online!
Bagaimana?
sumber
Python 2 ,
847776 byte-7 byte terima kasih kepada @JonathanAllan
-1 byte terima kasih kepada @FelipeNardiBatista
Cobalah online!
Outputnya memiliki dua nol terkemuka
sumber
05AB1E ,
2119 byte-2 byte terima kasih kepada @Emigna
Cobalah online!
sumber
TÝÌтF6Lã.RO¸ì}{γ€g<
menghemat 2 byte.Mathematica, 50 byte
Implementasi langsung. Jika ada jumlah yang tidak pernah tercapai, maka
0
dihilangkan dari daftar.sumber
MATL , 17 byte
Output adalah daftar 11 angka (beberapa dari mereka mungkin 0) dipisahkan oleh spasi, menunjukkan jumlah kali untuk setiap pasangan dari 2 hingga 12.
Cobalah online!
Sebagai perbandingan, jumlah rata-rata teoritis setiap kali pasangan akan muncul rata-rata dapat dihitung sebagai
6:gtY+36/100*
.Jika jumlah gulungan meningkat, nilai yang diperoleh mendekati yang teoritis. Lihat misalnya nilai yang diperoleh dan teoritis dengan 10.000 gulungan.
sumber
CJam,
1820 byteCobalah online!
sumber
e`
hanya membutuhkan dua byte.Perl 6 , 30 byte
(^6).pick
adalah angka acak dari nol hingga lima.xx 100
membuat daftar seratus elemen angka-angka tersebut.xx 2
menghasilkan dua daftar tersebut.[Z+]
ritsleting kedua daftar itu dengan tambahan, menghasilkan daftar seratus elemen gulungan dua-mati. Akhirnya,bag
masukkan daftar itu ke dalam tas, yang merupakan koleksi dengan banyak. Contoh output REPL:Itu berarti 1, 9, dan 0 terjadi empat kali masing-masing, empat terjadi empat belas kali, dll. Karena "dadu" dalam kode ini menghasilkan angka dari 0-5, tambahkan dua ke masing-masing angka ini untuk mendapatkan gulungan sepasang dadu standar 1-6 akan menghasilkan.
sumber
R ,
4537 byte-7 byte berkat Jarko Dubbledam
Mengembalikan objek tabel elemen dan jumlah masing-masing. Tidak termasuk nilai apa pun yang tidak terjadi.
Cobalah online!
versi lama:
sample(6,200,T)
sampel 200 kali dari1:6
seragam dengan penggantian, kemudian membuat matriks dengan 2 baris, menjumlahkan kolom, kemudian mengurutkannya menjadi urutan naik dan menghitung panjang berjalan. Hapus semua jumlah dadu yang tidak tercapai.Mengembalikan
rle
objek, yang dicetak secara default dalam format berikut:di mana
lengths
jumlah danvalues
jumlah dadu.TIO Link
sumber
PHP, 53 Bytes
mencetak array asosiatif. kuncinya adalah hasil dari dua dadu dan nilainya adalah hitungan dari hasil ini
Cobalah online!
sumber
If a sum was never rolled, you must include a zero or some way to identify that that particular sum was never rolled.
JavaScript (ES6), 72 byte
Melihat output "jelek" diperbolehkan, yang berikut ini akan menampilkan array yang berisi berapa kali setiap skor dari 2-12 digulirkan, dengan tambahan 89 elemen ditetapkan ke 0.
sumber
SILOS , 99 byte
Cobalah online!
Gulung dadu, dan simpan di 11 titik tumpukan pertama, lalu geser melewati tumpukan tumpukan di setiap konter. Ini adalah salah satu penggunaan kata kunci rand yang direkam pertama kali dikombinasikan dengan operator penugasan.
Perlu dicatat, bahwa beberapa modifikasi dapat dilakukan untuk menampilkan histogram gulungan.
Sayangnya itu harus dijalankan dari penerjemah offline .
sumber
Elixir,
157118 byteMencoba sesuatu yang lebih keras dari Jelly.
Penjelasan:
y
menjadi variabel dengan jumlah roll.Harus disebut seperti
p.(p,[0,0,0,0,0,0,0,0,0,0,0,0,0])
. Ini akan memunculkan peringatan, tetapi akan mengembalikan array yang diinginkan dengan 13 elemen, 2 pertama harus diabaikan.sumber
Java 8, 104 byte
Lambda mengembalikan
int[]
frekuensi. Tetapkan untukSupplier<int[]>
.Cobalah secara Online
Lambda yang tidak tersentuh
sumber
q / kdb +,
312825 byteLarutan:
Contoh:
Penjelasan:
Gulung dadu
100?6
, gulung dadu lagi dan tambahkan vektor bersama. Lalu lihat di mana masing-masing hasil cocok dengan kisaran 0..10, lalu jumlah semua true dalam setiap daftar:Catatan:
'Golf' sebagian besar menukar
q
kata kunci untukk
setara, yaitueach
dantil
.sumber
QBIC , 45 byte
Penjelasan:
sumber
APL, 14 byte
Menyajikan data sebagai tabel dengan kolom kiri yang mewakili jumlah dan kanan mewakili jumlah kejadian.
Dijelaskan
Posting sebelumnya:
APL,
3631 byte5 byte disimpan berkat @ Adám
Penjelasan
Bagaimana cara
11⍴⍉⌽f
kerjanya?sumber
(11⍴⍉⌽f)[⍋11⍴⍉f←,∘⍴⌸+/?100 2⍴6]
,∘⍴⌸+/?100 2⍴6
harus cukup, karena mencantumkan jumlah yang terjadi (sehingga menunjukkan mana yang tidak ada) dan frekuensi mereka (jadi tidak diperlukan penyortiran).> <> , 93 byte
Cobalah online , atau tonton di taman bermain ikan !
Format output jelek adalah urutan angka yang dipisahkan oleh baris baru, di mana angka ke- n mengatakan berapa kali jumlahnya adalah n - itu jelek karena mencetak selamanya, untuk semua bilangan bulat positif n , meskipun sebagian besar baris akan menjadi 0. ( TIO link dimodifikasi untuk berhenti setelah n = 12, dengan biaya 5 byte.)
Taman bermain ikan cukup lambat - dibutuhkan sekitar tiga setengah menit untuk mencetak hingga n = 12 dengan kecepatan tinggi - jadi Anda mungkin ingin memodifikasinya untuk menggulung 10 pasang dadu alih-alih 100 dengan mengubah
aa*
di baris ke-5 menjadia
(a
Yaitu , diikuti oleh dua spasi).Gulungan dadu acak dilakukan dengan bit ini:
Itu
x
s mengubah arah ikan secara acak. Dengan asumsi bahwa diimplementasikan dengan probabilitas yang sama, jelas bahwa hasil die roll adalah distribusi yang seragam oleh simetri.Setelah ikan telah bergulir 100 pasang dadu, ia menghitung berapa kali jumlah itu n dengan bit ini (membuka bungkusan untuk kejelasan, dan mulai di kiri atas):
Kami menjaga n di depan tumpukan, dan menggunakan register untuk menghitung berapa kali n muncul.
sumber
Javascript
8575 karakterTerima kasih Shaggy!
Sejarah
85
sumber
a=[];for(i=100;i--;)a[o=(f=_=>Math.random()*6|0)()+f()]=(a[o]|0)+1;alert(a)
. (Catatan: dalam contoh ini, IIFE tidak menghemat maupun biaya byte tetapi ada saat-saat itu dapat menghemat satu atau 2 byte, jadi itu berguna untuk memilikinya di "tas golf" Anda.)|0
adalah solusi golf untuk "Math.floor ()" dan juga untuk "mengkonversi undefined ke 0".Perl 5 , 64 byte
Cobalah online!
Format output:
<sum> <# rolls>
Untuk jumlah dengan nol gulungan, kolom gulungan kosong.
sumber
PHP, 65 byte
mencetak yang memimpin
0_
dan kemudian kejadian 2 hingga 12, diikuti oleh masing-masing garis bawah.Jalankan dengan
-nr
atau coba online .sumber
K (oK) ,
2422 byteLarutan:
Cobalah online!
Penjelasan:
k
'port' dariq
solusi saya . Evaluasi terjadi dari kanan ke kiri, maka tanda kurung di sekitar til (!
)Suntingan:
sumber
Pyth, 21 byte
Keluarkan setiap langkah dalam pembuatan gulungan, lalu keluarkan frekuensi setiap penjumlahan 0 - 10 pada baris terpisah.
sumber
Java (OpenJDK 8) , 95 byte
Cobalah online!
Penjelasan
sumber