本帖最后由 TSC999 于 2017-10-19 08:15 编辑
感谢 Kuing 大师的解答!
也感谢【战巡】的 mathematica 的程序。
把我在上面的 VB 程序换成 mathematica 程序如下:
k = 1000000; For[i = 1; n = 0, i <= k, i++,
{a1 = RandomReal[4],
a2 = RandomReal[4],
If[a1 >= 0 && a1 <= 1, {y1 = 0, x1 = a1}],
If[a1 > 1 && a1 <= 2, {x1 = 1, y1 = a1 - 1}],
If[a1 > 2 && a1 <= 3, {y1 = 1, x1 = a1 - 2}],
If[a1 > 3 && a1 <= 4, {x1 = 0, y1 = a1 - 3}],
If[a2 >= 0 && a2 <= 1, {y2 = 0, x2 = a2}],
If[a2 > 1 && a2 <= 2, {x2 = 1, y2 = a2 - 1}],
If[a2 > 2 && a2 <= 3, {y2 = 1, x2 = a2 - 2}],
If[a2 > 3 && a2 <= 4, {x2 = 0, y2 = a2 - 3}],
If[Sqrt[(x1 - x2)^2 + (y1 - y2)^2] >= 1/2, n = n + 1]}]
N[n/k]
这程序的运行结果为 0.714332。 |