返回目录:游戏策略
MATLAB 程序如下,最终收敛到0.508左右
NumIterations = 10000; %实验次数
NumWins = 0; %已经赢了的次636f7079e799bee5baa6330数
NumWinsVec = zeros(1, NumIterations);
for ii = 1:NumIterations
points = sum(randi(6, 1, 2)); %掷2颗骰子,算总数
switch points
case {3, 11} %如果是3, 11点
NumWins = NumWins + 1; %赢的次数加1
case {4, 5, 6, 8, 9, 10} %如果是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); %画图
不知道你是玩骰子还是玩麻将呢?
玩骰子猜大小了。
玩麻将,则用和。