*[[Problem 470:http://projecteuler.net/problem=470]] 「Super Ramvok」 [#s0ec2527]

Ramvok というゲーム一回分について考えよう:

ゲーム終了までの最大のターン数を '''t''' で表す.~
'''t''' = 0 となった時, ゲームは即座に終了する.~
それ以外の時は, それぞれの '''i''' 回目のターンに, プレイヤーはサイコロを一つ投げる.~
投げたあと, もし '''i''' < '''t''' の時は, プレイヤーはゲームをやめるか, 出たサイコロの目と同額の賞金を受け取るか, 出た目を捨てて次のターンに挑戦することができる.~
もし '''i''' = '''t''' のときは, 出た目を捨てることはできず賞金を受け取らなければならない.~
ゲーム開始前, プレイヤーは '''t''' を選び, ある定数 '''c''' に対して '''ct''' となる前金を支払う必要がある.~
偏りのない '''d''' 面のサイコロとコスト定数 '''c''' が与えられ, Ramvok を最適に行った時に一回のゲームでプレイヤーが受け取ることになる期待利益 (すなわち純利益) を R('''d''', '''c''') としよう.~
例えば, R(4, 0.2) = 2.65 となる.~
プレイヤーはどんな前金でも支払えるだけの十分な資金を持っていると仮定する.

ここで Super Ramvok というゲームを考えよう:

Super Ramvok では, Ramvok を繰り返し行うが, 若干の変更点がある.~
それぞれのゲームのあと, サイコロを変更する.~
変更の手順は次の通り:~
サイコロが投げられるたびに, サイコロの出た目が見えている場合は, 代わりに空白へと変更される.~
もし出た目がすでに空白となっている時は, 元の目へと再び変更される.~
変更が終了し次第, 次の Ramvok ゲームを開始できる (そしてゲームの最中, それぞれのターンで, サイコロは見える目が出るまで投げ続けられる).~
プレイヤーは常にどの目が空白でどの目がそうでないかを把握している.~
サイコロのすべての目が空白になった時点で Super Ramvok のゲームは終了となる.

偏りのない '''d''' 面のサイコロ (開始時はすべての目が見えている) とコスト定数 '''c''' が与えられ, Super Ramvok を最適に行った時に一回のゲームでプレイヤーが受け取ることになる期待利益を S('''d''', '''c''') としよう.~
例えば, S(6, 1) = 208.3 となる.

F('''n''') = ∑&sub{4≤'''d'''≤'''n'''}; ∑&sub{0≤'''c'''≤'''n'''}; S('''d''', '''c''') とする.

F(20) を計算し, 最も近い整数に四捨五入せよ.

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS