あなたの勤めている会社では新たなカジノゲームの開発をしている.今日は最近提案されたゲームについて考察してみることにした.
このゲームでは N 個のサイコロを同時に振って,出た目の合計が得点となる.プレイヤーは得点を大きくすることを目標としてプレーする.もし出た目が気に入らなければサイコロを振り直すことができるが,その時は N 個のサイコロ全てを同時に振り直さなければならない.また,サイコロを振ることのできる回数は最大で M 回である.十分に大きい目が出たと思ったのであれば,M 回より少ない回数でゲームを終えても良く,最後に振ったサイコロの目の合計が得点となる.
適切な賭け金を設定するためには,得点の期待値を求めなければならない.N と M が与えられた時,最適な戦略をとった場合に得られる得点の期待値を求めるのが今日のあなたの仕事である.
ただし,このゲームで用いるサイコロには 1 から 6 までの目があり,それぞれの目が出る確率は同じである.
入力は最大で 100 個のデータセットからなる.各データセットは次の形式で表される.
N M
整数 N,M は 1 ≤ N ≤ 20,1 ≤ M ≤ 1010 を満たす.
入力の終わりは 2 つのゼロからなる行で表される.
各データセットについて,最適な戦略をとった時の期待値を一行に出力せよ.出力には 10-2 を超える絶対誤差があってはならない.この問題は計算誤差が大きくなる解法が想定されるため,精度のよい型を用いることが推奨される.
1 2 2 1 2 2 0 0
4.25 7 7.9722222222