L - Inconvenient Dice
問題文
ストーリー
けむにくくんは $N$ 面サイコロを一つ持っています。これを使って $M$ 面サイコロを再現するとき、
サイコロを振る回数の期待値は最小でどのくらいでしょうか?
問題文
$1, 2, \ldots, N$ の目がそれぞれ確率 $\frac{1}{N}$ で出る $N$ 面サイコロがあります。
あなたは、このサイコロを用いて次の操作を行います。
- サイコロを $1$ 回振る。
- これまでに出た目の列のみに基づいて、次のいずれかを行う。
- $1, 2, \ldots, M$ のいずれか $1$ つを出力し、操作を終了する。
- 手順 1 に戻る。
各時点での行動は、それまでに出た目の列のみから決定されるものとし、操作を始める前にあらかじめ定めておきます。
このような操作方法のうち、以下の条件をともに満たすものを 公平な操作方法 と呼びます。
- 確率 $1$ で、有限回の試行によって操作が終了する。
- 各 $i=1,2,\ldots,M$ について、有限回のうちに $i$ を出力して終了する確率が $\frac{1}{M}$ である。
公平な操作方法について、操作が終了するまでにサイコロを振る回数を $T$ とします。
公平な操作方法の中での $T$ の期待値 $\mathbb{E}[T]$ の最小値を求めてください。
なお、制約のもとで公平な操作方法は必ず存在し、また $\mathbb{E}[T]$ の最小値は有限であることが証明できます。
制約
- $2 \leq N \leq 10^{6}$
- $2 \leq M \leq 10^{6}$
- 入力される値はすべて整数である。
部分点
- $M = 2$ を満たすデータセットに正解した場合は $50$ 点が与えられる。
入力
入力は以下の形式で標準入力から与えられる。
$N$ $M$
出力
公平な操作方法における $\mathbb{E}[T]$ の最小値を、既約分数 $\frac{A}{B}$ で表す。
このとき、$A B^{-1}$ を $10^9+7$ で割った余りを出力せよ。
ここで、$B^{-1}$ は $B B^{-1}\equiv 1\pmod {10^9+7}$ を満たす整数を表す。
なお、制約のもとで $B$ が $10^9+7$ の倍数にならないことが証明できる。
2 4
2
$2$ 面サイコロで $4$ 面サイコロを再現するには、
サイコロを2回振って以下のように割り当てればよいです。
- 出目の列が $(1, 1)$ であった場合、$1$ を出力して終了する。
- 出目の列が $(1, 2)$ であった場合、$2$ を出力して終了する。
- 出目の列が $(2, 1)$ であった場合、$3$ を出力して終了する。
- 出目の列が $(2, 2)$ であった場合、$4$ を出力して終了する。
このときサイコロを降る回数の期待値は $2$ 回で、これが最小であることが示せます。
3 2
500000005
以下のような戦略を取るのが最適です。
サイコロを振るたびに以下のように行動する。
- $1$ がでた場合:$1$ を出力して終了する。
- $2$ がでた場合:$2$ を出力して終了する。
- $3$ がでた場合:もう一度サイコロを振る。
このとき、サイコロを $k$ 回以上振る確率は $\lim_{k \rightarrow \infty}$ で $0$ に漸近するため、有限回で試行が終了する確率は $1$ であり、これは問題文の条件を満たす公平な操作方法です。
このときの操作回数の期待値は $\frac{3}{2}$ 回でこれが最小です。
158 253
582757307