問題文
Pólyaは再び骨withで遊んでおり、いくつかの確率を計算するのを手伝ってほしいと望んでいます。
この骨experimentの実験では、ポリヤには最初に赤と青のビーズが1つ入った骨urがあります。
反復ごとに、彼はビーズに手を伸ばしてビーズを取り出し、色を調べてビーズを骨urに戻します。
彼はフェアコインを裏返します。コインが頭に着地した場合、彼は同じ色のビーズの公平な6面のダイスロール量を骨nに挿入し、尾に着いた場合、彼は同じ色のビーズの半分の数を骨nから取り除きます(整数除算の使用-選択した色のビーズの数が奇数の(c-1)/2
場合、cはその色のビーズの数を削除します)
整数n≥0および小数r> 0の場合、n回の反復後のビーズの色の比率が最短バイト数でr以上になる確率を小数第2位まで与えます。
反復のサンプルセット:
(x、y)に、x個の赤いビーズとy個の青いビーズが含まれるように骨nを定義させます。
Iteration Urn Ratio
0 (1,1) 1
1 (5,1) 5 //Red bead retrieved, coin flip heads, die roll 4
2 (5,1) 5 //Blue bead retrieved, coin flip tails
3 (3,1) 3 //Red bead retrieved, coin flip tails
4 (3,4) 1.333... //Blue bead retrieved, coin flip heads, die roll 3
ご覧のように、比率rは常に≥1です(したがって、赤または青の大きい方を小さい方で割った値です)
テストケース:
F(n、r)が、n回の反復とrの比率に対する関数の適用を定義するようにします
F(0,5) = 0.00
F(1,2) = 0.50
F(1,3) = 0.42
F(5,5) = 0.28
F(10,4) = 0.31
F(40,6.25) = 0.14
これはコードゴルフであるため、バイト単位の最短のソリューションが優先されます。
そこに...このための式であるような気がします
—
無知の実施の形態
多分ベータ二項式を行うには、それが出ていることを書き込みに長いかもしれない何か
—
期限切れのデータ
言語に依存します。RとMathematicaはそれを効率的に行えるかもしれません。
—
ジュゼッペ