请用MATLAB模拟双骰子游戏,要求写出算法和程序,估计打赌者赢的概率。请问随着试验次数的增加,这些概率

两个人玩双骰子游戏,一个人掷骰子,另一个人打赌掷骰子者不能掷出所需点数,输赢的规则如下:如果第一次掷出3或11点,打赌者赢;如果第一次掷出2、7或12点,打赌者输;如果第... 两个人玩双骰子游戏,一个人掷骰子,另一个人打赌掷骰子者不能掷出所需点数,输赢的规则如下:如果第一次掷出3或11点,打赌者赢;如果第一次掷出2、7或12点,打赌者输;如果第一次掷出4,5,6,8,9或10点,记住这个点数,继续掷骰子,如果不能在掷出7点之前再次掷出该点数,则打赌者赢。请用MATLAB模拟双骰子游戏,要求写出算法和程序,估计打赌者赢的概率。请问随着试验次数的增加,这些概率收敛吗?你能从理论上计算出打赌者赢的精确概率吗?

虽然看见有人提问过,可是将原答案输入进MATLAB,不能显示出给的答案!!!!请帮帮忙!!!谢谢
展开
 我来答
hmilymr
2010-12-25
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
disp(['开始请输入yes,不开始请输入NO']);
kaishi=input('开始吗?','s');
if kaishi=='yes'

a1=1+(6-1)*round(rand(1));

a2=1+(6-1)*round(rand(1));
a3=a1+a2;
if a3==3||a3==11
disp(['打赌者赢了']);
disp(['因为第一个骰子值=',num2str(a1),';第二个的=',num2str(a2),';两个之和=',num2str(a3)]);
elseif a3==2||a3==7||a3==12
disp(['打赌者输了']);
disp(['因为第一个骰子值=',num2str(a1),';第二个的=',num2str(a2),';两个之和=',num2str(a3)]);
elseif a3==4||a3==5||a3==6||a3==8||a3==9||a3==10
k=a3;
k1=1;

while k>0
k1=k1+1;
disp(['第',num2str(k1-1),'次丢的结果:','第一个骰子值=',num2str(a1),';第二个的=',num2str(a2),';两个之和=',num2str(a3)]);
disp(['未分出输赢,继续丢,【已丢了',num2str(k1-1),'次】']);
a1=1+(6-1)*round(rand(1));
a2=1+(6-1)*round(rand(1));
a3=a1+a2;

if a3==k
disp(['哈哈,打赌者赢了']);
disp(['因为第',num2str(k1),'次丢的结果是:','第一个骰子值=',num2str(a1),';第二个的=',num2str(a2),';两个之和=',num2str(a3)]);
break;
elseif a3==7
disp(['唉,打赌者输了']);
disp(['因为第',num2str(k1),'次丢的结果是:','第一个骰子值=',num2str(a1),';第二个的=',num2str(a2),';两个之和=',num2str(a3)]);
break;
end
end
end
end
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gdiplq
2010-12-12 · TA获得超过1720个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:231万
展开全部
MATLAB 程序如下,最终收敛到0.508左右

NumIterations = 10000; %实验次数
NumWins = 0; %已经赢了的次数
NumWinsVec = zeros(1, NumIterations);

for ii = 1:NumIterations
points = sum(randi(6, 1, 2)); %掷2颗骰子,算总数
switch points
case %如果是3, 11点
NumWins = NumWins + 1; %赢的次数加1
case %如果是4,5,6,8,9,10点
flag = false; %初始化flag,flag==true时本轮结束
while ~flag
newPoints = sum(randi(6, 1, 2)); %掷2颗骰子,算总数
switch newPoints
case 7 %如果新的点数是7
NumWins = NumWins + 1; %赢的次数加1
flag = true; %本轮结束
case points %如果新的点数等于本轮第一次的点数
flag = true; %本轮结束(赢的次数不变)
end
end
end
NumWinsVec(ii) = NumWins; %记下本轮结束后总共赢的次数
end
WinPrecentage = NumWinsVec ./ (1:NumIterations); %全部结束后算概率
figure; plot(1:NumIterations, WinPrecentage); %画图
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woyeyao56
2010-12-18
知道答主
回答量:78
采纳率:0%
帮助的人:33.2万
展开全部
必须看懂呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式