「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:2239
現在:4


全種類の品を最低1個は入手している確率の求め方

ページOpenOffice.org FAQの登録ページ
投稿者
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-03-28 10:02:16 (日)
OS
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

ネット上のガチャなどでx回の試行でn種類(既知)のアイテムが全種類揃う確率を
求めたい場合について教えていただきたいのですが

それぞれのアイテムが出る確率は同じではなくそれぞれ、P1〜Pnで既知であり
P1〜Pnの総和は1である場合、x回の試行でn種類全てのアイテムを1個以上
入手している確率はどの関数をどう使えばいいのでしょうか?(x≧nです)


答えは書けませんが…

Y (2010-03-29 00:35:43 (月))

組み合わせ(nCr)は、COMBINという関数があります。また、重複組み合わせ(nHr)はCONBINAです。順列(nPr)はそのものの関数は見つかりませんでしたが、階乗(n!)のFACTという関数があるので、それを使えばいいということでしょう。

で、実際にどう組み合わせるかなのですが…
すみません。もともと確率は不得意な上に、久しくこういう数学の問題はやっていないのでまともに解ける自信がありません。

無題

tani (2010-03-29 09:19:00 (月))

例えば、ある一つのアイテムが0.1の確率で当選する場合、x回の試行で一回でも当たる確率は
1 - (1-0.1)^x
です。(全部はずす確率を求めるのがコツ)
で、上記で求められた確率を全部かけると答えがでるんじゃないでしょうか。

追記:ガチャガチャということは、どれかは絶対あたるということですね。
よく考えたら間違ってる気がしてきました。。。ってやっぱ間違ってますね。正解は↓っぽいです。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1211774567
なんかマクロで仮想ガチャガチャ作った方が早いような気がしてきましたw

無題

tani (2010-03-29 11:22:18 (月))

試しに以下のような仮想ガチャガチャマクロを作ってみましたw
(a, b, c, d がアイテムが出る確率です。)
出てきた結果は何回目に全て揃ったのかの羅列ですので、分析すると色々わかると思います。例えば、平均をとると、だいたい16回目くらいで一個ずつ揃うということになりました。ループ回数を増やすと精度が増すと思います。
参考までに。

Sub Main
 a = 0.1
 b = 0.2
 c = 0.3
 d = 0.4
  
 stest = ""
 counter = 0 
 j = 0
 
 For i = 0 To 10000
   r = Rnd
   Counter = Counter + 1
   If r > d Then
     stest = stest + "d"
   ElseIf r <= d And r > c Then
     stest = stest + "c"
   ElseIf r <= c And r > b Then
     stest = stest + "b"
   Else
     stest = stest + "a"
   End If

   If InStr(stest, "a") <> 0 And InStr(stest, "b") <> 0 And InStr(stest, "c") <> 0 And InStr(stest, "d") <> 0 Then
     j = j + 1
     oCell = ThisComponent.getSheets().getByIndex(0).getCellByPosition(0, j)
     oCell.setValue(Counter)
     Counter = 0
     stest = ""
   End If
 Next i
End Sub

レスありがとうございます

質問者 (2010-03-29 13:22:50 (月))

Y様、tani様、レスありがとうございます

数多くの関数が提供されているので、ひょっとしたらその中に直接問題を
解決できる関数があるのかなと思い上記のような質問をしてしまいました。
(ざっとHelpを見た限りでは理解できなかったもので><)
どうやらそういう都合いいものはないようで、やるならそれなり工夫して
やらねばいけないみたいですね。(それが分かっただけでも進歩です)

tani様が張っていただいたリンク先も目を通しました。
確率が全種類で均等の場合の考え方としてはその通りだと思います。
納得できる内容でした。ありがとうございます。
ただ、やはり求めたいものは、確率が均等ではない場合なので、
確率が異なる場合に拡張させるには、壮大な場合わけが必要に思えました。

仮想ガチャでやってみて、その結果を参考にするという発想は有効な気がします。
わざわざサンプルまでありがとうございます>w<

計算が複雑になりそうでうまく算出できる気がしなくなってきたので
こういった実験結果からのアプローチでもいいような気がしてきました。
サンプルに手を加えて(中身を理解してからですが)試してみたいと
思います。ぺこり

関数について

M.Kamataki (2010-04-05 12:17:48 (月))

今回のご質問のように、アイテムが揃う確率を求める関数はありませんが、x回の試行で成功する確率を求める関数は調べたところ幾つかありました。

完了していますが、付記しておきます。(オンラインヘルプより)

BINOMDIST

二項分布の確率を返します。

構文
BINOMDIST(X; 試行回数; SP; C)

成功数 は、試行が成功する回数です。
試行回数 は、試行する回数です。
確率 は、1 回の試行が成功する確率です。
関数形式 に 0 を指定すると、単一事象の確率、関数形式 に 1 を指定すると、累積確率を計算します。


=BINOMDIST(A1;12;0.5;0) は、(0 から 12 の値が A1 に入力された場合) コインを 12 回ひっくり場合の 表 がちょうど A1 に入力された回数出る確率を示します。
=BINOMDIST(A1;12;0.5;1) は、同じ系列の累積確率を示します。たとえば A1 = 4 の場合、系列の累積確率は、表 が 0、1、2、3、または 4 回です (非排他的論理和)。

HYPGEOMDIST

超幾何分布を返します。

構文
HYPGEOMDIST(X; 標本数; 成功回数; 母集団数)

X は、無作為標本内で成功する数です。
標本数 は、無作為標本の大きさです。
成功回数 は、母集団内で成功する数です。
母集合数 は、母集合全体の大きさです。


=HYPGEOMDIST(2;2;90;100) は、0.81 を返します。バターを塗ったトースト 100 枚のうち 90 枚がテーブルから落ち、バターを塗った面が先に床につく場合、バターを塗ったトースト 2 枚をテーブルから落としたときに両方ともバターを塗った面が先に床につく確率密度は 81% です。

お名前:
題名: