作者:OFFER—PLSxD
链接:
https://www.nowcoder.com/discuss/526897
来源:牛客网
首先,第一天出来的人,担当“计数者”,它把灯开起来(原来开着就不必动了), 然后每天出来一个囚犯。 如果他不是“计数者”,并且没有关过灯, 并且灯开着, 那么就把灯关了。如果他是“计数者”, 如果灯关了, 就把他开起来(计数+1)。 当然如果灯被关了99次, 那么就去和国王说吧。第一天出来的是“计数者”, 这是一个必然事件, 从第二天开始, 我们要完成以下过程 99 次
出来一个新的囚犯, 然后等待“计数者”出来把灯开起来。 第一次出来新的囚犯的概率是: 99 / 100 --- 除去计数者, 其他任何囚犯出来都满足要求 , 完成这一步的平均时间是 100 / 99 天 完成上面这个过程后,接着要求“计数者”出来,开灯。 这个概率是 1 / 100 , 完成这一步的平均时间是 100 天第二次, 新囚犯出来的概率是 98 / 100, 完成这一步的平均时间是 100 / 98 , 计数者出来的率还是 1 / 100 , 完成这一步的平均时间还是 100 天... 第99次, 新囚犯出来的概率是 1 / 100 (只有一个囚犯没有出来了) , 计数者出来的率还是 1 / 100然后我们把时间加起来:100 / 99 + 100 + 100 / 98 + 100 + ... 100 / 1 + 100= 100 * 99 + 100 * (1 / 99 + 1 / 98 + 1 / 97 + ... + 1)= 9900 + 100 * (1 + 1 / 2 + 1 / 3 + ... 1 / 99) 1 + 1 / 2 + 1 / 3 + ... 1 / 99 这是一个调和级数 大概等于 ln 99 + 1 ,所以上述值为: 10417https://www.ocf.berkeley.edu/~wwu/papers/100prisonersLightBulb.pdf
https://www.bilibili.com/video/BV1ws411j77v李永乐老师 yydsans : 1/3
https://www.bilibili.com/video/av25648623/李永乐老师 yydsans : 换, 不换1/3 ,换2/3
分成10和42, 10 中的所有牌。proof: 第一堆(10张牌里有x张向上),全翻 = 10-x 张向上,等于第二堆向上的牌数
通用解法: 用小的桶不断往大桶填水这里: 5L桶 6L桶0 0 5 00 5 5 5 4 6
二进制,死=1,不死=0,老鼠=bit,答案 lg1000 = 10