讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。
MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili
三门问题(Monty Hall problem)又称蒙提霍尔问题或蒙提霍尔悖论,它是一道非常有趣的概率问题,该问题的答案违反大家的直觉。请大家搜索三门问题的相关资料,并使用MATLAB验证三门问题的答案。
“三门问题”是一种著名的概率游戏。以下是它的简单描述:
你站在三扇门前,其中一扇门后面有一辆汽车,另外两扇门后面都是山羊。
你选择了其中的一扇门,例如选择了门1。
主持人知道每扇门后都有什么,他会打开另外两扇门中的一扇,露出一只山羊(请注意,无论你第一次选择的是山羊还是汽车,都能保证主持人打开另一个有山羊的门)。例如,他可能会打开门3,露出山羊。
现在,你有机会选择保持原来的选择,即门1,或者切换到另一扇未打开的门,即门2。
那么,你应该保持原来的选择还是选择切换门?
按照直觉,许多人认为保持或更换的概率是相同的,都是1/2。
但实际上,切换门的选择有2/3的机会赢得汽车,而保持原来的选择只有1/3的机会。
下面使用MATLAB模拟来证实这个结果:
clear; clc;
% 模拟次数
N = 100000;
% 初始化计数器
stay_win_count = 0; % 保持选择赢的次数
switch_win_count = 0; % 更换选择赢的次数
for i = 1:N% 随机放置汽车在一扇门后car = randi(3);% 第一次你随机的选择一扇门door = randi(3);% 主持人打开一扇山羊门goat = setdiff([1,2,3], car); % 找到山羊所在的两扇门if ismember(door, goat) % 如果你选择的门是山羊门goat = setdiff(goat, door); % 从可打开的门中移除已选择的门endind = randi(length(goat));opened_door = goat(ind); % 主持人随机选择一扇山羊门打开% 确定切换的门switch_door = setdiff([1,2,3], [door, opened_door]);% 检查是否赢得了汽车if door == carstay_win_count = stay_win_count + 1;elseif switch_door == carswitch_win_count = switch_win_count + 1;end
end