zoukankan      html  css  js  c++  java
  • 戏谈一道面试题

    最近有同学面试的时候,被问了这么一道题:

    说有A,B,C三个盒子,其中只有一个盒子里面有宝贝,但是你不知道是哪个盒子。现在你随机的拿过来一个盒子,但是你自己不能看你拿的盒子里是否是宝贝。现在你的对手翻开了剩下的两个盒子中的一个,并且是空盒子,即里面没有宝贝。现在问你:是否要用你手里的盒子去换剩下的那个没有被翻开过的盒子?

    对于这个问题,可谓是争论不休。有人说不必要换,因为你手里的盒子是宝物的概率现在为1/2,和对手一样。又有一些人说,你手里的盒子是宝物的概率是1/3,而没有翻开的剩下的那个盒子是宝物的概率是2/3。同样一个问题,却有两种解释方法,并且看上去都有道理。那么为什么出现这种情况呢?如果我说大家争论的焦点与对手是否知道哪个盒子中有宝贝有关,你会感觉到意外吗?

    在这里我给出的答案会让大家感觉到不可思议:如果你的对手也不知道哪个盒子里有宝贝,那么就没必要换。如果你的对手知道哪个盒子里面有宝贝,那么你就要换。

    (1)给一个非常直观的解释。假设你和你的对手都不知道哪个盒子里面有宝贝,现在你随机选取一个盒子,那么他随机的翻开剩下的两个盒子中的一个。如果这样重复300次,你会发现其中有100次,对手会翻开一个有宝物的盒子,所以符合要求的局面只有200次。而你选择的那个盒子里有宝贝会出现100次,那么对手剩下的那个没翻开的盒子是宝贝的次数也是100次。在200次合法局面的大背景下,你手里的盒子中有宝贝的概率是1/2,对手没有翻开的那个盒子中有宝贝的概率也是1/2。那么这么看来,确实没必要交换。

    (2)如果假设对手知道盒子里有宝贝,那么你就必须得换。按照上面的过程,重复300次,那么这300次全都是合法局面,因为我们前提是对手必须翻开一个没有宝贝的盒子。而你拿到宝贝的次数为100次,剩下的那个盒子里有宝贝的次数将是200次。所以,在300次合法局面的大背景下,你手里的盒子中有宝贝的概率为1/3,对手没有翻开的那个盒子有宝贝的概率为2/3。那么这么看来,确实要换。

    从(1),(2)两种情况来看,概率的不同取决于对手知不知道哪个盒子中有宝贝,继而影响了合法局面的次数。那么,现在的问题是不论对手知不知道盒子中有宝贝,我们的最优策略是什么呢?

    答案是:坚决要换。因为情况(1)中换和不换都没有差别,情况(2)中换比较合适,而你并不知道对手到底知不知道那个盒子里面有宝贝,那么换还是比较合适。

     
    分类: 算法
    标签: 数学
  • 相关阅读:
    svn安装教程
    六、数组类的创建
    五、顺序存储线性表分析
    四、StaticList 和 DynamicList
    三、顺序存储结构的抽象实现
    二、线性表的顺序存储结构
    一、线性表的本质和操作
    专题五:局部变量、全局变量global、导入模块变量
    专题四:文件基础知识、字符编码
    专题3-2:列表基础知识:二维list排序、获取下标和处理txt文本实例
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2732691.html
Copyright © 2011-2022 走看看