カードが被らない確率
問題:
110枚のカードが (19,26,26,17,14,8) という枚数ごとに、種類に分けられているとする(たとえば、赤19枚、青26枚…のように考えてください)。
このカードをよくシャッフルして、上から4枚めくるとき、カードが4種類全て違うものになる、確率はどれくらいか。
一応サンファンの話題。このゲームには「金鉱掘り」というカードがあって、これが建っていると、他人が「採掘」行動をしたとき、おこぼれでカードが貰えるようになっている。貰える条件というのが、上に書いたように、「山札から4枚連続でめくって、その額面コストが全部違う場合」ということになってるわけだ。つまりそこだけ運試し。で、それはどれくらいの運試しなのだろう、ということ。
出るときはどんどん出るし、出ないときは出ない(当たり前だ)。前から仲間内で話題にはしていたのだが、やはり気になる人は他にもいるらしく、今日見た、サンファンの情報をまとめてられるページにもコスト対効果のことが書かれてあった。
http://www15.ocn.ne.jp/~sirou/Boardgame/03/sanjuan/index.html
1%以下というのは「うそぉ?」だったので、頭の体操がてらperlで計算してみた。書き方考え方その他違ってるかも…。
@arr_cards = (19,26,26,17,14,8); # かぶってはいけない種類ごとの枚数 $allcards = 110; # 全カード枚数 $initdepth = 4; # 何枚めくるか print &drawpile($allcards,$initdepth,@arr_cards) . "\n"; sub drawpile{ my($allcards , $depth , @restarr) = @_; my $allRatio = 0; my $currRatio = 0; my $restRatio = 0; my $i; $depth--; for ($i = 0 ; $i <= $#restarr ; $i++){ $currRatio = $restarr[$i] / $allcards; if ($depth > 0){ @newarr = @restarr; splice(@newarr , $i , 1); $allcards--; $restRatio = &drawpile($allcards , $depth , @newarr); $currRatio *= $restRatio; } $allRatio += $currRatio; } return($allRatio); }
こたえ、0.294872453182322。
…えっ、3割? 絶対嘘だ。