アプリ版:「スタンプのみでお礼する」機能のリリースについて

サイコロをn回振るとき、出なかった目の個数の期待値を求めよ。

という問題なのですが、答えが妙に綺麗な値になるのが何故なのか気になっています。
うまく考えると目から鱗の解法があるのでしょうか?


参考
https://oshiete.goo.ne.jp/qa/7230492.html

A 回答 (13件中1~10件)

出なかった目の個数を Tₙ = m - Sₙ とおいた場合



E[Tₙ₊₁] = E[m - Sₙ₊₁]
= E[m - Sₙ - Xₙ₊₁]
= E[m - Sₙ] - E[Xₙ₊₁]
= E[Tₙ] - E[E[Xₙ₊₁|Tₙ]]
= E[Tₙ] - E[0×(m - Tₙ)/m + 1×Tₙ/m]
= (1 - 1/m)E[Tₙ]

となります。
こちらの方が分りやすいですね。
    • good
    • 0
この回答へのお礼

解決しました

ありがとうございました。

お礼日時:2022/03/04 17:23

前夜走らせておいたシミュレーションが完了したので、図を載せます。



n=50までしかやっていないけど、完全に#6さんによるプロット(赤点)上にシミュレーション結果(青点)が上書きされています。

私の考え方は、ダメだと分かりました。
2投のも、私の示した解は間違っています。降参です。
では、出社します。行ってきます。
「サイコロをn回振るとき、出なかった目の個」の回答画像12
    • good
    • 0

プログラムを見直しました。


添付図の赤い点は#6さんの式によるプロットです。
乖離が大きいあたりを狙って、明日、モンテカルロ・シミュレーションで強引に数字出してみます。
100投もすれば、ほぼ6つとも目が出るだろうから、赤い線が正しい気がするが、2投の矛盾が気になっています。

# サイコロをn回振った時、出ない目の個数の期待値

expectation <-NULL

for(n in 1:1000){

# 度数表を作る

table <- NULL

for(i in 1:ifelse(n < 6, n, 6)){

nn <- n - 1 # 区切りの可能数
count <- choose(6, i) * choose(nn, (i - 1)) # 区切りを入れる数

table <- rbind(table, data.frame(i = i, count = count))

}

# 度数表から期待値を算出する

table$ratio <- table$count / sum(table$count)
expectation[n] <- 6 - sum(table$i * table$ratio)

}

plot(1:1000, expectation, xlab = c("n"), main = c("サイコロをn回振っても出ない目の数の期待値"))

points(1:1000, 6 * (1 - 1/6)^(1:1000), pch = 20, cex = 0.7, col = 2)
「サイコロをn回振るとき、出なかった目の個」の回答画像11
    • good
    • 0

悩ましいです。



2投する場合

出る目が1個のとき、出ない目は5個
(1,1),(2,2),(3,3),(4,4),(5,5),(6,6)
の6とおり
出る目が2個のとき、出ない目は4個
(1,2),(1,3),(1,4),(1,5),(1,6),
(2,3),(2,4),(2,5),(2,6),
(3,4),(3,5),(3,6),
(4,5),(4,6),
(5,6),
の15とおり

期待値は、
(5 * 6 + 4 * 15) / 21 = 4.285714

6 * (1 - 1/6)^2 = 4.166667

矛盾する。何を勘違いしているのだろうか?
    • good
    • 0
この回答へのお礼

Thank you

(5 * 6 + 4 * 30) / 36

ですね。

お礼日時:2022/02/24 11:56

#6さんの回答を読んで、私がやり直すまでもないことが良く分かりました。

    • good
    • 0

いやいや、私、間違えてますわ。



すみません。やり直します。
でも、明日の勤務に差し支えるので、明晩、取り組みます。

間違いは、ゾロ目を取り除くのを忘れている点です。

本当に、申しわけないです。
    • good
    • 0

参考とされた質問が間違っていると思います。


以下、検算の結果です。

4回の投賽における出目のパターンは

1個 6C1 × (1+4-1)C4 = __6 とおり(以下略)
2個 6C2 × (2+4-1)C4 = _75
3個 6C3 × (3+4-1)C4 = 300
4個 6C4 × (4+4-1)C4 = 525
_______________________906

個数の期待値を計算すると
1 × __6 = ___6
2 × _75 = _150
3 × 300 = _900
4 × 525 = 2100
___________3156

6 - 3156 / 906
= 6 - 526 / 151
= 2.516556

どこか、間違えていますでしょうか?
    • good
    • 0

そうですね。


何故と言われると答えられませんが、単純な式になります。

一般化して、1~m の目が 1/m の確率ででるサイコロを n 回投げるとき、でなかった目の個数の期待値を求めてみます。
出た目の個数と出なかった目の個数の和は m であることから、それぞれの期待値の和も m となるので、出た目の個数の期待をまず求めます。

Xₖ を k 回目にそれまでに出ていなかった目が出たときに1、それまでと同じ目が出たときに0となる確率変数とすると、
S[n] = Σ_{k = 1 to n] Xₖ
が n 回振った時出た目の個数となります。

E[Sₙ₊₁] = E[Sₙ + Xₙ₊₁]
= E[Sₙ] + E[Xₙ₊₁]
= E[Sₙ] + E[E[Xₙ₊₁|Sₙ]]
= E[Sₙ] + E[0×Sₙ/m + 1×(m - Sₙ)/m]
= (1 - 1/m)E[Sₙ] + 1

漸化式を解くと

E[Sₙ] = m + (1 - 1/m)ⁿ⁻¹(E[S₁] - m)

S₁ = X₁ = 1 より

E[Sₙ] = m + (1 - 1/m)ⁿ⁻¹(1 - m)
= m - m(1 - 1/m)ⁿ

以上より、求める期待値は
m - E[Sₙ] = m(1 - 1/m)ⁿ
となります。

ちなみに、m = 6, n = 4 のときは
6×(1 - 1/6)⁴ = 625/216
となります。
    • good
    • 1
この回答へのお礼

ありがとう

なるほど…。

ということは、k回振って出なかった目の個数の期待値をe[k]とおくと、
e[k+1]
= e[k]+ 0*(6-e[k])/6 - 1*e[k]/6
=(5/6)e[k]
と直接漸化式を立ててもいいのでしょうか?

これが許されるなら私の疑問にかなり完全な形で答えられていることになるような気がするのですが…。

お礼日時:2022/02/24 11:17

#4です。



先のコメントに示された値も、こちらの計算結果と微妙に異なるので、こちらの計算結果が間違いではないか、確認中です。

> 6-671/216
[1] 2.893519
> expectation[4]
[1] 2.516556

下が、当方の計算結果です。
    • good
    • 0
この回答へのお礼

うーん・・・

おそらく、私が間違っている可能性はかなり低いと思います。
6面体のサイコロだけでなく、4面体のサイコロでも考えてみたところ、同様に単純な等比数列の形として書けることが分かりましたので。

ただ、なぜこのような綺麗な結果になるのかが分からない。

お礼日時:2022/02/23 23:14

>他のnでも同様に書けます。



それを示して頂ければ、こちらの計算結果と突き合わせして確認できるのですが、如何でしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!