WinG
V2EX  ›  问与答

挑战概率题:冰箱 1 有 30 瓶可乐,冰箱 2 里有 31 瓶, 60 天随机拿走 1 瓶..

  •  3
     
  •   WinG · Jul 15, 2020 · 7516 views
    This topic created in 2309 days ago, the information mentioned may be changed or developed.
    冰箱 1 有 30 瓶可乐,冰箱 2 里有 31 瓶,60 天内随机在 1 、2 中拿走 1 瓶..,

    60 天后冰箱 2 刚好剩下 1 瓶的概率是多少?

    据说答错的人极多。
    Supplement 1  ·  Jul 15, 2020
    一个冰箱拿空了再拿另一个冰箱
    Supplement 2  ·  Jul 15, 2020
    不用暴力模拟法,这个概率怎么算?
    Supplement 3  ·  Jul 15, 2020
    最多人错的是:1/2 和 31/61

    正确答案:#36 、#40 、#54 楼

    结帖。
    twor2
    twor2
    Jul 15, 2020❤️1
    1
    请搜索 app 作业帮
    binux
    binux
    Jul 15, 2020❤️9
    2
    概率是 0,60 天后冰箱 2 里最少有 30 瓶。
    Raven316
    Raven316
    Jul 15, 2020
    3
    31/61 吗
    Isight
    Isight
    Jul 15, 2020
    4
    概率主要看冰箱 1 和 2 的位置还有主人的懒惰程度
    dolphintwo
    dolphintwo
    Jul 15, 2020
    5
    31/61 +1,不要想复杂
    imdong
    imdong
    Jul 15, 2020
    6
    打算写代码实现,发现无法解决这个问题。

    因为如果真随机,冰箱的饮料会变成负数。

    所以,必然会出现,某个冰箱先拿空,然后要不要换个冰箱拿的情况。
    FlyPuff
    FlyPuff
    Jul 15, 2020
    7
    请问 60 天后此人体重增加多少~
    chairuosen
    chairuosen
    Jul 15, 2020
    8
    感觉这个问题并不简单。先不要想 30,31 。问题基本等于抛 60 次硬币,正反各 30 次的概率。
    这个问题知乎有问 https://www.zhihu.com/question/362403666/answer/956630635
    duwan
    duwan
    Jul 15, 2020❤️1
    9
    用代码模拟了一下 0.55 左右
    Vegetable
    Vegetable
    Jul 15, 2020❤️1
    10
    61 瓶可乐,拿走 60 瓶。剩下的可能是任意一瓶,每一瓶剩下的概率都是 1/61,剩在 2 的概率是 1*31/61
    Vegetable
    Vegetable
    Jul 15, 2020❤️1
    11
    箱子里有红色球 30 个,蓝色球 31 个,随机从其中拿出 60 个,剩下的球是蓝色的概率是多少?
    Raven316
    Raven316
    Jul 15, 2020❤️1
    12
    @chairuosen 不完全一样,一个冰箱拿空以后就必须拿另一个了
    WinG
    WinG
    OP
    Jul 15, 2020 via Android
    13
    @imdong 对,不是负,一个冰箱拿空了再拿另一个冰箱
    imdong
    imdong
    Jul 15, 2020❤️1
    14
    不用算了,这是 “脑筋急转弯”,2 楼正解

    这是 60 天内 随机 拿走一瓶。
    不是 60 天内 每天随机 拿走一瓶。

    所以冰箱 2 最少还有 30 瓶。

    所以概率 0 。
    WinG
    WinG
    OP
    Jul 15, 2020 via Android
    15
    @duwan 我也是这个结果
    WinG
    WinG
    OP
    Jul 15, 2020 via Android
    16
    @imdong 是第二个意思,我表达不严谨
    WinG
    WinG
    OP
    Jul 15, 2020 via Android
    17
    @binux 是每天拿一瓶,怪我表达不严谨
    lang1pal
    lang1pal
    Jul 15, 2020
    18
    反过来想就是 60 天内把冰箱 1 拿空的概率是多少
    across
    across
    Jul 15, 2020❤️1
    19
    是 50%吧。61 瓶排列组合,最后一个属于 2 号的比例····
    imdong
    imdong
    Jul 15, 2020❤️1
    20


    经过代码测试,一千万次,剩余一瓶次数:5512370,第二次:5513145 。

    55.12%,接下来,只需要找到一个合适的概念范围即可。

    我支持
    LemonButSweet
    LemonButSweet
    Jul 15, 2020
    21
    不应该是二分之一吗....选冰箱的问题?
    across
    across
    Jul 15, 2020
    22
    哦,错了,61 瓶排列组合,最后一个属于 2 号的比例是 31/61
    WinG
    WinG
    OP
    Jul 15, 2020 via Android
    23
    @imdong
    @duwan

    我模拟的也是 0.55 ,不用暴力模拟法,这个概率怎么算?
    119
    119
    Jul 15, 2020
    24
    应该是 1/2,前 59 次不影响结果,最后一次可能为 2:0 、1:1 、0:2,结果为 0+1/3*1/2*1/3
    Banxiaozhuan
    Banxiaozhuan
    Jul 15, 2020
    25
    (0.5) ^ 30
    Vegetable
    Vegetable
    Jul 15, 2020❤️1
    26
    关于程序模拟 0.55 的问题,0.55 对应的是随机选择一个冰箱,1 个冰箱 1 瓶,一个冰箱 2 瓶时,选择他们的可能性相等。而 31/61 考虑的不是冰箱,而是直接拿可乐。
    chairuosen
    chairuosen
    Jul 15, 2020❤️1
    27
    @WinG #23 你如果用 20L 的算法,就是冰箱取空后不换成取另一个冰箱的可乐。则就是我 8L 说的问题
    jinhan13789991
    jinhan13789991
    Jul 15, 2020
    28
    是 1/2 啊,要么 “冰箱 2 刚好剩下 1 瓶” 要么 “冰箱 2 刚好剩下不是 1 瓶”
    /dog
    nuk
    nuk
    Jul 15, 2020
    29
    这个很好计算啊
    按照 11 楼的题目来计算
    概率就是 C(30,60)/C(30,61)
    实际上就是 31/61
    hahastudio
    hahastudio
    Jul 15, 2020❤️3
    30
    我是这么想的:既然其中一个冰箱拿空了就必然会去拿另一个冰箱,那就是怎么这 61 瓶可乐按什么顺序拿的问题
    全排列 61!
    固定第二个冰箱里的某一瓶最后拿,其余 60 瓶的排列 60!
    第二个冰箱有 31 瓶
    那就是 60! * 31 / 61! = 31/61
    hahastudio
    hahastudio
    Jul 15, 2020❤️1
    31
    这样的话,好像等价的问题更好理解:
    61 瓶可乐,30 瓶普通的,31 瓶无糖的,随机拿 60 瓶,最后一瓶是无糖的概率 31/61
    hicdn
    hicdn
    Jul 15, 2020
    32
    等价转换,箱子里有 30 各红球,31 个白球,每次取一个球。求取 60 次后,箱子里剩一个白球的概率。
    wxd92
    wxd92
    Jul 15, 2020 via iPhone
    33
    我来
    C(30,31)C(30,30)/C(60,61)
    总事件 从 61 个瓶取 60 个
    该事件 冰箱 1 30 个全取,冰箱 2 31 个中取 30 个
    hicdn
    hicdn
    Jul 15, 2020
    34
    @hicdn C(30,30)C(30,31)/C(60,61) = 31/61
    nmdx
    nmdx
    Jul 15, 2020 via Android❤️1
    35
    相当于一次性拿 60 瓶,最后剩 1 瓶,那么这 1 瓶是 2 号冰箱的概率就是 31/61 了

    也可以换个角度,一开始先随机拿出来一瓶,后面 60 天随便怎么拿,保证第一瓶是 2 号冰箱的就行,概率为 31/61

    个人意见,仅供参考
    SakuraSa
    SakuraSa
    Jul 15, 2020❤️6
    36
    A 冰箱有 a 瓶,B 冰箱有 b 屏,在 A 、B 冰箱中有可乐的冰箱中等概率取一瓶,最后 B 冰箱剩余 1 瓶的概率。

    解:
    设目标概率函数为: P(a, b)
    由题目理解可得:

    1. 当 a>0, b>0 时:
    P(a, b) = 0.5 * P(a - 1, b) + 0.5 * P(a, b - 1)
    2. 当 a=0 或 b=0 时:
    P(a, 0) = 0
    P(0, b) = 1

    题目可由动态规划得:

    ```python

    import functools.lru_cache

    @lru_cache
    def p(a, b):
    if a and b:
    return 0.5 * p(a - 1, b) + 0.5 * p(a, b - 1)
    else:
    return 1 if b else 0
    ```

    时间复杂度 O(a*b)
    空间复杂度 O(a*b)

    本机运行结果:
    ```
    >> timeit p(30, 31)

    0.5512890865042848
    578 µs ± 11.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
    ```

    另外:31/61 = 0.5081967213114754
    WinG
    WinG
    OP
    Jul 15, 2020 via Android
    37
    @SakuraSa 牛逼!
    gtchan13579
    gtchan13579
    Jul 15, 2020
    38
    最终只有两种结果,要么冰箱 1 剩一瓶,要么冰箱 2 剩一瓶,所以答案 1/2.模拟的是什么鬼,这么简单还需要模拟吗。
    WinG
    WinG
    OP
    Jul 15, 2020 via Android
    39
    @gtchan13579 二分一是最典型的错误答案
    cigarzh
    cigarzh
    Jul 15, 2020❤️2
    40
    ez

    https://www.wolframalpha.com/input/?i=Sum[(60!/((60-i)!*i!)),{i,0,30}]/2^60
    chairuosen
    chairuosen
    Jul 15, 2020
    41
    @gtchan13579 #38 你去面试,要么过要么挂,那么你过的概率就是 50%了?
    kop1989
    kop1989
    Jul 15, 2020
    43
    如果一个冰箱拿空就拿另外一个的话:
    答案是 30 天 a,30 天 b 的概率+31 天 a,29 天 b 的概率 + ... + 60 天 a 的概率之和。
    不知道这算不算暴力法。
    301
    301
    Jul 15, 2020 via Android
    44
    @across #19 赞同 1/2,相当于 30 个 A 和 31 个 B 排序,最后一个是 B 的概率,为 1/2
    LZSZ
    LZSZ
    Jul 15, 2020
    45
    你们大小月都不算的吗
    301
    301
    Jul 15, 2020 via Android
    46
    等等,计算有误,确实是 31/61
    shuaizi
    shuaizi
    Jul 15, 2020
    47
    31/61,
    因为随机拿,每一瓶被剩下的概率都是 1/61,
    剩下的一瓶在第二个冰箱里有 31 种可能
    Xs0ul
    Xs0ul
    Jul 15, 2020❤️4
    48
    等价的问题是,扔 60 次硬币,正面小于等于 30 次的概率,是二项分布的累加和

    具体结果楼上已经用 wolfram alpha 算出来了
    cigarzh
    cigarzh
    Jul 15, 2020❤️3
    49
    解释:

    每天起床抛一枚理想硬币,记录下结果但不去拿可乐(正面冰 1,反面冰 2 )

    到第 60 天晚上按照结果一一拿取可乐。

    则,只要反面的记录小于等于 30 次,明天的最后一瓶必在冰 2 中
    chris31326
    chris31326
    Jul 15, 2020
    50
    0
    60 天内只拿了 1 瓶
    Xs0ul
    Xs0ul
    Jul 15, 2020❤️1
    51
    验证很简单,把数字改小就好了,改成冰箱 1 有 1 瓶,冰箱 2 有 2 瓶,拿两天

    按照 31/61 的做法,结果应该是 1/3

    实际直接暴力解,概率是第一天拿抽冰箱 1 有 1/2,第一天抽到冰箱 2 并且第二天抽到冰箱 1 是 1/4,合计 3/4

    而 3/4 就是 n=2,p=0.5 的二项分布的累加和
    Xs0ul
    Xs0ul
    Jul 15, 2020❤️1
    52
    @Xs0ul #51 修正 1/3 -> 2/3
    jklzhu
    jklzhu
    Jul 15, 2020 via iPhone
    53
    二分之一,只需要考虑最后两个瓶
    sixg0d
    sixg0d
    Jul 15, 2020❤️4
    54
    31/61 是错的。
    转换成摸双色球是不等价的。随机事件都被改了:(在不考虑为空的情况下)原题概率分别为 0.5,而双色球概率是按球数分配。
    转换成排列组合的序列时,的确最后剩下编号 2 的序列占 b/(a+b),但问题在于每个序列并不是等概率的,问题出在一个冰箱为空后之后以概率 1 为摸另一冰箱,造成序列的权重不一样。一个简单的反例考虑 n 个编号 1,1 个编号 2 ;要想剩下编号 2,只能一直以 0.5 的概率选编号 1,最后的概率是 0.5^n 而不是 1/(n+1)
    36 楼 @SakuraSa 提供的递推式是正确的解法(之一)。
    dilu
    dilu
    Jul 15, 2020
    55
    我的理解是一天就拿一瓶 拿空一个冰箱之前,不能从另外一个冰箱拿

    那第一次拿就决定了最后一瓶出现在哪个冰箱

    如果说随机的话,拿第一瓶的概率就是 1/2 怎么就能搞得这么复杂了
    dilu
    dilu
    Jul 15, 2020
    56
    @chairuosen #41 你去面试,要么过要么挂,那么你过的概率就是 50%了?

    但是有前提条件,两个人来面试,你必须录取一个人,针对某个人被录用的概率就是 1/2

    lz 的题目里面说了 必须要拿一瓶的
    gtchan13579
    gtchan13579
    Jul 15, 2020
    57
    @WinG

    我觉得这个问题如果站在上帝视角,那么答案就是你认为的 0.55 以及那种算法,但对于拿可乐的人来说一切条件对于他来说一共有多少瓶可乐,每个冰箱有几瓶,他都不关心, 他只关心今天我要从哪个冰箱拿一瓶,以及万一拿空了那我就从另一个冰箱拿了,所以后面 30 瓶可乐他压根不去考虑选择哪个冰箱。所以就是 30/60=1/2,这是从另一种角度来解释为什么是 1/2.

    @chairuosen
    gtchan13579
    gtchan13579
    Jul 15, 2020
    58
    @gtchan13579 修正一下 57 楼的的说法。
    我觉得这个问题如果站在上帝视角,那么答案就是 0.55 以及那种算法,但对于拿可乐的人来说一切条件对于他来说一共有多少瓶可乐,每个冰箱有几瓶,他都不关心或者不知道, 他只关心今天我要从哪个冰箱拿一瓶,以及万一拿空了那我就从另一个冰箱拿了,所以感觉拿可乐=价于选冰箱了,拿光一个冰箱的可乐之后,冰箱 2 最终剩不剩可乐就是必然事件了,所以我站 1/2.
    oaix
    oaix
    Jul 15, 2020❤️1
    59
    Raven316
    Raven316
    Jul 15, 2020
    60
    题目都没表达清楚啊:到底是随便从 2 个冰箱里拿可乐,还是先等概率选冰箱再拿可乐,说不清楚题意,答案怎么可能正确
    talen666
    talen666
    Jul 15, 2020
    61
    如果改成一个冰箱里有 30 瓶可乐,31 瓶雪碧,最后剩下雪碧的概率是 31/61 吧
    mcfog
    mcfog
    Jul 15, 2020 via Android
    62
    绝大多数有争议的概率题其实都是语文问题
    a4854857
    a4854857
    Jul 15, 2020
    63
    诶.这帮人天天做噩梦说梦回高考
    结果毕业了一问高中概率题答的比谁都积极
    xuewuchen
    xuewuchen
    Jul 15, 2020
    64
    嗨,这不是人说了算吗?剩最后三瓶的时候,就看我心情想剩几瓶了
    Alexhex
    Alexhex
    Jul 15, 2020
    65
    同意,题目有歧义。36 楼的解法是有问题的,单看某一天,从 2 号冰箱取可乐的概率到底是 1/2 还是 31/61,是完全不一样的。“60 天内随机在 1 、2 中拿走 1 瓶”怎么看都是 1/2 的理解。

    如果是 1/2,假设 B 冰箱里只有 30 瓶,问 60 天取空 B 冰箱的概率是多少,和 60 天后剩一瓶的概率没有差别。
    wyz123723
    wyz123723
    Jul 15, 2020
    66
    出这题目的语文不及格,如果按照题意, 确实是 0
    BlackwithBrown
    BlackwithBrown
    Jul 15, 2020
    67
    其实题目的意思是 60 天内 30 天拿 1 的概率吧,计算机算为 0.55 左右
    YUCOAT
    YUCOAT
    Jul 15, 2020
    68
    我觉得答案还是 31/61

    我觉得楼主的问题与下面这个问题是等价的:
    所有可乐瓶的身上都标记一下自己属于哪个冰箱,然后把这 61 瓶可乐放一起,随机取走 60 瓶,然后检查最后一瓶可乐的瓶身,瓶可乐属于冰箱 2 的概率是多少。
    wyz123723
    wyz123723
    Jul 15, 2020
    69
    一个冰箱拿空再拿另一个冰箱什么意思?如果我随机到第一个冰箱那我之后只能拿第一个冰箱的?那概率不是 30/61 吗
    YUCOAT
    YUCOAT
    Jul 15, 2020
    70
    或者我们换一个思路,一共 61 瓶可乐,其中的 60 瓶都会被取走,我们把最后没有被取走的那一瓶称为“幸运儿”。
    现在题目相当于在问“幸运儿”是属于冰箱 2 的概率。

    假设是随机取,那么这 61 瓶可乐,每瓶能成为幸运儿的概率必然是一样的。
    既然如此,那么幸运儿的概率属于冰箱 2 的概率就是 31/61
    yiran0
    yiran0
    Jul 15, 2020
    71
    如果在浙江,1818 黄金眼考虑一下?!
    Meltdown
    Meltdown
    Jul 15, 2020 via Android
    72
    题目有歧义吧,选的时候是每瓶等概率还是每个冰箱有概率没说清楚
    ruokw
    ruokw
    Jul 15, 2020 via Android
    73
    这里面有点问题,比方说 36 楼的 1/2 系数的概率,意味着某一冰箱空之前还需要选择冰箱,为啥当一个空了之后就不需要选择冰箱。对于 31/61 的应该是说明对冰箱不做选择,即 60 天每次一定选一个出来,不管从那个。最简单是说 a 有 1 个 b 有 2 个。现在算算概率。我自己还是觉得 31/61 的最靠谱。
    oshio
    oshio
    Jul 15, 2020❤️2
    74
    @YUCOAT 不等价的。楼主的问题里面,哪怕 1 号冰箱只剩一下 1 瓶,2 号还有 31 瓶,下一次取到 1 号冰箱可乐的概率依然是 1/2,而不是 1/32 。
    plko345
    plko345
    Jul 16, 2020
    75
    额, 最近 ronnie 也在他频道里讲了这个题
    Harry1993
    Harry1993
    Jul 16, 2020
    76
    C(60, 30) / C(61, 30) = 31/61
    wuqingdzx
    wuqingdzx
    Jul 16, 2020
    77
    请多些这样的问题
    bluepikachu
    bluepikachu
    Jul 16, 2020
    78
    @plko345 有关键字指路吗,想去看看
    plko345
    plko345
    Jul 16, 2020
    79
    @bluepikachu 频道叫 "Better Women", 应该是两天前的一个视频
    bluepikachu
    bluepikachu
    Jul 16, 2020
    80
    @plko345 好的,感谢。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2132 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 184ms · UTC 14:38 · PVG 22:38 · LAX 06:38 · JFK 09:38
    ♥ Do have faith in what you're doing.