MATLAB练习题:违背直觉的三门问题(非常有趣的一道题目)

本文介绍了MATLAB新手如何通过观看《MATLAB教程新手入门》视频学习,并通过实际案例演示了著名的三门问题,使用MATLAB进行概率模拟,揭示出切换门赢得汽车概率更高的结果。
摘要由CSDN通过智能技术生成

 ​讲解视频:可以在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); % 从可打开的门中移除已选择的门
    end
    ind = randi(length(goat));
    opened_door = goat(ind); % 主持人随机选择一扇山羊门打开
    % 确定切换的门
    switch_door = setdiff([1,2,3], [door, opened_door]);
    % 检查是否赢得了汽车
    if door == car
        stay_win_count = stay_win_count + 1;
    elseif switch_door == car
        switch_win_count = switch_win_count + 1;
    end
end

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值