Penjana dadu

Baling 1 hingga 20 dadu maya dengan sebarang bilangan permukaan, dari lambungan syiling d2 hingga d1000. Setiap balingan berlaku dalam pelayar anda dengan kerawakan kriptografi selamat, dan jumlahnya dikira untuk anda.

Tekan Jana untuk mengundi
Pilihan Lanjutan

Kehilangan dadu permainan papan anda, atau perlukan d20 di tengah-tengah sesi permainan peranan (role-playing)? Penjana dadu dalam talian percuma ini menggantikan sebarang dadu yang tidak ada pada anda sekarang. Dalam ruangan “Dadu” tetapkan berapa banyak yang anda ingin baling — sebarang nombor antara 1 dan 20 — dalam ruangan “Permukaan” nyatakan berapa banyak permukaan yang ada pada setiap satu daripadanya, dan tekan “Jana”. Halaman ini dibuka dengan dua dadu enam permukaan biasa, jadi balingan pertama hanya sejauh satu klik sahaja. Setiap dadu dipaparkan secara berasingan, dan jumlah keseluruhan balingan muncul tepat di bawahnya, jadi 3d6 tidak lagi memerlukan pengiraan congak.

Setiap balingan dilaksanakan oleh pelayar anda melalui Web Crypto API (crypto.getRandomValues), yang menarik nilai rawak kriptografi yang kukuh terus daripada sumber kerawakan sistem anda sendiri, bukannya fungsi JavaScript rawak pseudo seperti Math.random(). Menukar nilai 32-bit mentah kepada bilangan permukaan adalah di mana dadu maya selalunya melakukan kesilapan secara senyap: membahagikannya dengan bilangan permukaan dan mengambil bakinya (modulo) adalah pendekatan yang paling ketara tetapi juga berat sebelah, kerana jika bilangan permukaan tidak membahagikan tepat 2^32, permukaan yang lebih rendah akan jatuh sedikit lebih kerap berbanding yang lain. Kelemahan ini dipanggil modulo bias, dan ia boleh diukur, bukan sekadar teori. Sebaliknya, alat ini membuang sebarang nilai yang melebihi gandaan tepat terbesar bagi bilangan permukaan dan menarik sekali lagi — satu teknik yang dipanggil rejection sampling. Ia memerlukan beberapa cabutan tambahan secara rawak, tetapi ia memberikan jaminan yang tepat dan bukannya anggaran. Tiada apa-apa yang dihantar ke pelayan, tiada apa-apa yang disimpan dalam log, dan sebaik sahaja halaman dimuatkan balingan anda terus berfungsi walaupun sambungan internet anda terputus.

Dua ruangan tersebut melakukan semua kerja, dan ia sepadan secara langsung dengan tatatanda dadu yang telah digunakan oleh permainan. “Dadu” bermaksud bilangan yang anda baling serentak, dari 1 hingga 20. “Permukaan” bermaksud berapa banyak permukaan yang ada pada setiap dadu, dari 2 hingga 1000 — cukup untuk lambungan syiling d2, set permainan peranan yang lengkap (d4, d6, d8, d10, d12, dan d20), peratusan d100, dan apa-apa sahaja yang permainan boleh fikirkan di luar itu. Apa-apa yang ditulis dalam format NdM secara literal adalah dua ruangan ini: 2d6 bermaksud menetapkan “Dadu” kepada 2 dan “Permukaan” kepada 6, manakala d20 sahaja bermaksud “Dadu” 1 dan “Permukaan” 20. Membaling 3d6 untuk sifat watak? Tetapkan “Dadu” kepada 3, “Permukaan” kepada 6, tekan “Jana”, dan ketiga-tiga permukaan akan muncul bersama dengan jumlahnya. Dua suis menukar cara hasil kelihatan, bukan kandungannya. “Dadu 3D Animasi”, yang dihidupkan secara lalai, melukis kiub berputar untuk setiap dadu sehingga ia berhenti — matikan ia, dan nombor tersebut muncul serta-merta sebagai senarai ringkas. “Warna rawak” memberikan setiap dadu warna tersendiri dan bukannya merah standard, dan ini berfungsi hanya semasa “Dadu 3D Animasi” dihidupkan, kerana senarai ringkas tiada dadu untuk diwarnakan. Titik-titik hanya dilukis untuk dadu enam permukaan; sebarang jenis lain memaparkan nombor yang jatuh terus pada permukaan, memandangkan tiada susun atur titik standard wujud untuk dadu tujuh belas permukaan.

Satu baris di bawah hasil tersebut menyelamatkan anda daripada pengiraan matematik: Σ ialah jumlah setiap dadu yang disertakan dalam balingan, disertai dengan masa yang diambil untuk balingan itu dan nota bahawa ia dijana secara setempat. Butang “Salin Semua” meletakkan hasilnya pada papan keratan anda, dan “Simpan ke fail” menulisnya pada fail teks — kedua-duanya memberikan anda permukaan individu, satu pada setiap baris dan bukannya sekadar jumlah, supaya log balingan anda kekal sebagai rekod yang tepat tentang apa yang sebenarnya jatuh. “Sejarah” mengekalkan 10 balingan terakhir anda secara langsung dalam pelayar anda: klik salah satu daripadanya untuk mengembalikannya ke skrin bersama dengan jumlahnya, salin atau padam satu entri tunggal, atau kosongkan keseluruhan senarai apabila anda mahu. Butang “Kosongkan” mengosongkan tetingkap hasil tetapi membiarkan tetapan anda tidak disentuh.

Adakah dadu maya lebih baik daripada yang fizikal? Dari segi keadilan — ya, dan sebabnya ialah ciri fizikal. Dadu acuan biasa mempunyai titik-titiknya yang digerudi dan dicat, dan setiap lubang yang digerudi membuang sedikit bahan, jadi permukaan nombor enam — dengan enam lubangnya — akhirnya menjadi yang sedikit paling ringan, dan permukaan yang bertentangan dengannya menjadi yang sedikit paling berat. Precision dice (dadu ketepatan) kasino wujud dengan tepat kerana sebab ini: titik-titiknya diisi dengan bahan berketumpatan sama pada permukaan yang rata, tepinya dipotong pada sudut yang tepat dan bukannya dibulatkan, ia dimesin mengikut pecahan milimeter yang tepat, namun walaupun begitu, selepas beberapa jam permainan ia akan dibuang. Dadu dalam kotak permainan papan tidak mempunyai sebarang sifat ini dan bertambah buruk apabila ia semakin lusuh — penjuru yang sumbing, tepi yang membulat akibat sentuhan tangan bertahun-tahun, dadu yang dibaling di atas selimut dan bukannya meja, realitinya ini sama sekali tidak rawak. Dadu maya tidak mempunyai geometri yang boleh menyebabkan kesilapan, ia tidak haus, dan ia tidak memberi ruang untuk mempertikaikan teknik lemparan, dan ia bertindak pada balingan kesepuluh ribu seperti yang dilakukan pada balingan pertama. Apa yang tidak boleh dilakukannya — adalah berehat dengan selesa di tapak tangan anda. Kesimpulan yang jujur ialah penjana ini menang dari segi keadilan tetapi kalah dari segi ritual.

Dadu yang adil dan jumlah yang adil bukanlah perkara yang sama. Setiap permukaan bagi satu dadu mempunyai peluang yang sama untuk jatuh, tetapi apabila anda mula menjumlahkan dadu, jumlahnya kehilangan kesaksamaan ini, dan ia mengejutkan orang ramai sepanjang masa. Dua dadu enam permukaan jatuh menjadi 36 kombinasi dengan kebarangkalian yang sama; tepat 6 daripadanya berjumlah 7, manakala hanya satu cara menghasilkan 2 dan tepat satu cara menghasilkan 12 — jadi 7 muncul enam kali lebih kerap berbanding 12, dan ini benar walaupun untuk dadu yang adil sepenuhnya. Menambah dadu ketiga menjadikan corak ini lebih sempit, menyebabkan hasil 3d6 berkelompok di sekitar pertengahan, dan inilah sebabnya pereka permainan menggunakannya apabila nilai perlu berada pada nilai purata dan bukannya pada hujung yang ekstrem. Purata untuk satu dadu enam permukaan tepat pada 3.5, yang menjadikan purata 2d6 bersamaan 7, dan purata 3d6 bersamaan 10.5, dan di atas meja permainan matematik ini selalunya lebih berguna berbanding mana-mana kebarangkalian pun. Tiada satu pun daripada perkara ini yang merupakan kesilapan atau berat sebelah: jumlah dadu sememangnya berfungsi dengan cara itu, dan itulah sebab mengapa permainan meminta 2d6 berbanding satu d12 tunggal, walaupun kedua-duanya meliputi julat angka yang hampir sama.

Dadu tidak mempunyai ingatan. Membaling angka enam empat kali berturut-turut sama sekali tidak mengurangkan peluang mendapat angka enam buat kali kelima, dadu yang tidak menunjukkan sebarang 1 sepanjang malam tidak memperoleh satu pun kerana itu, dan tiada permukaan yang pernah tiba “giliran” untuk muncul — setiap balingan adalah bebas sepenuhnya daripada yang sebelumnya, dan dadu tidak tahu apa yang ia lakukan seminit yang lalu. Naluri yang mendakwa sebaliknya dipanggil gambler's fallacy (kesilapan penjudi), dan naluri yang sama inilah yang menyebabkan kita sangat teruk dalam mereka cipta hasil dadu dengan sendirinya: apabila diminta untuk menulis urutan balingan yang boleh dipercayai, kita mengelak daripada pengulangan, kita silih bergantikan nombor besar dan kecil dan kita menyebarkannya dengan lebih rata berbanding apa yang akan dilakukan oleh kerawakan sebenar. Kerawakan sebenar sebaliknya menghasilkan kelompok, corak berterusan yang panjang, dan selang masa yang lama. Urutan yang kelihatan tersusun mencurigakan adalah pada hakikatnya, cap jari manusia.

Kenapa pilih penjana dadu ini?

Dadu muncul di mana-mana sahaja di mana permainan memerlukan nombor yang tidak dipilih oleh sesiapa. Pemain peranan (role-playing) tabletop menyerang dengan d20, membaling 3d6 untuk sifat watak dan d100 untuk semakan peratusan, dan kumpulan yang kehilangan separuh uncang dadu mereka masih boleh meneruskan permainan mereka. Permainan papan yang terbentang di atas meja makan atau meja kedai kopi diteruskan dengan cara yang sama selepas dadu hilang — hanya tetapkan “Permukaan” kepada 6 dan “Dadu” kepada 2, dan teruskan bermain. Kumpulan yang bermain dari jauh membaling pada skrin yang dikongsi supaya semua orang melihat permukaan mana yang jatuh apabila ia berhenti. Guru mengendalikan kelas kebarangkalian klasik: baling 2d6 sebanyak 60 kali, kira jumlahnya dan biarkan corak dilukis sendiri di papan hitam. Pereka permainan memeriksa sama ada sesuatu mekanik benar-benar memberikan hasil yang berbeza-beza seluas yang dirasakan, sebelum ia dicetak. Dan sejumlah besar balingan hanya memutuskan siapa yang bermain dahulu, siapa yang membelanja minuman atau rancangan mana antara dua yang menang — ini adalah keputusan yang ditinggalkan kepada nasib yang orang ramai telah selesaikan melalui dadu selama beribu-ribu tahun.

Alat ini mempunyai beberapa batasan telus yang patut diketahui. Hanya satu jenis dadu digunakan dalam satu balingan: nilai dalam ruangan “Permukaan” digunakan pada setiap dadu dalam balingan itu, jadi untuk d20 dan d6 bersama-sama, ia akan memerlukan dua balingan yang berasingan dan bukannya satu balingan. Tiada pengubah, tiada balingan kelebihan (advantage) atau keburukan (disadvantage), tiada dadu meletup (exploding dice) dan tiada kotak teks untuk menaip tatatanda dadu — anda mendapat permukaan jatuh dan jumlah keseluruhannya, dan apa-apa peraturan yang ditambah selepas itu adalah di bawah tanggungjawab anda sendiri. Σ mengira setiap dadu yang disertakan dalam balingan, dan butang “Salin Semua” serta “Simpan ke fail” menulis permukaan individu dan bukannya jumlah keseluruhan. Animasi sentiasa memaparkan kiub enam permukaan tanpa mengira bilangan permukaannya, kerana ia hanyalah hiasan semata-mata: pendaratan yang dipaparkan adalah hasil balingan yang telah dijana oleh enjin terlebih dahulu. Balingan berlaku secara setempat pada peranti anda, jadi apabila bermain secara jarak jauh, seorang membaling dan berkongsi skrinnya — alat ini menghasilkan balingan yang anda boleh terangkan sendiri, bukan sesuatu yang boleh disahkan oleh pihak ketiga. Dan sudah tentu, dadu yang adil secara kriptografi hanyalah dadu yang adil: ia tidak mempunyai sebarang kaitan dengan mana-mana loteri atau cabutan kasino dan ia tidak memberikan kelebihan kepada sesiapa pun. Dalam batasan-batasan ini, jaminan itu kukuh — setiap permukaan bagi sebarang dadu mempunyai kebarangkalian mendarat yang sama tepat, pada setiap balingan.

FAQ

Bagaimanakah cara saya membaling dadu secara dalam talian?

Dalam ruangan “Dadu” tetapkan berapa banyak dadu yang anda ingin baling, dalam ruangan “Permukaan” nyatakan berapa banyak permukaan yang ada pada setiap satu daripadanya, dan tekan “Jana”. Halaman dibuka dengan dua dadu enam permukaan biasa, jadi membaling 2d6 hanyalah dengan satu klik. Setiap dadu dipaparkan secara berasingan, dan jumlah keseluruhan balingan muncul tepat di bawahnya.

Adakah dadu maya benar-benar rawak?

Ya. Setiap balingan datang daripada Web Crypto API pelayar anda (crypto.getRandomValues) — sumber terjamin kriptografi yang sama yang digunakan apabila kerawakan mesti tidak dapat dijangkakan. Nilai mentah ditukar menjadi permukaan menggunakan teknik rejection sampling yang menghapuskan sepenuhnya kecacatan modulo bias pada pendekatan yang lebih ringkas. Dalam sebarang balingan, peluang bagi setiap permukaan pada setiap dadu kekal serba-sama dengan tepat.

Apakah dadu yang boleh saya baling?

Sebarang kombinasi daripada 1 hingga 20 dadu, dengan permukaan sebanyak 2 hingga 1000 setiap satu: bermula dengan balingan syiling d2, sehinggalah ke set permainan peranan penuh (d4, d6, d8, d10, d12, dan d20), peratusan d100, dan sebarang dadu lain yang boleh difikirkan oleh permainan dengan had d1000. Tatatanda dadu dipadankan terus dengan kedua-dua ruangan ini — 2d6 bermakna “Dadu” adalah 2 dan “Permukaan” adalah 6.

Adakah alat ini menunjukkan jumlah keseluruhan dadu?

Ya. Baris di bawah hasil bermula dengan simbol Σ dan memaparkan hasil tambah bagi setiap dadu dalam balingan anda, jadi anda tidak perlu lagi mencongak dalam kepala semasa membaling 3d6 atau 4d10. Jika anda menyalin atau menyimpan hasil, anda akan mendapatkan bacaan muka dadu secara berasingan, satu per setiap baris; jumlah keseluruhan itu kekal pada baris yang sama, di bawah kotak hasil.

Bolehkah saya menggunakannya untuk D&D dan permainan peranan tabletop yang lain?

Ya, dan itu antara kegunaannya yang paling biasa. Tetapkan “Dadu” kepada 1 dan “Permukaan” kepada 20 untuk balingan serangan atau ujian ketahanan (saving throw), “Dadu” 3 dan “Permukaan” 6 untuk sifat watak, dan “Permukaan” 100 untuk semakan peratusan. Balingannya adil secara kriptografi, dan itu lebih daripada yang boleh didakwa oleh d20 lusuh di dasar uncang dadu anda.

Bolehkah saya membaling d20 dan d6 dalam balingan yang sama?

Tidak. Nilai dalam ruangan “Permukaan” digunakan pada setiap dadu dalam balingan itu, jadi dadu bercampur memerlukan satu balingan bagi setiap jenis — baling d20 anda dahulu, kemudian tukar “Permukaan” kepada 6 dan tekan sekali lagi. Tiada pengubah mahupun balingan kelebihan (advantage) juga: alat ini memberikan permukaan yang jatuh dan jumlahnya, dan peraturan di atasnya terpulang kepada anda.

Saya hidupkan “Warna rawak” tetapi tiada apa-apa berubah. Kenapa?

Kerana warna itu hidup pada dadu beranimasi. Apabila “Dadu 3D Animasi” dimatikan, hasilnya hanyalah senarai nombor, dan nombor tiada permukaan untuk diwarnakan. Hidupkan semula animasi, dan setiap kiub akan muncul dengan warnanya sendiri dan bukannya merah standard.

Apakah yang dilakukan oleh suis “Dadu 3D Animasi”?

Apabila ia dihidupkan — dan itulah tetapan lalai — setiap dadu dilukis sebagai kiub yang berputar sebelum berhenti pada satu permukaan. Matikan ia, dan nombor muncul serta-merta sebagai senarai ringkas, yang lebih pantas apabila anda membaling berulang kali. Apa pun pilihannya, animasi itu hanyalah hiasan: enjin sudah menentukan hasilnya sebelum kiub mula berputar. Dadu enam permukaan dilukis dengan corak titik yang biasa, manakala dadu jenis lain hanya memaparkan nombornya.

Adakah dadu maya lebih adil daripada dadu sebenar?

Dari segi keadilan, ya. Dadu acuan mempunyai titiknya digerudi, jadi permukaannya tidak sama berat, dan tepinya membulat dengan penggunaan — precision dice kasino dimesin bersudut tepat dan diisi rata justeru untuk mengelakkan hal itu, dan ia pun ditarik keluar daripada permainan selepas beberapa jam. Dadu maya tiada apa-apa yang boleh haus, jadi setiap permukaan mengekalkan kebarangkalian yang sama tepat dari balingan pertama hingga balingan kesepuluh ribu.

Kenapa 7 kerap muncul apabila saya membaling dua dadu?

Kerana permukaan yang sama berkemungkinan tidak menghasilkan jumlah yang sama berkemungkinan. Dua dadu enam permukaan boleh jatuh dalam 36 cara, dan 7 boleh dibentuk dalam enam daripadanya — 1+6, 2+5, 3+4 dan cerminannya — manakala 12 hanya boleh dibentuk dengan satu cara. Enam peluang berbanding satu itulah keseluruhan penjelasannya, dan ia benar pada dadu yang adil sepenuhnya.

Saya membaling empat angka enam berturut-turut. Adakah alat ini rosak?

Tidak. Setiap balingan bebas daripada balingan sebelumnya, jadi empat angka enam berturut-turut pada d6 ialah kejadian 1 dalam 1296 — jarang bagi anda malam ini, biasa sahaja merentasi semua orang yang membaling dadu hari ini. Dadu tidak mempunyai ingatan, dan tiada permukaan yang tertunggu gilirannya. Jika ada yang mencurigakan, itulah urutan hasil yang berselang-seli dengan kemas.

Adakah ia berfungsi di luar talian, adakah ia mengingati balingan saya, dan adakah ia percuma?

Sebaik sahaja halaman dimuatkan, balingan berlaku sepenuhnya dalam pelayar anda, jadi sambungan yang terputus tidak akan mengganggu permainan. “Sejarah” menyimpan 10 balingan terakhir anda pada peranti anda sendiri, di mana anda boleh mengembalikan, menyalin atau memadamkannya. Alat ini percuma sepenuhnya tanpa pendaftaran, dan kerana tiada apa-apa yang dihantar keluar, kami tidak dapat melihat balingan anda walaupun kami mahu.