Roll die 6-sided sampai total

11

Inilah pertanyaannya:

Anda melempar dadu 6 sisi yang adil secara iteratif sampai jumlah gulungan dadu lebih besar dari atau sama dengan M. Apa rata-rata dan standar deviasi jumlah dikurangi M ketika M = 300?

Haruskah saya menulis kode untuk menjawab pertanyaan semacam ini?

Tolong beri saya beberapa petunjuk tentang itu. Terima kasih!

eli
sumber
1
Silakan tambahkan [self-study]tag & baca wiki -nya . Kemudian beri tahu kami apa yang Anda pahami sejauh ini, apa yang telah Anda coba & di mana Anda terjebak. Kami akan memberikan petunjuk untuk membantu Anda melepaskan diri.
gung - Reinstate Monica
2
Saya menduga bahwa M=300 dapat dibaca sebagai " sangat besar M" karena saya percaya bahwa M=301 atau M=999 akan memberikan hasil yang hampir sama persis. Apa yang akan saya lakukan adalah mencari distribusi dari jumlah dikurangi M .
Henry

Jawaban:

13

Anda tentu dapat menggunakan kode, tetapi saya tidak akan mensimulasikan.

Saya akan mengabaikan bagian "minus M" (Anda dapat melakukannya dengan cukup mudah di akhir).

Anda dapat menghitung probabilitas secara rekursif dengan sangat mudah, tetapi jawaban aktual (hingga tingkat akurasi yang sangat tinggi) dapat dihitung dari penalaran sederhana.

Biarkan gulungan menjadi . Misalkan S t = t i = 1 X i .X1,X2,...St=i=1tXi

Biarkan menjadi indeks terkecil di mana S τM .τSτM

P(Sτ=M)=P(got to M6 at τ1 and rolled a 6)+P(got to M5 at τ1 and rolled a 5)++P(got to M1 at τ1 and rolled a 1)=16j=16P(Sτ1=Mj)

masukkan deskripsi gambar di sini

demikian pula

P(Sτ=M+1)=16j=15P(Sτ1=Mj)

P(Sτ=M+2)=16j=14P(Sτ1=Mj)

P(Sτ=M+3)=16j=13P(Sτ1=Mj)

P(Sτ=M+4)=16j=12P(Sτ1=Mj)

P(Sτ=M+5)=16P(Sτ1=M1)

Persamaan yang mirip dengan yang pertama di atas kemudian dapat (setidaknya pada prinsipnya) dijalankan kembali sampai Anda menekan salah satu kondisi awal untuk mendapatkan hubungan aljabar antara kondisi awal dan probabilitas yang kita inginkan (yang akan membosankan dan tidak terlalu mencerahkan) , atau Anda dapat membuat persamaan maju yang sesuai dan menjalankannya dari kondisi awal, yang mudah dilakukan secara numerik (dan itulah cara saya memeriksa jawaban saya). Namun, kita bisa menghindari semua itu.

Probabilitas poin menjalankan rata-rata tertimbang dari probabilitas sebelumnya; ini akan (secara geometris cepat) menghaluskan segala variasi dalam probabilitas dari distribusi awal (semua probabilitas pada titik nol dalam kasus masalah kita). Itu

M6M1τ1

M6M1MM+1M+5

Artinya, probabilitasnya berada dalam rasio 6: 5: 4: 3: 2: 1, dan jumlah ke 1, jadi mereka sepele untuk dituliskan.

.Machine$double.eps2.22e-16

Inilah kode saya untuk itu (sebagian besar hanya menginisialisasi variabel, pekerjaan semua dalam satu baris). Kode dimulai setelah gulungan pertama (untuk menyelamatkan saya memasukkan sel 0, yang merupakan gangguan kecil untuk ditangani dalam R); pada setiap langkah dibutuhkan sel terendah yang bisa ditempati dan bergerak maju dengan die roll (menyebarkan kemungkinan sel itu selama 6 sel berikutnya):

 p = array(data = 0, dim = 305)
 d6 = rep(1/6,6)
 i6 = 1:6
 p[i6] = d6
 for (i in 1:299) p[i+i6] = p[i+i6] + p[i]*d6

(kita dapat menggunakan rollapply(dari zoo) untuk melakukan ini dengan lebih efisien - atau sejumlah fungsi lain semacam itu - tetapi akan lebih mudah untuk menerjemahkan jika saya tetap eksplisit)

Perhatikan bahwa d6ini adalah fungsi probabilitas diskrit lebih dari 1 hingga 6, sehingga kode di dalam loop di baris terakhir adalah membangun menjalankan rata-rata tertimbang dari nilai sebelumnya. Hubungan inilah yang membuat probabilitas menjadi lancar (hingga beberapa nilai terakhir yang kami minati).

t

masukkan deskripsi gambar di sini

1/μ

MM

masukkan deskripsi gambar di sini

M1M6

MM1M6τ1M

Rt=StMR0

Dari distribusi probabilitas, rerata dan varians probabilitas kemudian sederhana.

M

53253M=300

Glen_b -Reinstate Monica
sumber
+1 Saya tidak sepenuhnya memahami jawaban ini sampai saya mengembangkan jawaban saya sendiri, yang sekarang tampaknya berlebihan. Mungkin beberapa pembaca akan melihat nilai dalam hasil ilustrasi dan simulasi, jadi saya akan tetap membuka jawaban.
whuber
1
@whuber Jawaban saya jauh lebih konkret daripada yang saya inginkan karena saya beroperasi dengan asumsi bahwa ini adalah pekerjaan rumah (jadi saya menghindari melakukan terlalu banyak derivasi atau memberikan kode apa pun - itu lebih dimaksudkan sebagai garis besar). Saya merasa sulit untuk menulis jawaban yang jelas tentang masalah ini (ini adalah tempat konkret lebih membantu daripada biasanya). Karena Anda telah memberikan jawaban yang berisi angka dan kode aktual (yang menurut saya pasti harus tetap ada), saya merasa dapat melakukan beberapa hal yang diharapkan akan membuat jawaban saya lebih mudah dipahami (lebih eksplisit, berikan kode saya sendiri) .
Glen_b -Reinstate Monica
Saya menulis penjelasan yang jauh lebih baik tentang masalah semacam ini di suatu tempat beberapa tahun yang lalu. Jika saya dapat mengingat / mencari tahu bagaimana kelanjutannya, saya akan mencoba memasukkannya di sini.
Glen_b -Reinstate Monica
@ Glen_b sedikit memahami persamaan. Saya seorang pemula. bagaimana cara mulai berpikir seperti ini? Apakah ada buku yang bisa Anda rekomendasikan untuk tujuan ini? Balasan Anda akan sangat membantu.
Tersangka Biasa
Usual Suspect - Saya menulis persamaan dengan membayangkan papan permainan seperti trek panjang dan pergi "apa cara yang bisa saya dapatkan ke ruang ini dengan cara yang sesuai dengan kondisi dalam masalah, dan dengan peluang apa?"; Saya melakukannya untuk spasi berlabel "M", lalu untuk ruang setelahnya, dan seterusnya. Saya menulis perhitungan yang sama untuk kode dengan membayangkan berada di dekat sel awal dan berkata "jika saya di sini, apakah saya akan menjadi yang berikutnya, dengan peluang apa?". Semua persamaan hanyalah jawaban untuk pertanyaan-pertanyaan itu.
Glen_b -Reinstate Monica
8

Ω0nEnn

En={ωΩ|nω}.

XM(ω)ωMXMMXM

XM(ω)M{0,1,2,3,4,5}XMM=kωp(i)=1/6ii=1,2,3,4,5,6

Pr(XMM=k)=j=k6Pr(EM+kj)p(j)=16j=k6Pr(EM+kj).

Pada titik ini kita dapat memperdebatkan secara heuristik bahwa, untuk perkiraan yang sangat baik untuk semua kecuali terkecil ,Ini karena nilai yang diharapkan dari gulungan adalah dan timbal baliknya harus menjadi frekuensi jangka panjang yang membatasi dan stabil dari nilai tertentu di .M

Pr(Ei)2/7.
(1+2+3+4+5+6)/6=7/2ω

Cara yang ketat untuk menunjukkan ini mempertimbangkan bagaimana bisa terjadi. Entah terjadi dan gulungan berikutnya adalah ; atau terjadi dan gulungan berikutnya adalah ; atau ... atau terjadi dan gulungan berikutnya adalah . Ini adalah partisi lengkap dari kemungkinan, dari manaEiEi11Ei22Ei66

Pr(Ei)=j=16Pr(Eij)p(j)=16j=16Pr(Eij).

Nilai awal dari urutan ini adalah

Pr(E0)=1;Pr(Ei)=0,i=1,2,3,.

Gambar: plot E_i

Plot melawan menunjukkan seberapa cepat peluang menetap ke konstan , ditunjukkan oleh garis putus-putus horisontal.Pr(Ei)i2/7

Ada teori standar dari urutan rekursif tersebut. Ini dapat dikembangkan dengan cara menghasilkan fungsi, rantai Markov, atau bahkan manipulasi aljabar. Hasil umum adalah bahwa rumus bentuk tertutup untuk ada. Pr(Ei) Ini akan menjadi kombinasi linear dari konstanta dan kekuatan dari akar polinomialith

x6p(1)x5p(2)x4p(3)x3p(6)=x6(x5+x4+x3+x2+x+1)/6.

Magnitudo akar terbesar adalah sekitar . Dalam representasi floating point presisi ganda, pada dasarnya nol. Oleh karena itu, untuk , kita dapat mengabaikan semuanya kecuali konstanta. Konstanta ini adalah .exp ( - 36,05 ) i » - 36,05 / - 0,314368 = 115 2 / 7exp(0.314368)exp(36.05)i36.05/0.314368=1152/7

Akibatnya, untuk , untuk semua tujuan praktis kita dapat mengambil , dari manaE M + k - j = 2 / 7M=300115EM+kj=2/7

Pr(XMM=(0,1,2,3,4,5))=(27)(16)(6,5,4,3,2,1).

Menghitung mean dan varian dari distribusi ini sangat mudah dan mudah.


Berikut ini adalah Rsimulasi untuk mengkonfirmasi kesimpulan ini. Ini menghasilkan hampir 100.000 sekuens melalui , mentabulasikan nilai , dan menerapkan untuk menilai apakah hasilnya konsisten dengan yang sebelumnya. Nilai p (dalam hal ini) dari cukup besar untuk menunjukkan bahwa mereka konsisten.X 300 - 300 χ 2 0,1367M+5=305X300300χ20.1367

M <- 300
n.iter <- 1e5
set.seed(17)
n <- ceiling((2/7) * (M + 3*sqrt(M)))
dice <- matrix(ceiling(6*runif(n*n.iter)), n, n.iter)
omega <- apply(dice, 2, cumsum)
omega <- omega[, apply(omega, 2, max) >= M+5]
omega[omega < M] <- NA
x <- apply(omega, 2, min, na.rm=TRUE)
count <- tabulate(x)[0:5+M]
(cbind(count, expected=round((2/7) * (6:1)/6 * length(x), 1)))
chisq.test(count, p=(2/7) * (6:1)/6)
whuber
sumber