|

楼主 |
发表于 2011-7-3 17:32
|
显示全部楼层
“在平面中任作一直线”可有多种做法,但实质上都是等价的
[这个贴子最后由luyuanhong在 2011/07/03 05:44pm 第 1 次编辑]
下面引用由天茂在 2011/07/03 04:13pm 发表的内容:
为了把事情搞明白,我建议陆老师试一试下面的做法:
先在平面中按照“做法二”或“做法三”作出无数多条直线,然后再作一个圆,再看看作出的直线中,有哪些直线是与这个圆相交的,对于那些与圆相交的直线,再看看它们被圆截得的弦长是不是大于 √3 ,然后算出直线被圆截得的弦长大于 √3 的概率。
如果最后的结果仍然是1/2,那么,说三个做法的实质是一样的,就更加理直气壮了。
你可以自己试试用 Excel 计算。
“做法二”:
用语句 1000*(2*RND()-1) ,1000*(2*RND()-1) 取 A 点的坐标 x 和 y 。
(实际上应该在全平面中取 A 点,但实际上这是不可能的,只能近似做到,
上面的语句,相当于在一个 (-1000,1000)×(-1000,1000) 的正方形中取。)
用语句 3.14159265*RND() 取直线的方向角 φ 。
然后,用公式 d =|x sin(φ)-y cos(φ)| 计算直线到圆心的垂直距离。
当 d≤1 时说明直线与单位圆有交点,只对这种情况进行计算。
当 d<1/2 时说明直线被单位圆截得的弦长大于√3 。
这样,你就可以算出当直线与圆有交点时,截得弦长大于√3 的概率。
我编程序计算的结果是:共作了 1000000 次直线,与圆相交的直线有 1172 条,
其中截得弦长大于√3 的直线有 598 条,算出概率为 0.51023891 。
“做法三”:
用语句 1000*(2*RND()-1) ,1000*(2*RND()-1) 取 A 点的坐标 x 和 y 。
用语句 1000*(2*RND()-1) ,1000*(2*RND()-1) 取 B 点的坐标 u 和 v 。
(实际上应该在全平面中取 A、B 两点,但实际上这是不可能的,只能近似
在一个 (-1000,1000)×(-1000,1000) 的正方形中取。)
然后,用公式 d =|xv-yu|/√((x-u)^2+(y-v)^2) 计算直线到圆心的垂直距离。
当 d≤1 时说明直线与单位圆有交点,只对这种情况进行计算。
当 d<1/2 时说明直线被单位圆截得的弦长大于√3 。
这样,你就可以算出当直线与圆有交点时,截得弦长大于√3 的概率。
我编程序计算的结果是:共作了 1000000 次直线,与圆相交的直线有 1541 条,
其中截得弦长大于√3 的直线有 796 条,算出概率为 0.5165477 。 |
|