• 经典问题:三选一,系统排除一个未中奖选项,更换选择会增加中奖概率么?


    经典问题:现有A,B,C三个盒子,其中一个内有奖品。某人选定一个后,系统从剩余的两个中排除掉一个未中奖的盒子。此时更换选择还是坚持原来的选择,哪个会增大获奖概率

    解答:不换时中奖概率是1/3,换了之后中奖概率时2/3。初始时,ABC每个中奖的概率都是1/3,假如你选了A,那么B+C的中奖概率是2/3。假设此时系统排除了不中奖的C,则A中奖概率还是1/3,这时候用B替换B+C,则现在B中奖的概率变为2/3。所以改变选择提高中奖概率。

    代码实现:

    public class Main{
        public static void main(String[] args){ 
            int count=200;//实验次数
            System.out.println("不换测试:");
            test(count,false);
            System.out.println("更换测试:");
            test(count,true);
        }
    
        private static void test(int count, boolean index) {
            int counts=0;//中奖次数
            for(int i=1;i<=count;i++){
                int price=(int)(Math.random()*3)+1;//中奖号码为0/1/2中的一个
                int start=(int)(Math.random()*3)+1;//最初选定号码
                int end=0;//最终选定号码
                int delete=0;//选定删除的选项
                if(start==price){//开始时选中了
                    boolean b=(int)Math.random()*2==1;//b为true或false
                    switch(price){
                        case 1:{
                            delete=b?2:3;
                            break;
                        }
                        case 2:{
                            delete=b?1:3;
                            break;
                        }
                        case 3:{
                            delete=b?1:2;
                            break;
                        }
                    }
                }
                else{//开始时未选中中奖号码
                    delete=1+2+3-price-start;//排除的选项既不中奖,也不是最初的选择
                }
                
                if(index){//更换号码
                    end=1+2+3-start-delete;
                }
                else//不更换号码
                    end=start;
                
                System.out.format("第%d次选 中奖号为%d 初始选了%d 排除了%d 最终选了%d  ",i,price,start,delete,end);
                if(end==price){
                    counts++;
                    System.out.println("中奖了");
                }
                else{
                    System.out.println("未中奖");
                }
                }
            System.out.format("进行%d次测试,中奖%d次", count, counts);
            System.out.println();
        }
    }

    结果展示:

    各实验100次,最终更换选择的中奖概率接近2/3(65/100),不更换的中奖概率约为1/3(32/100)

    学无涯,思无域,行无疆
  • 相关阅读:
    项目中遇到的问题:前台 disabled 与 后台disabled
    差距
    那些零碎的感悟,那些成长的事【壹】
    假期数据结构学习总结
    烟大 2242: 回文(栈和队列)
    烟大 2241: 相同序列(栈和队列)
    烟大 2239: 十进制与八进制的转换(栈和队列)
    烟大 2238: 括号匹配(栈和队列)
    hdu 1018:Big Number(水题)
    hdu 2050:折线分割平面(水题,递归)
  • 原文地址:https://www.cnblogs.com/1992hdl/p/6807605.html
Copyright © 2020-2023  润新知