数学吧 关注:907,856贴子:8,814,151

一个帖子终结争论,李永乐蘑菇青蛙问题为什么是错的!

只看楼主收藏回复

先放李永乐原视频文字内容:
最近有小朋友问了我这么一个问题,你在森林里吃野生蘑菇,结果中毒了,你知道有一种青蛙,可以分泌解药,只有雌性的青蛙可以分泌,这种青蛙呀,雄性和雌性的比例是1:1,你为了寻找青蛙,在森林里走啊走,来到了一个岔路口,你幸运的发现呢,前面有一只这样的青蛙,但是你分不清他是雄性还是雌性,与此同时呢,你的后面有两只这种青蛙,因为距离远,你依然分不清它们是雄性还是雌性,不过呢,你知道两只青蛙中有雌性的概率大一些,所以呢,你决定向后走,可是正在这个时候呢,后面的两只青蛙中,有一只叫了一下,你分辨出这是雄性青蛙的叫声,!!!!这说明呀,两只青蛙中至少有一只雄性!!!!现在呢你犯难了,到底是应该向前走,还是应该向后走呢?
这个题目呢有很多变形,但是计算结果都是一致的,首先,!!!!如果你向前走,一只青蛙是雌性的概率只有50%,这个呢是很好计算的!!!!下面我们考虑后面的两只青蛙,在青蛙没有叫之前,这两只青蛙有4种可能,分别是雄雄、雄雌、雌雄和雌雌,每种可能各占25%,但是现在呢,不知道哪只青蛙叫了一声,叫声是雄性,这说明两只青蛙中至少有一只雄性,这样呢,我们就要把雌雌这种情况去掉,还剩下雄雄、雄雌和雌雄这三种情况,在三种情况中呢,有雌性青蛙的情况有两种,因此,如果你向后走的话,你能够找到雌性青蛙的概率就是2/3,所以呀,你应该向后走,这样,你有更大的概率获救,我的回答是准确无误的,如果你不相信,那就是你想错了,现在我再留一个思考题,如果后面的青蛙叫时,你刚好看到了是哪只青蛙在叫,换句话说,你已经知道了后面的两只青蛙中,哪一只是雄性的,这个时候,你应该向前走还是向后走,才能有更大的获救概率呢?知道答案的小朋友请在评论区里留言。
这里第一段是问题题目,第二段是李永乐的分析。先不去看李永乐分析。从题目中,有一个关键点,我夹在感叹号中间的这句“这说明呀,两只青蛙中至少有一只雄性”,其实并不是题干,而是李永乐自己理解的,在这里他就理解错了。
看李永乐自己分析中,也有一句话被我用感叹号夹在中间,就是“如果你向前走,一只青蛙是雌性的概率只有50%,这个呢是很好计算的”,这一句话也很关键,因为从这句话,我们可以得到一个共识,未出声的前方青蛙雌雄概率均为50%。


IP属地:新疆1楼2025-01-08 23:57回复
    这道题是一个男孩女孩问题的变种,而且是描述的更加清晰、歧义更少的男孩女孩问题。
    可以从两个角度来反驳李永乐。
    第一,发声判断是特指不是泛指。
    即使你不知道是哪个青蛙发声了,哪个青蛙没发声,但是发声了的就是一种标签,你听声音判断的,只能是其中一个具体青蛙的性别,而不是两个青蛙作为集体的性别!
    就好像,汤姆和两个人,你不知道男女,然后告诉你年龄大的是男的,无论你知不知道年龄大的是汤姆还是杰瑞,都不妨碍此时两个人的性别是两男和一男一女的概率相等!
    第二,题目给出的条件是“至少有一个青蛙是雄性”的充分条件,而不是必要条件,所以并不等价!
    也就是说“后面的两只青蛙中,有一只叫了一下,你分辨出这是雄性青蛙的叫声”这个条件
    可以推出“后面两只青蛙至少有一只雄性”这个结果。
    但是这两个事情并不等价。
    “两只青蛙至少有一只雄性”,并不能推出“雄青蛙发声不是雄性的不发声”,
    因为在一雄一雌的情况下,雌青蛙也有可能发声,
    所以,a 能推出b而b不能推出a,
    所以a与b并不等价。
    与“后面的两只青蛙中,有一只叫了一下,你分辨出这是雄性青蛙的叫声”等价的是,“后面两只青蛙中,发出声音的是雄性,没发出声音的不确定”。


    IP属地:新疆2楼2025-01-09 00:01
    收起回复
      2025-06-15 09:40:26
      广告

      这里引用吧友@烈火专家 在我上一个帖子的回复,来说明不等价和信息丢失产生的问题。
      这里有2只青蛙
      抓起第一只看了看 发现是雄的
      抓起第二只看了看 发现也是雄的
      那么这2只青蛙中 存在雌的概率是多少?
      答案是0
      可这时有人跑了出来 做了2番推论
      推论1 “2只都是雄的”==>"至少有1只是雄的"
      推论2 "至少有1只是雄的"==>“存在雌的概率为2/3”
      2次推论都是正确的 都从一个事实推导出了另一个事实
      问题在哪里?
      原本我们已经有非常多的信息做这个推论 “2只都是雄的”==>“存在雌的概率为0”
      但偏偏多此一举 把一个强条件变成了一个弱条件 丢掉了信息
      --------------------------------------------
      原题中“有且仅有一只叫了一声 且发出叫声的这只是雄性”
      这条件是个强条件
      很多人总是因为“不能具体地分清楚是哪知叫的”
      就很直接地将其理解为“至少有一只是雄性”
      但这2个条件可是不等价的 叫的和没叫的已经是区分了
      最终用一个弱条件 得到了不准确的2/3的结论
      --我们原本知道更多的信息 可以得到更精确的1/2的结论
      别看他们后面把 “雄雄 雄雌 雌雄 雌雌 并舍去 雌雌组合” 这一套搞清楚了
      但他们第一步就把一个强条件错误地等价于一个弱条件 丢掉了信息


      IP属地:新疆3楼2025-01-09 00:05
      收起回复
        然后,讨论好多人争论的叫声比例的问题。这里就要用到我再1楼最后提到的那个关键点了,看李永乐自己分析中,也有一句话被我用感叹号夹在中间,就是“如果你向前走,一只青蛙是雌性的概率只有50%,这个呢是很好计算的”,这一句话也很关键,因为从这句话,我们可以得到一个共识,未出声的前方青蛙雌雄概率均为50%。
        那么什么情况下,前方未发声的青蛙雌雄概率为50%呢?有两种可能,
        第一种是在雌雄青蛙发声概率相等的情况下!
        第二种是在雌雄青蛙发出声音概率均为0或者说趋近于0的情况下!
        当然,第二种可以说算是第一种的一个特殊点位,因为雌雄都趋近于0,所以可以说相等。但是,当雌雄都趋近于0的同时,也有可能雌雄青蛙的叫声概率比值差距很大。比如雄性叫概率千分之一,雌性叫概率十万分之一。
        当然,从数学角度看,两个都趋近于0是更合理的,因为抽象的数学概念中,无论雌雄,在某一瞬间开始叫的概率都是0,瞬间是个时间点,是没有长度的,概率只能是0。和在[0,1]区间随意取一个实数一样,取到任意实数的概率都是0,因为任意一个实数都是一个没有长度的点。
        下面是我用python自己跑的概率。


        IP属地:新疆4楼2025-01-09 00:15
        收起回复


          IP属地:新疆5楼2025-01-09 00:19
          回复
            图中a即为听到雄性青蛙叫声的情况,b为存在雌性青蛙的情况。比例为接近1/2,。
            具体代码如下:
            import random
            a = 0
            b = 0
            for l in range(0, 1000000): //跑100万次
            i = random.randint(0, 1) //0为雌性,1为雄性
            r1 = random.randint(1, 100000)
            r2 = random.randint(1, 100000)
            if i == 0 and r1 <= 10: //r1<10为万分之一概率发声 ,
            x = 1
            else:
            if i == 0 and r1 > 10:
            x = 2
            else:
            if i == 1 and r2 <= 100: //r2<100为千分之一概率发声 ,
            x = 3
            else:
            if i == 1 and r2 > 100:
            x = 4
            else:
            x = 5
            g = g + 1
            //x为1,2,3,4分别代表雌性发声、雌性不发声、雄性发声、雄性不发声。
            j = random.randint(0, 1)
            r3 = random.randint(1, 100000)
            r4 = random.randint(1, 100000)
            if j == 0 and r3 <= 10:
            y = 1
            else:
            if j == 0 and r3 > 10:
            y = 2
            else:
            if j == 1 and r4 <= 100:
            y = 3
            else:
            if j == 1 and r4 > 100:
            y = 4
            else:
            y = 5
            g = g + 1
            //y为1,2,3,4分别代表雌性发声、雌性不发声、雄性发声、雄性不发声。
            k = 0
            if x == 3 and y!= 3 and y!= 1: //x为雄性发声,y不发声
            k = 1
            else:
            if y == 3 and x!= 3 and x!= 1: //y为雄性发声,x不发声
            k = 1
            else:
            k = 0
            if k == 1:
            a = a + 1
            if x == 2 or y==2: //有不发声雌性
            b = b + 1
            else:
            b = b
            else:
            a = a
            print("Final a:", a)
            print("Final b:", b)
            print("Final x:", x)
            print("Final y:", y)


            IP属地:新疆6楼2025-01-09 00:26
            收起回复
              先说一下,概率学,是在一片区域内,以往出现过的情况,统计出来,得出的结论,不是一个公式生搬硬套(那些什么培训班就喜欢生搬硬套)
              现在再谈谈正题,
              既然两只青蛙中,有一只确定了是雄,要分辨的是另一只是雄或者雌,
              那与雄雄还有什么关系呢?
              然后雌雄和雄雌在统计中,计算一次即可,要分雌雄和雄雌两种做什么,又不是统计先后。


              IP属地:广东来自Android客户端7楼2025-01-09 00:33
              收起回复
                此外,从最开始分析的,听声音分辨雌雄是特指,易知,即使不考虑不发声时雌蛙雄蛙比例各百分之50,也就是雌蛙雄蛙发声概率不同时趋近于0,且有较大差距,仍然可以得到前后出现雌蛙的概率相等。
                如吧友@椰子之下 编程跑出来的概率,现实雌蛙不发声,雄蛙发声概率50%和100%情况下,前后方雌蛙出现比例同时是2/3和100%。


                IP属地:新疆8楼2025-01-09 00:36
                收起回复
                  2025-06-15 09:34:26
                  广告
                  看完我依然偏向2/3,首先题目本身就不是严谨的数学表达式,特指泛指这种咬文嚼字的东西每个人的理解角度不同估计掰扯几千字也未必能有结果,所以只能看双方在概率分布这里的分歧点,其实核心分歧就是当排除雌雌后到底是雌雄/雄雌/雄雄各占1/3还是雄雄概率高于另外俩。但是看你上面解释包括两段代码都引入了一个条件即“设某只青蛙叫的概率为xx”也就是默认了在当前情况下每只青蛙都有相同的概率出声。


                  IP属地:内蒙古来自iPhone客户端9楼2025-01-09 02:52
                  收起回复
                    终于看明白了,真是1/2谢谢你


                    IP属地:重庆来自iPhone客户端10楼2025-01-09 03:36
                    回复
                      叫 不叫
                      雄 雄
                      雄 雌
                      雌 雄
                      雌 雌
                      实际上是把后两种都排除了


                      IP属地:北京来自iPhone客户端11楼2025-01-09 04:37
                      收起回复
                        凡是对这种简单概率题长篇大论的,99%是错的,而且那种答案的答主多半没学过大学水平的概率与统计,中学的也忘了。


                        IP属地:广东来自Android客户端12楼2025-01-09 04:46
                        收起回复
                          我是这么理解的,
                          如果没回头看的时候,听到后面有雄性青蛙叫声,由于判断不出是哪只叫的,概率是2/3
                          如果回头看到了哪只青蛙发出雄性叫声,那么概率是1/2


                          IP属地:河北来自Android客户端13楼2025-01-09 07:29
                          收起回复
                            坐等楼主写个论文发表出来,记得加上其它角度讨论情况,比如说假设雄蛙雌蛙的叫是独立分布,即假设雄蛙叫的概率是P,雌蛙叫的概率是Q,从这个角度研究一下


                            IP属地:山东来自Android客户端14楼2025-01-09 08:18
                            回复
                              2025-06-15 09:28:26
                              广告
                              太长懒得看,但我看了李永乐那个视频,我觉得很明显他说的是错的。凭啥默认“雄雄,雄雌,雌雄”这三种情况等概率?一般来说当然是雄雄的情况有更大概率发出一个雄性的叫声


                              IP属地:英国来自iPhone客户端16楼2025-01-09 08:57
                              收起回复