作业帮 > 综合 > 作业

非独立重复事件概率玩一个游戏,打boss掉落宝物的概率是20%,如果前一个boss没有掉,那么这一个掉率会在上一个基础上

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/16 04:24:18
非独立重复事件概率
玩一个游戏,打boss掉落宝物的概率是20%,如果前一个boss没有掉,那么这一个掉率会在上一个基础上增加20%也就是40%,如果还没掉则下一个为60%,依此类推,但是如果掉落了则下一个的掉率重回20%.问打N个boss之后我掉落宝物得期望是多少?最好分析出数学模型,以及相关的资料,如果有C语言算法更好
不会C语言,用matlab模拟了一下.当游戏6次时,平均掉宝率是36%左右,也就是大概期望2.2.当游戏10次时,掉宝率上升到37%-38%.当游戏50次时,掉宝率39.4%左右,当游戏500次,掉宝率达到39.8%左右.当游戏1000次,掉宝率还是39.8%左右.所以如果n够大,期望大概是39.8%n.
程序如下:
n=500;%%%实验次数
N=1000;%%%实验中假定游戏次数
a=zeros(N,1);%%%每次游戏掉宝情况(1表示掉宝,0表示不掉)
A=zeros(n,1);%%%每次实验中宝物个数
for m=1:n
a(1)=(sign(rand(1)-0.8)+1)/2;%%%第一次概率是20%
if a(1)
a(2)=(sign(rand(1)-0.8)+1)/2;%%%如果第一次掉,第二次概率20%
else
a(2)=(sign(rand(1)-0.6)+1)/2;%%%如果第一次不掉,第二次概率40%
end
if a(2)
a(3)=(sign(rand(1)-0.8)+1)/2;
elseif a(1)
a(3)=(sign(rand(1)-0.6)+1)/2;
else
a(3)=(sign(rand(1)-0.4)+1)/2;
end
if a(3)
a(4)=(sign(rand(1)-0.8)+1)/2;
elseif a(2)
a(4)=(sign(rand(1)-0.6)+1)/2;
elseif a(1)
a(4)=(sign(rand(1)-0.4)+1)/2;
else
a(4)=(sign(rand(1)-0.2)+1)/2;
end
if a(4)
a(5)=(sign(rand(1)-0.8)+1)/2;
elseif a(3)
a(5)=(sign(rand(1)-0.6)+1)/2;
elseif a(2)
a(5)=(sign(rand(1)-0.4)+1)/2;
elseif a(1)
a(5)=(sign(rand(1)-0.2)+1)/2;
else
a(5)=1;
end
for k=6:N
if a(k-1)
a(k)=(sign(rand(1)-0.8)+1)/2;
elseif a(k-2)
a(k)=(sign(rand(1)-0.6)+1)/2;
elseif a(k-3)
a(k)=(sign(rand(1)-0.4)+1)/2;
elseif a(k-4)
a(k)=(sign(rand(1)-0.2)+1)/2;
else
a(k)=1;
end
end
A(m)=sum(a);
end
mean(A)/N
再问: 谢谢你倒叙分析的很不错,我一直正着分析所以一直想不出算法
再答: 那采纳一个呗