oriwqz 发表于 2013-12-3 21:19:56

【求帮助】用蒙特卡洛模拟法求概率

本帖最后由 oriwqz 于 2013-12-3 22:13 编辑

将一个方块用坐标划分,向其中投掷飞镖100,0000次,问飞镖落在奇数区域的概率?
谁教我怎么表示区域3,谢谢。
这儿有一个圆的例子,麻烦看帖的人了:
http://632977922.blog.51cto.com/6231950/1324195

E=MC2 发表于 2013-12-3 21:48:33

好高端的问题啊!目测楼主是学数学的。这个涉及到概率知识。。和计算机的关系不大。如果把数学求解过程罗列出来,或许我可以试试用程序来实现。。。:shock:

oriwqz 发表于 2013-12-3 21:50:27

本帖最后由 oriwqz 于 2013-12-3 21:54 编辑

E=MC2 发表于 2013-12-3 21:48 static/image/common/back.gif
好高端的问题啊!目测楼主是学数学的。这个涉及到概率知识。。和计算机的关系不大。如果把数学求解过程罗列 ...
初学 Java,电子书上的习题。:sad

此处略缺三万 发表于 2013-12-3 21:54:16

分成四等份,每份为1
那么落在1的概率P1=1/4;
      落在3的概率P3=(1/4)X(1/2)=1/8;
呢么落在奇数的概率:P奇=1/4+1/8=3/8

oriwqz 发表于 2013-12-3 21:56:37

此处略缺三万 发表于 2013-12-3 21:54 static/image/common/back.gif
分成四等份,每份为1
那么落在1的概率P1=1/4;
      落在3的概率P3=(1/4)X(1/2)=1/8;


谢谢你回答,可是该怎么表示区域3呢?

此处略缺三万 发表于 2013-12-3 22:15:31

以图b为例:

用1-8表示这个四个象限,用1,2表示第一象限(那么此处可让1表示"3"区域,2表示"2"区域,),3,4表示第二象限,5,6表示"3区域"(第三象限),7,8表示"4"区域(第四象限).

用生成随机数(0-8)模拟投掷飞镖.

伪代码如下:
如果(生成随机数()==1(表示第3区域) || 生成随机数()==3或4(表示第1区域))
    那么 次数+1
那么概率 P奇 =次数/1000000

oriwqz 发表于 2013-12-3 22:23:06

本帖最后由 oriwqz 于 2013-12-3 22:32 编辑

此处略缺三万 发表于 2013-12-3 22:15 static/image/common/back.gif
以图b为例:

用1-8表示这个四个象限,用1,2表示第一象限(那么此处可让1表示"3"区域,2表示"2"区域,),3,4表示 ...
for (int i = 0; i < 1000000; i++) {
      // 模拟坐标
      double x = Math.random() * 2.0 - 1;
      double y = Math.random() * 2.0 - 1;

      // 区域1
      if (x < 0)
                count++;
      // 区域3?
      else if ((x <= 1 && x > 0) && (y <= 1 && y > 0)) {
               
      }
}
页: [1]
查看完整版本: 【求帮助】用蒙特卡洛模拟法求概率