Jumlah gulungan dadu yang diharapkan perlu menghasilkan jumlah yang lebih besar atau sama dengan K?

9

Dadu 6 sisi digulung berulang-ulang. Berapa jumlah gulungan yang diharapkan untuk menghasilkan jumlah yang lebih besar dari atau sama dengan K?

Sebelum Mengedit

P(Sum>=1 in exactly 1 roll)=1
P(Sum>=2 in exactly 1 roll)=5/6
P(Sum>=2 in exactly 2 rolls)=1/6
P(Sum>=3 in exactly 1 roll)=5/6
P(Sum>=3 in exactly 2 rolls)=2/6
P(Sum>=3 in exactly 3 rolls)=1/36
P(Sum>=4 in exactly 1 roll)=3/6
P(Sum>=4 in exactly 2 rolls)=3/6
P(Sum>=4 in exactly 3 rolls)=2/36
P(Sum>=4 in exactly 4 rolls)=1/216

Setelah Edit

P(Sum>=1 in atleast 1 roll)=1
P(Sum>=2 in atleast 1 roll)=5/6
P(Sum>=2 in atleast 2 rolls)=1
P(Sum>=3 in atleast 1 roll)=4/6
P(Sum>=3 in atleast 2 rolls)=35/36
P(Sum>=3 in atleast 3 rolls)=1
P(Sum>=4 in atleast 1 roll)=3/6
P(Sum>=4 in atleast 2 rolls)=33/36
P(Sum>=4 in atleast 3 rolls)=212/216
P(Sum>=4 in atleast 4 rolls)=1

Saya tidak yakin ini benar pertama-tama dan tetapi saya pikir probabilitas ini terkait dengan jumlah gulungan yang diharapkan?

Tapi saya tidak tahu bagaimana melangkah lebih jauh. Apakah saya melanjutkan ke arah yang benar?

Tersangka Biasa
sumber
Bagaimana Anda mendapatkan ? P(S2 dalam 2 gulungan)
Glen_b -Reinstate Monica
@ Glen_b Anda harus mendapatkan nomor kurang dari 2 di gulungan pertama yaitu 1. Jadi probabilitas mendapatkan 1 adalah 1/6 dan gulungan kedua dapat berupa angka apa pun. jika Anda mendapatkan angka yang lebih besar atau sama dengan 2 pada roll pertama, maka Anda tidak akan memilih roll kedua.
Tersangka Biasa
1
Ah, saya mengerti apa yang terjadi. Anda tidak menggambarkannya sebagai "P (S \ geq 2 in 2 rolls)"; Ekspresi yang menyiratkan jumlah gulungan diperbaiki. Yang Anda inginkan adalah "P (tepatnya 2 gulungan diperlukan untuk mendapatkan )" atau "P (minimal 2 gulungan diperlukan untuk mendapatkan )". S 2S2S2
Glen_b -Reinstate Monica
@ Glen_b Ya itulah kebingungannya. P (tepatnya 2 gulungan diperlukan untuk mendapatkan S> 2) saya kira. Yang saya akhirnya ingin hitung adalah jumlah gulungan yang diharapkan mencapai jumlah yang lebih besar dari K?
Tersangka Biasa
@ Glen_b haruskah saya menggunakan atleast atau tepatnya untuk tujuan ini? Dan bagaimana cara menghitung jumlah gulungan yang diharapkan untuk jumlah yang lebih besar seperti 10.000?
Tersangka Biasa

Jawaban:

2

Sejauh ini hanya beberapa ide untuk pendekatan lain yang lebih tepat, berdasarkan pengamatan yang sama dengan jawaban pertama saya. Dengan waktu saya akan memperpanjang ini ...

Pertama, beberapa notasi. Biarkan menjadi bilangan bulat, positif (besar). Kami ingin distribusi N , yang merupakan jumlah minimum melempar sebuah dadu biasa untuk mendapatkan jumlah setidaknya K . Jadi, pertama kita mendefinisikan X i sebagai hasil dadu membuang i , dan X ( n ) = X 1 + + X n . Jika kita dapat menemukan distribusi X ( n ) untuk semua n maka kita dapat menemukan distribusi N dengan menggunakan P ( N KNKXiiX(n)=X1++XnX(n)nN dan kita selesai.

P(Nn)=P(X1++XnK),

Sekarang, nilai yang mungkin untuk adalah n , n + 1 , n + 2 , ... , 6 n , dan untuk k dalam kisaran itu, untuk menemukan probabilitas P ( X 1 + + X n = k ) , kita perlu menemukan jumlah total cara untuk menulis k sebagai jumlah dari tepat n bilangan bulat, semua dalam kisaran 1 , 2 , ...X1++Xnn,n+1,n+2,...,6nkP(X1++Xn=k)kn . Tapi itu disebut komposisi integer terbatas, masalah yang dipelajari dengan baik dalam kombinatorik. Beberapa pertanyaan terkait pada matematika SE ditemukan oleh https://math.stackexchange.com/search?q=integer+compositions1,2,...,6

Jadi mencari dan mempelajari literatur kombinatorik kita bisa mendapatkan hasil yang tepat dan tenang. Saya akan menindaklanjutinya, tapi nanti ...

kjetil b halvorsen
sumber
2

Ada formula tertutup sederhana dalam hal akar polinomial derajat-6.

Sebenarnya sedikit lebih mudah untuk mempertimbangkan kematian umum yang umum dengan d2 wajah yang berlabel angka 1,2,...,d.

Biarkan ek menjadi jumlah yang diharapkan dari gulungan yang dibutuhkan untuk sama atau melebihi k. Untuk k0, ek=0. Kalau tidak, ekspektasinya adalah lebih dari ekspektasi jumlah gulungan untuk mencapai nilai sebelumnya, yang akan berada di antara k-d,k-d+1,...,k-1, mana

(1)ek=1+1d(ekd+ekd+1++ek1).

Hubungan perulangan linier ini memiliki solusi dalam bentuk

(2)ek=2kd+1+i=1daiλik

dimana λi adalah d akar kompleks dari polinomial

(3)Td1d(Td1+Td2++T+1).

Konstanta ai ditemukan dengan menerapkan solusi (2) ke nilai k=(d1),(d2),,1,0 mana ek=0 dalam setiap kasus. Ini memberikan satu set persamaan linear d dalam konstanta d dan ia memiliki solusi unik. Solusi itu dapat ditunjukkan dengan memverifikasi perulangan (1)menggunakan fakta bahwa setiap root memuaskan (3):

1+1dj=1dekj=1+1dj=1d(2(kj)d+1+i=1daiλikj)=2kd+1+i=1daiλikd[1d(1+λi++λid1)]=2kd+1+i=1daiλikdλid=2kd+1+i=1daiλik=ek.

Solusi bentuk tertutup ini memberi kami cara yang baik untuk memperkirakan jawaban serta mengevaluasinya secara akurat. (Untuk nilai k, kecil sampai sedang , aplikasi langsung dari perulangan adalah teknik komputasi yang efektif.) Sebagai contoh, dengan d=6 kita dapat dengan mudah menghitung

e1000000=285714.761905

Untuk perkiraan, akan ada akar unik terbesar λ+=1 sehingga akhirnya (untuk k cukup besar ) istilah λ+k akan mendominasi istilah d dalam (2).Kesalahan akan menurun secara eksponensial sesuai dengan norma terkecil kedua dari akar. Melanjutkan contoh dengan k=6, koefisien λ+ adalah a+=0.4761905 dan berikutnya terkecil norma adalah 0.7302500. (Kebetulan, yang lain ai cenderung sangat dekat dengan1 dalam ukuran.) Jadi kita dapat mendekati nilai sebelumnya sebagai

e10000002×1066+1+0.4761905=285714.761905

dengan kesalahan pada urutan 0.730250010610314368.


Untuk menunjukkan seberapa praktis solusi ini, berikut ini adalah Rkode yang mengembalikan fungsi untuk mengevaluasi ek untuk setiap k (dalam lingkup perhitungan titik mengambang presisi ganda) dan tidak terlalu besar d (itu akan macet sekali d100 ):

die <- function(d, mult=1, cnst=1, start=rep(0,d)) {
  # Create the companion matrix (its eigenvalues are the lambdas).
  X <- matrix(c(0,1,rep(0,d-1)),d,d+1)
  X[, d] <- mult/d
  lambda <- eigen(X[, 1:d], symmetric=FALSE, only.values=TRUE)$values

  # Find the coefficients that agree with the starting values.
  u <- 2*cnst/(d+1)
  a <- solve(t(outer(lambda, 1:d, `^`)), start - u*((1-d):0))

  # This function assumes the starting values are all real numbers.
  f <- Vectorize(function(i) Re(sum(a * lambda ^ (i+d))) + u*i)

  list(f=f, lambda=lambda, a=a, multiplier=mult, offset=cnst)
}

Sebagai contoh penggunaannya, ini menghitung ekspektasi untuk k=1,2,,16:

round(die(6)$f(1:10), 3)

1.000 1.167 1.361 1.588 1.853 2.161 2.522 2.775 3.043 3.324 3.613 3.906 4.197 4.476 4.760 5.046

Objek itu kembali meliputi akar λi dan pengganda mereka ai untuk analisa lebih lanjut. Komponen pertama dari array pengganda adalah koefisien yang berguna a+.

(Jika Anda ingin tahu untuk apa parameter lainnya die, jalankan die(2, 2, 0, c(1,0))$f(1:10)dan lihat apakah Anda mengenali output ;-). Generalisasi ini membantu dalam mengembangkan dan menguji fungsi.)

whuber
sumber
+1. Fungsi diememberikan kesalahan bagi saya: object 'phi' not found.
COOLSerdash
1
@COOL Terima kasih telah memeriksa. Perubahan menit-menit terakhir dari nama variabel (dari phike a) untuk mencocokkan teks adalah biang keladinya. Saya telah memperbaiki (dan memeriksanya).
Whuber
1

tidak ada cara untuk mendapatkan jumlah gulungan yang diharapkan secara umum, tetapi untuk K.

Misalkan N adalah acara rolling yang diharapkan untuk mendapatkan jumlah => K.

untuk K = 1, E (N) = 1

untuk K = 2, E(N)=(56+21)/(56+1)=1711

dan seterusnya.

Akan sulit untuk mendapatkan E (N) untuk K. besar misalnya, untuk K = 20 Anda harus mengharapkan dari (4 gulungan, 20 gulungan)

K(Skamum) fHaillHaiws N(3.5N,35N12)

K-3.5N35N12=Zα
α=1-cHainfsayadenceZ0,01=2.31,Z0,001=2.98

Anda tahu K, Z (pada kesalahan apa pun) ........ maka Anda bisa mendapatkan N = E (N) pada tingkat kepercayaan% dengan menyelesaikan persamaan.

Hemant Rupani
sumber
2
Bagaimana Anda menghitung probabilitas itu? Bagaimana Anda sampai pada persamaan E (N) itu?
Dugaan Biasa
@UsualSuspect P (Jumlah> = 2 dalam 1 gulungan) = 5/6 (Anda tahu) P (Jumlah> = 2 dalam 2 gulungan) = 1 (karena Anda harus mendapatkan jumlah setidaknya 2 dari 2 gulungan) dan untuk E (N ) ......... itu hanya rata
Hemant Rupani
Maaf saya tidak menyebutkan. Ini tidak minimal, tepatnya 2 gulungan. Saya mengerti persamaan E (N) sekarang.
Tersangka Biasa
@UsualSuspect ohh! omong-omong jika Anda membutuhkan E (N) untuk K tertentu, maka saya bisa membuatnya :).
Hemant Rupani
saya perlu untuk k = 20 dan k = 10.000. Lebih baik jika Anda menjelaskan kepada saya daripada langsung memberikan jawaban.
Tersangka Biasa
0

XsayasayaNk

P(Nn)=P(X1+X2++Xnk)
NXsayasaya=1,2,...,nnn

Xsaya

M.(T)=EetXsaya=16(et+e2t+e3t+e4t+e5t+e6t)
n
Kn(t)=nlHaig(16saya=16esayat)
K

 DD <- function(expr, name, order = 1) {
        if(order < 1) stop("'order' must be >= 1")
        if(order == 1) D(expr, name)
        else DD(D(expr, name), name, order - 1)
     }

make_cumgenfun  <-  function() {
    fun0  <-  function(n, t) n*log(mean(exp((1:6)*t)))
    fun1  <-  function(n, t) {}
    fun2  <-  function(n, t) {}
    fun3  <-  function(n, t) {}
    d1  <-  DD(expression(n*log((1/6)*(exp(t)+exp(2*t)+exp(3*t)+exp(4*t)+exp(5*t)+exp(6*t)))),  "t", 1)
    d2  <-  DD(expression(n*log((1/6)*(exp(t)+exp(2*t)+exp(3*t)+exp(4*t)+exp(5*t)+exp(6*t)))),  "t", 2)
    d3  <-  DD(expression(n*log((1/6)*(exp(t)+exp(2*t)+exp(3*t)+exp(4*t)+exp(5*t)+exp(6*t)))),  "t", 3)
    body(fun1)  <-  d1
    body(fun2)  <-  d2
    body(fun3)  <-  d3
    return(list(fun0,  fun1,  fun2,  fun3))
}

Selanjutnya, kita harus menyelesaikan persamaan saddlepoint.

Itu dilakukan oleh kode berikut:

funlist  <-  make_cumgenfun()

# To solve the saddlepoint equation for n,  k:
solve_speq  <-   function(n, k)  {# note that n+1 <= k <= 6n is needed
    Kd  <-  function(t) funlist[[2]](n, t)
    k  <-  k-0.5
    uniroot(function(s) Kd(s)-k,  lower=-100,  upper=1,  extendInt="upX")$root
}

k

Fungsi untuk mengembalikan probabilitas ekor:

#

Ghelp  <-  function(n, k) {
    stilde  <-  solve_speq(n, k)
    K  <-  function(t) funlist[[1]](n, t)
    Kd <-  function(t) funlist[[2]](n, t)
    Kdd <- function(t) funlist[[3]](n, t)
    Kddd <- function(t) funlist[[4]](n, t)
    w2tilde  <-  sign(stilde)*sqrt(2*(stilde*(k-0.5)-K(stilde)))  
    u2tilde  <-  2*sinh(stilde/2)*sqrt(Kdd(stilde))
    mu  <-  Kd(0)
    result  <- if (abs(mu-(k-0.5)) <= 0.001) 0.5-Kddd(0)/(6*sqrt(2*pi)*Kdd(0)^(3/2))  else
    1-pnorm(w2tilde)-dnorm(w2tilde)*(1/w2tilde - 1/u2tilde)
    return(result)
}
G  <- function(n, k) {
      fun  <- function(k) Ghelp(n, k)
      Vectorize(fun)(k)
  }

P(Nn)=P(X1+X2++Xnk)=1-P(X1++Xnk+1)=1-G(n,k+1)
G

K=20n=20

N19

> 1-G(20, 21)
[1] 2.220446e-16

N10

> 1-G(10, 21)
[1] 0.002880649

Dan seterusnya. Dengan menggunakan semua ini, Anda bisa mendapatkan perkiraan untuk ekspektasi sendiri. Ini harus jauh lebih baik daripada perkiraan berdasarkan teorema limit pusat.

kjetil b halvorsen
sumber