matlab程序问题。需要用到蒙特卡洛方法 30
街头常见一类“摸球游戏”,游戏规则是这样的:一代装有16个大小形状相同的玻璃球,其中8个红色,8个白色,游戏者从中一次摸出8个,8个球中,两种颜色出现以下比数时,摸球者可...
街头常见一类“摸球游戏”,游戏规则是这样的:一代装有16个大小形状相同的玻璃球,其中8个红色,8个白色,游戏者从中一次摸出8个,8个球中,两种颜色出现以下比数时,摸球者可得到相应的“奖励”或“惩罚”,如下表所示:
此游戏从表面上看,非常有吸引力,5种可能出现的结果有4种可得到奖金,且最高奖金达10元,而只有一种情况受罚,罚金只有3元,分析此游戏是否值得玩?
2、设计内容:
l 理论分析解游戏者一次游戏中得到奖金的平均值是多少?正数为奖金,负数为罚金
l 请用蒙特卡洛方法求解(m文件)
这样的程序正确吗?? 能麻烦解释一下吗??
如果不正确,希望能有正确答案 并给予解释。万分感谢!!
n=1e6;
A=0;B=0;C=0;D=0;E=0;
for i=1:n
examp=randperm(16);
num=sum(examp(1:8)<=8);
if num==0||num==8
A=A+1;
elseif num==1||num==7
B=B+1;
elseif num==2||num==6
C=C+1;
elseif num==3||num==5
D=D+1;
else
E=E+1;
end
end
t=10*A/n+1*B/n+0.5*C/n+0.2*D/n-3*E/n
答得好还能加分。麻烦了 展开
此游戏从表面上看,非常有吸引力,5种可能出现的结果有4种可得到奖金,且最高奖金达10元,而只有一种情况受罚,罚金只有3元,分析此游戏是否值得玩?
2、设计内容:
l 理论分析解游戏者一次游戏中得到奖金的平均值是多少?正数为奖金,负数为罚金
l 请用蒙特卡洛方法求解(m文件)
这样的程序正确吗?? 能麻烦解释一下吗??
如果不正确,希望能有正确答案 并给予解释。万分感谢!!
n=1e6;
A=0;B=0;C=0;D=0;E=0;
for i=1:n
examp=randperm(16);
num=sum(examp(1:8)<=8);
if num==0||num==8
A=A+1;
elseif num==1||num==7
B=B+1;
elseif num==2||num==6
C=C+1;
elseif num==3||num==5
D=D+1;
else
E=E+1;
end
end
t=10*A/n+1*B/n+0.5*C/n+0.2*D/n-3*E/n
答得好还能加分。麻烦了 展开
1个回答
展开全部
你给出的解是正确的
首先假设有编号为1~16的16个球,其中
编号1~8,8个球是红色,那么9~16,8个球是白色
n=1e6; %游戏100万次
A=0;B=0;C=0;D=0;E=0; %得奖统计清零
for i=1:n
examp=randperm(16); %随机打乱1~16,16个自然数
num=sum(examp(1:8)<=8); %examp(1:8)取出前8个,就是从16个球中随机抽8个
%sum(examp(1:8)<=8),就是统计编号小于8的球的数量
%也就是红球的个数
if num==0||num==8
A=A+1; %如果8个都是红球,或者没有红球,A类统计加以
elseif num==1||num==7
B=B+1; %以下的判断依次类推
elseif num==2||num==6
C=C+1;
elseif num==3||num==5
D=D+1;
else
E=E+1;
end
end %100万次抽球后,A,B,C,D,E的次数都一一统计记录
t=10*A/n+1*B/n+0.5*C/n+0.2*D/n-3*E/n
%A/n就是得到A奖的概率,以此类推
%用每个将的奖金乘以奖的概率,再相加,得到了奖金的期望
%结果表明,按照概率统计,平局每局要亏掉差不多1块钱
首先假设有编号为1~16的16个球,其中
编号1~8,8个球是红色,那么9~16,8个球是白色
n=1e6; %游戏100万次
A=0;B=0;C=0;D=0;E=0; %得奖统计清零
for i=1:n
examp=randperm(16); %随机打乱1~16,16个自然数
num=sum(examp(1:8)<=8); %examp(1:8)取出前8个,就是从16个球中随机抽8个
%sum(examp(1:8)<=8),就是统计编号小于8的球的数量
%也就是红球的个数
if num==0||num==8
A=A+1; %如果8个都是红球,或者没有红球,A类统计加以
elseif num==1||num==7
B=B+1; %以下的判断依次类推
elseif num==2||num==6
C=C+1;
elseif num==3||num==5
D=D+1;
else
E=E+1;
end
end %100万次抽球后,A,B,C,D,E的次数都一一统计记录
t=10*A/n+1*B/n+0.5*C/n+0.2*D/n-3*E/n
%A/n就是得到A奖的概率,以此类推
%用每个将的奖金乘以奖的概率,再相加,得到了奖金的期望
%结果表明,按照概率统计,平局每局要亏掉差不多1块钱
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询