予想されるサイコロの数は、合計がK以上になる必要がありますか?


9

6面のサイコロが繰り返しロールされます。合計がK以上になるには、予想されるロールの数はいくつですか?

編集前

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

編集後

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

まずこれが正しいかどうかはわかりませんが、この確率は予想されるロールの数に関連していると思いますか?

しかし、私はさらに進める方法がわかりません。私は正しい方向に進んでいますか?


どうやって手に入れたP(S2 in 2 rolls)
Glen_b-2015

@Glen_b最初のロールで1である2未満の数を取得する必要があります。したがって、1を取得する確率は1/6であり、2番目のロールは任意の数にすることができます。最初のロールで2以上の数値が得られた場合、2番目のロールはありません。
通常の容疑者

1
ああ、何が起こっているのかわかります。あなたはそれを「P(S \ geq 2 in 2 rolls)」とは言いません。この式は、ロールの数が固定されていることを意味します。何が欲しいのは「P(正確に2ロールが取得するために必要なのいずれかである)」または「P(少なくとも2つのロールが取得するために必要なS 2)」。S2S2
Glen_b-2015

@Glen_bうん、混乱だね。P(S> 2を得るには正確に2つのロールが必要)私は推測します。私が最終的に計算したいのは、Kより大きい合計に到達するために予想されるロールの数ですか?
通常の容疑者

@Glen_b私はこの目的のために少なくともまたは正確に使用すべきですか?そして、10000のようなより大きな合計の予想ロール数を計算する方法は?
通常の容疑者

回答:


2

これはこれまでのところ、私の最初の答えと同じ観察に基づいた、より正確な別のアプローチのいくつかのアイデアにすぎません。時間が経つとこれを拡張します...

KNKXiiX(n)=X1++XnX(n)nN

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

X1++Xnn,n+1,n+2,,6nkP(X1++Xn=k)kn1,2,,6

したがって、その組み合わせ論の文献を検索して研究することで、静かで正確な結果を得ることができます。それについてフォローアップしますが、後で...


2

次数6の多項式の根に関する単純な閉じた式があります。

d21,2,,d.

ekk.k0, ek=0.kd,kd+1,,k1,

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

この線形反復関係は、の形式の解を持っています

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

λid

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

ai(2)k=(d1),(d2),,1,0ek=0dd(1)(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.

k,d=6

e1000000=285714.761905

λ+=1kλ+kd(2).k=6,λ+a+=0.47619050.7302500.ai1

e10000002×1066+1+0.4761905=285714.761905

0.730250010610314368.


Rekkdd100

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)
}

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

λiaia+.

(の他のパラメーターのdie目的に興味がある場合は、実行die(2, 2, 0, c(1,0))$f(1:10)して出力を認識できるかどうかを確認してください;-)。この一般化は、関数の開発とテストに役立ちました。)


+1。関数dieは私にエラーを与えます:object 'phi' not found
COOLSerdash

1
@COOLチェックしてくれてありがとう。テキストに一致するように変数名を(からphia)直前に変更したことが原因です。修正(およびチェック)しました。
whuber

1

一般的に、正確な予想ロール数を取得する方法はありませんが、Kの場合です。

sumを期待するローリングのイベントをNとすると、sum => Kになります。

K = 1の場合、E(N)= 1

E(N)=(56+21)/(56+1)=1711

等々。

大きなKのE(N)を取得するのは難しくなります。たとえば、K = 20の場合、(4ロール、20ロール)から期待する必要があります。

K(Sum) follows N(3.5N,35N12)

K3.5N35N12=Zα
α=1confidenceZ0.01=2.31,Z0.001=2.98

あなたはK、Z(どんなエラーでも)を知っています........そして、方程式を解くことにより、ある程度の信頼度でN = E(N)を得ることができます。


2
これらの確率をどのように計算しましたか?どのようにしてE(N)方程式に到達しましたか?
通常の容疑者

@UsualSuspect P(Sum> = 2 in 1 roll)= 5/6(you know)P(Sum> = 2 in 2 rolls)= 1(2のローリングから少なくとも2の合計を取得する必要があるため)およびE(N ).........単なる平均値
Hemant Rupani '13

申し訳ありませんが、言及しました。少なくとも2ロールです。E(N)方程式を理解しました。
通常容疑者

@UsualSuspectおお!ちなみに、特定のKにE(N)が必要な場合は、それを作成できます:)。
Hemant Rupani 2015

k = 20とk = 10000が必要です。率直に答えるのではなく、あなたが私を説明した方がいいです。
通常の容疑者

0

XiiNk

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

Xi

M(T)=EetXi=16(et+e2t+e3t+e4t+e5t+e6t)
n
Kn(t)=nlog(16i=16eit)
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))
}

次に、鞍点方程式を解かなければなりません。

これは、次のコードによって行われます。

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

テール確率を返す関数:

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)=1P(X1++Xnk+1)=1G(n,k+1)
G

K=20n=20

N19

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

N10

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

等々。これらすべてを使用して、期待値の近似値を自分で取得できます。これは、中心極限定理に基づく近似よりもはるかに優れているはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.