Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2012-02-15
帖子: 1
声望力: 0 ![]() |
![]()
我在学习蒙特卡洛算法时,设计一个“投掷一枚硬币的概率求解”程序如下:
clear all clc counter=0;i=1; x=rand(10000);n=length(x); for i=1:n if x(i)<=1/2&x(i)>=0 counter=counter+1; else counter=counter; end i=i+1; end p=counter/n 问题是:(1)每次运行时,结果虽然接近0.5,但是为什么每次运行的结果都不一样呢? (2)如果把随机数生成命令x=rand(10000);改成x=rand(100000)后为什么会产生错误,而无法运行了。 |
![]() |
![]() |
![]() |
#2 |
游客
帖子: n/a
|
![]()
clear all
clc counter=0;i=1; x=rand(1,100000);n=length(x); for i=1:n if x(i)<=1/2&x(i)>=0 counter=counter+1; else counter=counter; end i=i+1; end p=counter/n 首先,所谓蒙特卡洛就是一个随机算法,随机肯定每一次结果不同,第二,你的代码中有个错误rand, |
![]() |