我們假設棍子長度是 l , 第一次切出的長度為 x , 有 x\in(0,l)
考慮第二刀,有兩種情況,第一種是在 x 段切,另一種是在 l-x 段切,機率和長度成比例
下面就可以開始模擬過程了:
import
random
n
=
10000
cnt
=
0
for
i
in
range
(
n
):
L
=
random
.
uniform
(
0.0
,
65535.0
)
x
=
random
.
uniform
(
0.0
,
L
)
a
=
x
/
L
op
=
random
.
uniform
(
0
,
1
)
if
op
>=
a
:
y
=
random
.
uniform
(
0.0
,
L
-
x
)
z
=
L
-
x
-
y
else
:
y
=
random
.
uniform
(
0.0
,
x
)
z
=
L
-
x
x
=
x
-
y
if
x
+
y
>
z
and
x
+
z
>
y
and
y
+
z
>
x
:
cnt
=
cnt
+
1
print
(
cnt
/
n
)
最後的結果在 0.25 左右,答案 \frac{1}{4} 應該是正確的。