matlab模拟抛硬币

matlab模拟抛硬币,第1张

这个很简单的,你想的太复杂了

A=rand(1000,4)

b=A>0.5

c=sum(b,2)

d=find(c==3)

P=A(d,:)

p=length(d)/1000

这个程序就能实现了,P就是你需要记录的满足的数据,p是出现的概率,你会发现p大约为1/4

可用如下代码:

%令面朝上为1,朝下为0

a=[]

for i=1:100

a(i,:)=round(rand(1,50))

end

p=sum(a')/50 %每组正面朝上的频率

hist(p) %频率分布直方图

r=rand(1,N)生成了N个在0~1之间的随机数。

for i=1:N

if r(i)>0.5

x=x+1

end

end

这一段判断了这N个数大于0.5的个数x。最后x/N就是概率。说白了就是大于0.5是正面,小于0.5是反面。

新建个文件coin.m,下面的复制进去

function f=coin(N)

r=rand(1,N)

x=0

for i=1:N

if r(i)>0.5

x=x+1

end

end

p=x/N

f=p

然后调用coin(10),coin(100),coin(1000)即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12012836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存