各位高手,求教一道用matlab的编程题,非常着急!

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:24:41
已知:常量a=8,b=2,k=3,MAXNa=50
变量初始值Q=0,Na=0,Nb=0,
R(01)是[0,1]均匀分布的随机序列

程序:1.if R(01)<=a/(a+Qb),Na=Na+1;
if Q=k,Nb=Nb+1,else Q=Q+1;
else,Q=Q-1
(注:这3句是并列的)
2.if Na<MAXNa 就转到上面的1,else, print Bp=Nb/Na
注R(01)在每次循环时,都会产生介于(0,1)不同的随机数

可能这个是你想要的。
clear
a=8;
b=2;
k=3;
MAXNa=50;
Q=0;
Na=0;
Nb=0;

while(Na<MAXNa)
R=rand(1,1);
if R<=a/(a+Q*b)
Na=Na+1;
if Q==k
Nb=Nb+1;
else
Q=Q+1;
end
else
Q=Q-1;
end
end
Bp=Nb/Na