废话不多说,直接上代码
import
random
import
math
sum_3
=
0
results
=
[]
n
=
10000000
for
j
in
range
(
n
):
sum_1
=
0
sum_2
=
0
for
i
in
range
(
101
):
s
=
random
.
randint
(
0
,
1
)
sum_1
+=
s
for
i
in
range
(
100
):
s
=
random
.
randint
(
0
,
1
)
sum_2
+=
s
if
sum_1
>
sum_2
:
sum_3
+=
1
results
.
append
(
sum_3
/
(
j
+
1
))
if
(
j
+
1
)
%
1000
==
0
:
print
(
sum_3
/
(
j
+
1
))
跑了一千万次,最后几次结果是:
0.4998556133680208
0.49985622811405706
0.49985564225690277
0.4998554566369911
0.49985987197439485
0.49986148614861486
0.4998606
故甲有101个硬币,乙有100个硬币,两人随机撒在地面上,甲比乙正面朝上多的概率大约为
0.4998606
----------------------------------------------------------------------------------------------------
2021.2.23 修改
记A为抛了101次硬币,B为抛了100次硬币,正面为z,反面为f。
P1 = A(z) > B(z)
P2 = A(f) > B(f)
P(z) = 1/2
P(f) = 1/2
-> P1 = P2
P3 = A(z) <= B(z)
P4 = A(f) <= B(f)
P3,P4交集为空 -> P1 + P2 = 1
P1 = P2 = 1/2