| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 919 人关注过本帖
标题:monte carlo方法求面积的算法
只看楼主 加入收藏
jinh
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2011-5-31
结帖率:66.67%
收藏
 问题点数:0 回复次数:1 
monte carlo方法求面积的算法
图片附件: 游客没有浏览图片的权限,请 登录注册
程序代码:
#include<iostream>
#include<ctime>
#include<stdlib.h>
#define RAND_MAX 0x7FFF
using namespace std;

void main()
{
    double a,b;
    double x,y,area;//用于构造y与x的函数y=8x-x*x+7
    double count=0.0;//计数
    a=7.0;//x轴上
    b=9.0;//y轴上
    area=a*b;
    srand((unsigned)time(0));
    for(int i=0;i<10000;i++)
    {   
        //srand((unsigned)time(0));
        x=rand()/(double)(RAND_MAX/a);//函数用于返回一个在0~a的随机值
        y=rand()/(double)(RAND_MAX/b);//函数用于返回一个在0~b的随机值
        if(x>1&&x<a)
            if(y>0&&y<(8*x-x*x+7))
                count++;
   
    }
    cout<<count<<endl;
    area=area*count/10000;
    cout<<area<<endl;

}
搜索更多相关主题的帖子: color 
2011-11-26 10:06
jinh
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2011-5-31
收藏
得分:0 
Monte Carlo(蒙特卡洛)一个城市(赌城)的名字.该算法就是运用赌博的原理,随机扔东西,扔进该区域就记上一次,不在该区域就不计,但没次就能能进一个矩形或长方形区域里,该区域的面积很容易算出,但曲线,不规则的图型就不一定了,用积分是可以解决,但在<<随机过程>>本书中提到Monte Carlo方法,于是我就用老师的方法去弄了下,误差不是很大,毕竟扔了10000次!计算机多快啊,几秒钟就可以扔完了!
2011-11-27 00:18
快速回复:monte carlo方法求面积的算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012545 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved