题设
现有九个点O=(0,0),(0,1),(0,2),(1,0),A=(1,1),(1,2),(2,0),(2,1),B=(2,2),设由这九个点的坐标组成的集合为C。动点P从O点出发,每隔1s就会向上或向右跳一格,两种情况的概率都是 1 2 \frac12 21。当P=B时,它将停止跳动。
1. 原题
如果不允许P跳出集合C,求当P根据原规则从O跳到B的过程中P经过A的概率。
解:
设从某一点开始,P最终抵达点B且(不)经过点A的概率为W(W’),将跳出集合C(且经过点A)的概率为L(L’)。
列出九点概率矩阵:
[
W
′
W
′
W
′
1
2
W
1
2
W
′
W
W
′
1
2
W
1
2
W
′
1
2
W
1
2
W
′
W
′
]
\begin{bmatrix}W'&W'&W'\\\frac12W\frac12W'&W&W'\\\frac12W\frac12W'&\frac12W\frac12W'&W'\end{bmatrix}
⎣⎡W′21W21W′21W21W′W′W21W21W′W′W′W′⎦⎤
因此,所求概率为
P
=
1
2
P=\frac12
P=21。
验证程序:
from random import randint as r
count = 1000000
imag = 1/2
n = 100
b, B, err = 0, 0, 0
print(f'准确值为{imag}')
for i in range (1,count+1):
b = 0
x,y=0,0
while True:
if x>2:
x -= 1
continue
elif y>2:
y -= 1
continue
elif (x,y) == (2,2):
break
elif (x,y) == (1,1):
b=1
if r(0,1):
x+=1
else:
y+=1
B += b
if i%(count//n) == 0:
ans = B/(count//n)
err += ans - imag
print(f'实际值为{ans},误差为{ans-imag:.4f},累计误差为{err:.4f}')
B = 0
2. 跃出时传送回原点
如果P∉C,则让P跳回原点,之后按原规则跳动。求当P根据原规则从O跳到B的过程中P经过A的概率。
解:
列出九点概率矩阵:
[
1
4
W
′
3
4
L
′
1
2
W
′
1
2
L
′
W
′
1
4
W
1
8
W
′
1
4
L
3
8
L
′
1
2
W
1
2
L
1
2
W
′
1
2
L
′
1
4
W
1
8
W
′
1
4
L
3
8
L
′
1
4
W
1
8
W
′
1
4
L
3
8
L
′
1
4
W
′
3
4
L
′
]
\begin{bmatrix}\frac14W'\frac34L'&\frac12W'\frac12L'&W'\\\frac14W\frac18W'\frac14L\frac38L'&\frac12W\frac12L&\frac12W'\frac12L'\\\frac14W\frac18W'\frac14L\frac38L'&\frac14W\frac18W'\frac14L\frac38L'&\frac14W'\frac34L'\end{bmatrix}
⎣⎡41W′43L′41W81W′41L83L′41W81W′41L83L′21W′21L′21W21L41W81W′41L83L′W′21W′21L′41W′43L′⎦⎤
根据题意,L等价于W,W’等价于0,所以
P
O
=
1
2
W
3
8
L
′
P_O=\frac12W\frac38L'
PO=21W83L′,所求概率
P
=
W
+
L
′
W
+
L
′
2
W
+
⋯
=
1
2
∑
n
=
0
+
∞
(
3
8
)
n
=
1
2
⋅
1
1
−
3
8
=
4
5
P=W+L'W+L'^2W+⋯=\frac12∑_{n=0}^{+∞}(\frac38)^n=\frac12·\frac1{1-\frac38}=\frac45
P=W+L′W+L′2W+⋯=21∑n=0+∞(83)n=21⋅1−831=54。
特别地,如果不将P跳出C的情况计算在内,则所求概率为
P
=
W
O
W
O
+
W
O
′
=
1
4
1
4
+
1
8
=
2
3
P=\frac{W_O}{W_O+W'_O}=\frac{\frac14}{\frac14+\frac18}=\frac23
P=WO+WO′WO=41+8141=32。
验证程序:
from random import randint as r
count = 1000000
imag = 4/5
n = 100
b, B, err = 0, 0, 0
print(f'准确值为{imag}')
for i in range (1,count+1):
b = 0
x,y=0,0
while True:
if x>2 or y>2:
x, y = 0, 0
continue
elif (x,y) == (2,2):
break
elif (x,y) == (1,1):
b=1
if r(0,1):
x+=1
else:
y+=1
B += b
if i%(count//n) == 0:
ans = B/(count//n)
err += ans - imag
print(f'实际值为{ans},误差为{ans-imag:.4f},累计误差为{err:.4f}')
B = 0
3. 跃出时传送到对面
P跳动时,令x’=(x+1)%3,y’=(y+1)%3。求当P从O跳到B的过程中P经过A的概率。
解:
根据题意,L等价于W,W’等价于0。列出化简后的九点概率矩阵:
[
3
4
L
′
1
2
L
′
0
1
2
W
3
8
L
′
W
1
2
L
′
1
2
W
3
8
L
′
1
2
W
3
8
L
′
3
4
L
′
]
\begin{bmatrix}\frac34L'&\frac12L'&0\\\frac12W\frac38L'&W&\frac12L'\\\frac12W\frac38L'&\frac12W\frac38L'&\frac34L'\end{bmatrix}
⎣⎡43L′21W83L′21W83L′21L′W21W83L′021L′43L′⎦⎤
将P跳出C之后传送到(x,y)点的概率记为Lxy,则上述矩阵可写作:
[
1
2
L
00
1
4
L
10
1
2
L
10
0
1
2
W
1
4
L
00
1
8
L
10
W
1
2
L
01
1
2
W
1
4
L
00
1
16
L
01
1
16
L
10
1
2
W
1
4
L
00
1
8
L
01
1
2
L
00
1
4
L
01
]
\begin{bmatrix}\frac12L_{00}\frac14L_{10}&\frac12L_{10}&0\\\frac12W\frac14L_{00}\frac18L_{10}&W&\frac12L_{01}\\\frac12W\frac14L_{00}\frac1{16}L_{01}\frac1{16}L_{10}&\frac12W\frac14L_{00}\frac18L_{01}&\frac12L_{00}\frac14L_{01}\end{bmatrix}
⎣⎡21L0041L1021W41L0081L1021W41L00161L01161L1021L10W21W41L0081L01021L0121L0041L01⎦⎤
由对称性可得L10=L01,因此由穿越映射关系(即P∉C时的跳跃规则)可得
L
00
=
L
01
=
1
2
+
1
4
L
00
+
1
8
L
01
L_{00}=L_{01}=\frac12+\frac14L_{00}+\frac18L_{01}
L00=L01=21+41L00+81L01。解之可得所求概率
P
=
L
00
=
4
5
P=L_{00}=\frac45
P=L00=54。
验证程序:
from random import randint as r
count = 1000000
imag = 4/5n = 100b, B, err = 0, 0, 0
print(f'准确值为{imag}')
for i in range (1,count+1):
b = 0
x,y=0,0
while True:
if (x,y) == (2,2):
break
elif (x,y) == (1,1):
b=1
if r(0,1):
x=(x+1)%3
else:
y=(y+1)%3
B += b
if i%(count//n) == 0:
ans = B/(count//n)
err += ans - imag
print(f'实际值为{ans},误差为{ans-imag:.4f},累计误差为{err:.4f}')
B = 0
4. 跃出时传送到对称点
P跳出C时,将P传送到上一步所在点与A成中心对称的点。求当P从O跳到B的过程中P经过A的概率。
解:
仿照上一题,可列出概率矩阵:
[
1
2
L
20
1
4
L
10
1
2
L
10
0
1
2
W
1
4
L
20
1
8
L
10
W
1
2
L
01
1
2
W
1
8
L
02
1
8
L
20
1
16
L
01
1
16
L
10
1
2
W
1
4
L
02
1
8
L
01
1
2
L
02
1
4
L
01
]
\begin{bmatrix}\frac12L_{20}\frac14L_{10}&\frac12L_{10}&0\\\frac12W\frac14L_{20}\frac18L_{10}&W&\frac12L_{01}\\\frac12W\frac18L_{02}\frac18L_{20}\frac1{16}L_{01}\frac1{16}L_{10}&\frac12W\frac14L_{02}\frac18L_{01}&\frac12L_{02}\frac14L_{01}\end{bmatrix}
⎣⎡21L2041L1021W41L2081L1021W81L0281L20161L01161L1021L10W21W41L0281L01021L0121L0241L01⎦⎤
按对称性将其化简:
[
1
2
L
02
1
4
L
01
1
2
L
01
0
1
2
W
1
4
L
02
1
8
L
01
W
1
2
L
01
1
2
W
1
4
L
02
1
8
L
01
1
2
W
1
4
L
02
1
8
L
01
1
2
L
02
1
4
L
01
]
\begin{bmatrix}\frac12L_{02}\frac14L_{01}&\frac12L_{01}&0\\\frac12W\frac14L_{02}\frac18L_{01}&W&\frac12L_{01}\\\frac12W\frac14L_{02}\frac18L_{01}&\frac12W\frac14L_{02}\frac18L_{01}&\frac12L_{02}\frac14L_{01}\end{bmatrix}
⎣⎡21L0241L0121W41L0281L0121W41L0281L0121L01W21W41L0281L01021L0121L0241L01⎦⎤
按穿越映射关系列出方程组:
{
L
01
=
1
2
+
1
4
L
02
+
1
8
L
01
L
02
=
1
2
L
02
+
1
4
L
01
\left\{\begin{matrix}L_{01}=\frac12+\frac14L_{02}+\frac18L_{01}\\L_{02}=\frac12L_{02}+\frac14L_{01}\end{matrix}\right.
{L01=21+41L02+81L01L02=21L02+41L01
解得
L
01
=
2
3
,
L
02
=
1
3
L_{01}=\frac23,L_{02}=\frac13
L01=32,L02=31。因此,所求概率
P
=
L
00
=
1
2
+
1
4
L
02
+
1
8
L
01
=
2
3
P=L_{00}=\frac12+\frac14L_{02}+\frac18L_{01}=\frac23
P=L00=21+41L02+81L01=32。
验证程序:
from random import randint as r
count = 1000000
imag = 2/3
n = 100
b, B, err = 0, 0, 0
print(f'准确值为{imag}')
for i in range (1,count+1):
b = 0
x,y=0,0
while True:
if (x,y) == (1,1):
b=1
if (x,y) == (2,2):
break
if x>2:
x = 0
y = 2-y
elif y>2:
y = 0
x = 2-x
elif r(0,1):
x+=1
else:
y+=1
B += b
if i%(count//n) == 0:
ans = B/(count//n)
err += ans - imag
print(f'实际值为{ans},误差为{ans-imag:.4f},累计误差为{err:.4f}')
B = 0
5. 跃出时传送到随机点
如果P∉C,则让P随机地跳到C中的任意一点,且跳到每个点的概率都是 1 9 \frac19 91,之后按原规则跳动。求当P根据原规则从O跳到B的过程中P经过A的概率。
解:
列出九点概率矩阵:
[
1
4
W
′
3
4
L
′
1
2
W
′
1
2
L
′
W
′
1
4
W
1
8
W
′
1
4
L
3
8
L
′
1
2
W
1
2
L
1
2
W
′
1
2
L
′
1
4
W
1
8
W
′
1
4
L
3
8
L
′
1
4
W
1
8
W
′
1
4
L
3
8
L
′
1
4
W
′
3
4
L
′
]
\begin{bmatrix}\frac14W'\frac34L'&\frac12W'\frac12L'&W'\\\frac14W\frac18W'\frac14L\frac38L'&\frac12W\frac12L&\frac12W'\frac12L'\\\frac14W\frac18W'\frac14L\frac38L'&\frac14W\frac18W'\frac14L\frac38L'&\frac14W'\frac34L'\end{bmatrix}
⎣⎡41W′43L′41W81W′41L83L′41W81W′41L83L′21W′21L′21W21L41W81W′41L83L′W′21W′21L′41W′43L′⎦⎤
九个点的总概率式为
P
C
=
5
36
W
23
72
W
′
5
36
L
29
72
L
′
P_C=\frac5{36}W\frac{23}{72}W'\frac5{36}L\frac{29}{72}L'
PC=365W7223W′365L7229L′。
根据题意,L等价于W,W’等价于0,所以
P
O
=
1
2
W
3
8
L
′
,
P
C
=
5
18
W
29
72
L
′
P_O=\frac12W\frac38L',P_C=\frac5{18}W\frac{29}{72}L'
PO=21W83L′,PC=185W7229L′。
因此,所求概率
P
=
W
O
+
L
O
′
(
W
+
L
′
W
+
L
′
2
W
+
⋯
)
=
1
2
+
3
8
∑
n
=
0
+
∞
5
18
(
29
72
)
n
=
1
2
+
3
8
⋅
5
18
⋅
1
1
−
29
72
=
29
43
P=W_O+L'_O(W+L'W+L'^2W+⋯)=\frac12+\frac38∑_{n=0}^{+∞}\frac5{18}(\frac{29}{72})^n=\frac12+\frac38·\frac5{18}·\frac1{1-\frac{29}{72}}=\frac{29}{43}
P=WO+LO′(W+L′W+L′2W+⋯)=21+83∑n=0+∞185(7229)n=21+83⋅185⋅1−72291=4329。
验证程序:
from random import randint as r
count = 1000000
imag = 29/43
n = 100
b, B, err = 0, 0, 0
print(f'准确值为{imag}')
for i in range (1,count+1):
b = 0
x,y=0,0
while True:
if x>2 or y>2:
x, y = r(0,2), r(0,2)
continue
elif (x,y) == (2,2):
break
elif (x,y) == (1,1):
b=1
if r(0,1):
x+=1
else:
y+=1
B += b
if i%(count//n) == 0:
ans = B/(count//n)
err += ans - imag
print(f'实际值为{ans},误差为{ans-imag:.4f},累计误差为{err:.4f}')
B = 0