魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
楼主: 钟七珍
打印 上一主题 下一主题

圆上作弦的概率问题 [复制链接]

Rank: 1

积分
162
帖子
108
精华
0
UID
20864
性别
保密
1#
发表于 2008-12-12 19:27:28 |显示全部楼层
关于这个问题,我编程模拟了一下,取了10000000个弦,然后算距离。我模拟的方法是:
设圆的方程为x^2+y^2=1,其中弦的一个端点是(0,1)。
再确定另一个端点的x和y坐标的绝对值,然后随机选取一个象限,确定x&y的符号,然后算这点
与(0,1)的距离,作为弦的长度,比较其与根号3的大小。然后重复做此过程10000000次(到底是计算机啊。。。。。。)。

现在把几次计算的结果写下来:
0.432944
0.433049
0.433023
0.432844
0.432985
可以看到概率稳定在0.432~0.433之间

因此似乎已有的结论都与我的不一致。。。。。。

顺便贴出我的程序:
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<ctime>
using namespace std;

const int N = 10000000;

int main(void){
    double dis,lim,x,y;
    int area,hit;
   
    srand(time(NULL) );
    lim = sqrt(3.0);
    hit = 0;
    for(int i=0;i<N;i++){
        x = ((double)rand() /RAND_MAX )*1.0;
        y = sqrt(1.0-x*x);
        area = rand()%4;
        if(area==1||area==2) x = -x;
        if(area==2||area==3) y = -y;
        dis = sqrt(x*x + (y-1.0)*(y-1.0) );
        if(dis>lim) hit++;
    }
   
    cout<<double(hit)/double(N);
   
    system("pause");
    return 0;
}

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-5-29 06:02

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部