不难看出
$$p_m(n)=\frac{1}{2}p_m(n-m+1)+\frac{1}{4}p_m(n-m+2)+\frac{1}{8}p_m(n-m+3)+\ldots$$
若令$q_m(n)=1-p_m(n)$,则也有
$$q_m(n)=\frac{1}{2}q_m(n-m+1)+\frac{1}{4}q_m(n-m+2)+\frac{1}{8}q_m(n-m+3)+\ldots$$
考虑
$$z^m=\sum_{i=0}^{\infty}=\frac{z^{2^i}}{2^{i+1}}$$
在单位区间内的解,游戏结束时张三有$n$元的情况用$z^n$表示,若游戏永远不会结束,则用$0$表示,则需要
$$(1-p_m(s))z^{m-1}\le z^s\le 1-p_m(s).$$
二分求解即可得结果$0.8660312$。
注:为方便格式化输出,以下代码为Python 3。
n=15
s=10**9
a,b,d=0,1,0
while b-a!=d:
d=b-a
c=(a+b)/2
m=-1
x=1
y=c**(x-n)/x/2
while y:
m+=y
x*=2
y=c**(x-n)/x/2
if 0>m:
b=c
else:
a=c
print(f"{1-a**(s-n+1):.7f}")
|