難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Mana Deal

作成者 cirno3153

テスター wasd314

難易度(作成者設定) Lv.8

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
315 MiB

解説

S=r+1S=r+1 とし、hh は 2h≡−1(modS)2^h\equiv-1\pmod S を満たす最小の正整数とする。
この時、 prp_r は以下のように表せる。

pr={12S=2,S4S−2S>2 が2の冪,14+2h8(22h−1)S が奇数で h が存在,14その他.p_r= \begin{cases} \dfrac12 & S=2,\\ \dfrac{S}{4S-2} & S>2\text{ が2の冪},\\ \dfrac14+\dfrac{2^h}{8(2^{2h}-1)} & S\text{ が奇数で }h\text{ が存在},\\ \dfrac14 & \text{その他}. \end{cases}

長い解説

魔法を放った後のMPが相手より多いことを勝ちとする。
魔法を放たなかった側が必ず勝つため、求める確率 prp_r は、Bobが先に r+12r+\frac12 MP以上を持つ確率である。

BobのMPを状態にする

rr を固定し、S=r+1S=r+1 とおく。魔法を放つ前の二人のMPの合計は常に SS なので、BobのMPを xx とすれば、AliceのMPは S−xS-x と決まる。

この状態からAliceが勝つ確率、すなわちBobが先に S−12S-\frac12 MP以上を持つ確率を F(x)F(x) とする。最初のBobのMPは1なので、求める確率は pr=F(1)p_r=F(1) である。

すでにゲームが終了している状態では、

F(x)=0(0≤x≤12),F(x)=1(S−12≤x≤S).F(x)=0\quad\left(0\le x\le\frac12\right),\qquad F(x)=1\quad\left(S-\frac12\le x\le S\right).

まだ終了していない状態では、次のじゃんけんについて場合分けする。

  • Bobがじゃんけんに負けると、自分のMPの半分を渡すため、BobのMPは x/2x/2 になる。
  • Bobがじゃんけんに勝つと、AliceのMPの半分を受け取るため、BobのMPは x+(S−x)/2=(S+x)/2x+(S-x)/2=(S+x)/2 になる。

それぞれの確率は 1/21/2 なので、

F(x)=12F ⁣(x2)+12F ⁣(S+x2)(12<x<S−12).F(x)=\frac12F\!\left(\frac{x}{2}\right) +\frac12F\!\left(\frac{S+x}{2}\right) \qquad\left(\frac12<x<S-\frac12\right).

特に F(1/2)=0F(1/2)=0 なので、

pr=F(1)=12F ⁣(S+12).p_r=F(1)=\frac12F\!\left(\frac{S+1}{2}\right).


二人を入れ替えたときの対称性

二人の名前を入れ替えてもルールは変わらないので、BobのMPがxxの状態でAliceが先に魔法を放つ確率はF(S−x)F(S-x)である。確率1でどちらかが魔法を放つことと合わせると、

F(x)+F(S−x)=1.F(x)+F(S-x)=1.

特に、x=(S+1)/2x=(S+1)/2とすると、

F ⁣(S+12)+F ⁣(S−12)=1.F\!\left(\frac{S+1}{2}\right) +F\!\left(\frac{S-1}{2}\right)=1.

よって、先ほどのpr=12F((S+1)/2)p_r=\frac12F((S+1)/2)は、

pr=14+14{F ⁣(S+12)−F ⁣(S−12)}p_r=\frac14+\frac14\left\{ F\!\left(\frac{S+1}{2}\right) -F\!\left(\frac{S-1}{2}\right) \right\}

と書き直せる。あとは、Bobの最初のMPが(S−1)/2(S-1)/2の場合と(S+1)/2(S+1)/2の場合で、Aliceが勝つ確率がどれだけ違うかを求めればよい。

同じじゃんけんの勝敗列で二つのゲームを比べる

S=2S=2では対称性からp1=1/2p_1=1/2なので、以下ではS≥3S\ge3とする。

Bobの初期MPが(S−1)/2(S-1)/2のゲームと(S+1)/2(S+1)/2のゲームを、同じじゃんけんの勝敗列で進める。どちらの更新もMPの大小関係を保つので、Bobの初期MPが少ないゲームでAliceが勝つなら、多いゲームでもAliceが勝つ。したがって、

F ⁣(S+12)−F ⁣(S−12)F\!\left(\frac{S+1}{2}\right) -F\!\left(\frac{S-1}{2}\right)

は、この二つのゲームで最終的な勝者が異なる確率に等しい。

両方のゲームが続いている間、MPの差は毎ターン半分になる。さらに、ttターンの譲渡を行った直後の二つのMPは、ある正の奇数qqを使って

Lt=qS−12t+1,Ut=qS+12t+1L_t=\frac{qS-1}{2^{t+1}},\qquad U_t=\frac{qS+1}{2^{t+1}}

と表せる。これはt=0t=0ではq=1q=1であり、Bobがじゃんけんに負ければqqは変わらず、じゃんけんに勝てばqqに2t+12^{t+1}が加わることから分かる。

勝者が異なるためには、まず一方だけが終了するターンが必要である。BobのMPが少ないゲームだけがBobの勝ちで終了するとき、

Lt≤12<Ut⟺qS−1≤2t<qS+1.L_t\le\frac12<U_t \quad\Longleftrightarrow\quad qS-1\le2^t<qS+1.

各値は整数なので、これは

2t=qS−1または2t=qS2^t=qS-1\quad\text{または}\quad2^t=qS

を意味する。BobのMPが多いゲームだけがAliceの勝ちで終了する場合も、二人を入れ替えれば同じ条件になる。この場合の奇数はqqの代わりに2t+1−q2^{t+1}-qである。

ここでSSが偶数なら、t≥1t\ge1に対してqS−1qS-1は奇数なので2t=qS−12^t=qS-1は成立しない。また、qqは正の奇数なので、2t=qS2^t=qSが成立するのはq=1q=1かつS=2tS=2^tの場合だけである。

よって、SSが偶数で2の冪でない場合、二つのゲームの勝者は一致し、pr=1/4p_r=1/4である。

SSが奇数の場合の必要条件

S≥3S\ge3が奇数なら2t=qS2^t=qSは成立しないので、一方だけが終了し得るターンは

2t≡−1(modS)2^t\equiv-1\pmod S

を満たすものに限られる。このようなttが存在しなければ、二つのゲームの勝者は一致し、pr=1/4p_r=1/4である。

この条件を判定するため、2d≡1(modS)2^d\equiv1\pmod Sを満たす最小の正整数ddを考える。

2t≡−1(modS)2^t\equiv-1\pmod Sを満たすttがあるなら、ttをddで割った余りuuも同じ合同式を満たす。0<u<d0<u<dかつ22u≡1(modS)2^{2u}\equiv1\pmod Sよりd∣2ud\mid2uなので、2u=d2u=dである。したがって、そのようなttが存在する条件は

dが偶数、かつ 2d/2≡−1(modS)d\text{が偶数、かつ }2^{d/2}\equiv-1\pmod S

である。 したがって、ddが奇数の場合、またはddが偶数でも2d/2≢−1(modS)2^{d/2}\not\equiv-1\pmod Sの場合は、pr=1/4p_r=1/4と確定する。

実際にddを求めるには、オイラーの定理からd∣φ(S)d\mid\varphi(S)となることを使う。 まず候補をD=φ(S)D=\varphi(S)とし、φ(S)\varphi(S)の各素因数ℓ\ellについて、ℓ∣D\ell\mid Dかつ2D/ℓ≡1(modS)2^{D/\ell}\equiv1\pmod Sである間、DDをD/ℓD/\ellに置き換える。最後に残ったDDがddになる。

求めたddが奇数なら、pr=1/4p_r=1/4と確定する。ddが偶数なら、同じ剰余累乗の方法でv=2d/2 mod Sv=2^{d/2}\bmod Sを計算し、v≠S−1v\ne S-1ならpr=1/4p_r=1/4と確定する。

残るのは、ddが偶数かつ2d/2≡−1(modS)2^{d/2}\equiv-1\pmod Sの場合である。h=d/2h=d/2とおくと、該当するターンは

t=h, 3h, 5h, …t=h,\ 3h,\ 5h,\ \ldots

に限られる。

整数の間ではF(x)F(x)は一定

じゃんけんの勝敗列を固定する。Bobの初期MPをxxとすると、t≥1t\ge1ターンの譲渡後のMPは、整数KKを使って

x+KS2t\frac{x+KS}{2^t}

と表せる。この時点での終了条件をxxについて書くと、

x≤2t−1−KSまたはx≥2tS−2t−1−KSx\le2^{t-1}-KS \quad\text{または}\quad x\ge2^tS-2^{t-1}-KS

となり、どちらの境界も整数である。したがって、まだ終了していない初期状態同士でxxが同じ隣接整数間にあれば、終了するターンと勝者は変わらない。よって、F(x)F(x)は各区間(k,k+1)∩(1/2,S−1/2)(k,k+1)\cap(1/2,S-1/2)で一定である。

一方だけが終了した後の確率

SSが奇数のとき、1/2<x<11/2<x<1なら、S/2S/2と(S+x)/2(S+x)/2はともに((S−1)/2,(S+1)/2)((S-1)/2,(S+1)/2)内にある。上の性質と対称性から、

F ⁣(S+x2)=F ⁣(S2)=12.F\!\left(\frac{S+x}{2}\right)=F\!\left(\frac S2\right)=\frac12.

また、F(x/2)=0F(x/2)=0なので、

F(x)=14(12<x<1).F(x)=\frac14\qquad\left(\frac12<x<1\right).

このF(x)=1/4F(x)=1/4を、二つのゲームの比較に使う。t≥2t\ge2ターン目に、BobのMPが小さいゲームだけが初めて終了したとする。SSが奇数なので、その条件は2t=qS−12^t=qS-1であり、二つのMPの式に代入すると、

Lt=qS−12t+1=12,Ut=qS+12t+1=12+2−t.L_t=\frac{qS-1}{2^{t+1}}=\frac12,\qquad U_t=\frac{qS+1}{2^{t+1}}=\frac12+2^{-t}.

BobのMPがLtL_tのゲームでは、AliceのMPがS−1/2S-1/2なので、Aliceが魔法を放ち、Bobが勝つ。

BobのMPがUtU_tのゲームはまだ続いている。1/2<Ut<11/2<U_t<1なので、先ほど求めた式から、この状態からAliceが勝つ確率はF(Ut)=1/4F(U_t)=1/4である。

一つ目のゲームはBobの勝ちで終わっているため、二つ目でAliceが勝つ場合にだけ勝者が異なる。よって、この状態から二つのゲームの勝者が異なる確率は1/41/4である。BobのMPが大きいゲームだけが先に終了した場合も、対称性から同じ確率になる。

各ターンで一方だけが終了する確率

まずS≥5S\ge5とし、2h≡−1(modS)2^h\equiv-1\pmod Sを満たす最小の正整数hhがある場合を考える。このときh≥2h\ge2である。

iiターン目にBobがじゃんけんに勝つときbi=1b_i=1、負けるときbi=0b_i=0とすると、ttターン分の譲渡の式に現れるqqは

q=1+∑i=1tbi2iq=1+\sum_{i=1}^{t}b_i2^i

である。したがって、11以上2t+1−12^{t+1}-1以下の奇数qqと、長さttのじゃんけんの勝敗列は一対一に対応する。

候補ターンt=h,3h,5h,…t=h,3h,5h,\ldotsを固定する。BobのMPが小さいゲームだけが終了する条件は

q=2t+1Sq=\frac{2^t+1}{S}

である。この値は上の範囲内の奇数なので、対応する勝敗列はちょうど一つある。

この列では、途中でどちらのゲームも終了していない。実際、Lt=1/2L_t=1/2から譲渡を逆にたどると、直前のMPは現在のMPの2倍、またはそこからSSを引いた値なので、1≤s<t1\le s<tにおけるLsL_sは整数になる。譲渡の式はMPを(0,S)(0,S)内に保つため、1≤Ls≤S−11\le L_s\le S-1である。s≥2s\ge2ならUs=Ls+2−sU_s=L_s+2^{-s}も1/2<Us<S−1/21/2<U_s<S-1/2を満たす。初手についても、S≥5S\ge5なら

L1≥S−14>12,U1≤3S+14<S−12L_1\ge\frac{S-1}{4}>\frac12,\qquad U_1\le\frac{3S+1}{4}<S-\frac12

なので、両方ともゲームが続く。

よって、この勝敗列が起こる確率2−t2^{-t}が、そのままttターン目に初めてBobのMPが小さいゲームだけが終了する確率になる。大きいゲームだけが終了する確率も同じなので、ttターン目に初めて一方だけが終了する確率は2⋅2−t2\cdot2^{-t}である。

その後に二つのゲームの勝者が異なる確率は1/41/4だった。初めて一方だけが終了するターンは一つに定まるため、各ターンの寄与を足し合わせることができ、

F ⁣(S+12)−F ⁣(S−12)=∑j=0∞2⋅2−(2j+1)h⋅14=2−h2(1−2−2h)=2h−122h−1.\begin{aligned} F\!\left(\frac{S+1}{2}\right)-F\!\left(\frac{S-1}{2}\right) &=\sum_{j=0}^{\infty}2\cdot2^{-(2j+1)h}\cdot\frac14\\ &=\frac{2^{-h}}{2(1-2^{-2h})} =\frac{2^{h-1}}{2^{2h}-1}. \end{aligned}

これをprp_rの式に代入すると、

pr=14+2h8(22h−1).p_r=\frac14+\frac{2^h}{8(2^{2h}-1)}.

S=3S=3では、F(1)=F(2)/2F(1)=F(2)/2とF(1)+F(2)=1F(1)+F(2)=1からp2=F(1)=1/3p_2=F(1)=1/3である。これは上の式にh=1h=1を代入した値と一致するため、同じ式で計算できる。

SSが2の冪の場合

S=2m≥4S=2^m\ge4とする。一方だけが終了する条件2t=qS2^t=qSは、qqが奇数なのでt=mt=m、q=1q=1のときだけ成立する。

q=1q=1に対応するのは、Bobが最初からmm回連続でじゃんけんに負ける列である。途中のs<ms<mでは

Ls=S−12s+1≥S−1S>12L_s=\frac{S-1}{2^{s+1}}\ge\frac{S-1}{S}>\frac12

であり、UsU_sも減少し続けるので、両方のゲームがmmターン目まで続く。対称な場合は、Bobが最初からmm回連続でじゃんけんに勝つ列である。したがって、一方だけが終了する確率は2⋅2−m=2/S2\cdot2^{-m}=2/Sである。

Bobがmm回連続でじゃんけんに負けた場合、その時点のMPは

Lm=12−12S,Um=12+12S.L_m=\frac12-\frac1{2S},\qquad U_m=\frac12+\frac1{2S}.

BobのMPがLmL_mのゲームではAliceが魔法を放ち、Bobが勝つ。二つのゲームの勝者が異なる確率は、残ったゲームでAliceが勝つ確率F(Um)F(U_m)である。

ここではF(Um)=F(1)=prF(U_m)=F(1)=p_rとなる。実際、偶数S≥4S\ge4では、初期MPが1/2<x≤11/2<x\le1なら、初手でBobがじゃんけんに負けると終了し、勝つと継続する。また、2ターン目以降の終了条件の境界2t−1−KS2^{t-1}-KS、2tS−2t−1−KS2^tS-2^{t-1}-KSはすべて偶数なので、この範囲で初期MPを変えても終了するターンと勝者は変わらない。したがって、F(x)=F(1)F(x)=F(1)は端点x=1x=1を含むこの範囲全体で成立する。

対称な場合も勝者が異なる確率はprp_rなので、

F ⁣(S+12)−F ⁣(S−12)=2Spr.F\!\left(\frac{S+1}{2}\right)-F\!\left(\frac{S-1}{2}\right) =\frac2S p_r.

これをprp_rの式に代入して解くと、

pr=14+14⋅2Spr⟹pr=S4S−2.p_r=\frac14+\frac14\cdot\frac2S p_r \quad\Longrightarrow\quad p_r=\frac{S}{4S-2}.

ユーザー解説

ユーザー解説を書く

ユーザー解説はまだありません。