【你问我答】600人一排,每次随机杀掉一个奇数位,几号最安全

问题描述:

600个人站一排,每次随机杀掉一个奇数位的人,你认为几号最安全?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入

------------
#我也有问题想询问牛友,怎么办?

欢迎私信@筱茜 说明你的问题,将根据问题具体情况排期进入【你问我答】专场~
私信请注明参与【你问我答】专场哦~

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!
#产品##运营##悬赏#
全部评论
用JAVA模拟了60W次,发现这个居然是严格单调递增的~~ 照这个趋势来说,应该是600最安全了,嗯就是这样的。
点赞 回复
分享
发布于 2019-08-27 13:55
就平均安全性来说应当是2号把,在1号不死的情况下,2号100%是不会死的; 就最终存活几率来说应当是600号,因为在600处于队列末尾,每死两个人600就会变成偶数(在600号变成奇数时没被杀的情况下)。 接着分析,总共有300个奇数人(技术人??),第一次在这三百个技术人(哈哈哈哈哈)当中抽取一人kill掉,队伍中间的数总是奇偶交替不定,但600号在末尾,每隔一回合,600号就会变一次偶数,该回合必定安全(当然,这也是建立在600号在奇数回合不死)。 但是1号始终是1号,也就是说1号每一轮都有被kill的风险,即一号在筛至最后两人时是必定会死的,在一号死后,2号也就变成了1号,即2号也是“必定”会死的(怎么逃脱这个”必定“?唯有1号连续逃脱598轮kill,在第599轮被杀掉,这个概率。。emmmm)。 --------------------------------** 从这个角度来说只有600不是必定会死,即:存活到最后的“希望”独独属于600号一人;除了600号,在某种意义上来讲,只要600号不死,他们都“必定”会死(而600死掉是一个概率事件,这个概率还不高)。 从**推论看,2号活到最后的几率,肯定是没有600高的,因为600号死的几率肯定比1号小(1号这个倒霉催的),根本原因在于600号有50%的时间处于免死状态。 但是,会到原点,2号在1号死之前是100%豁免死亡的,在1号死之后,二号接替1号参与每轮“抽奖”。 总结:就人类的生存期望和心理来说:1号 < 中间序号 <(或者是等于??) < 2号 <600号 毕竟没有必死概率的威胁,拥有唯一活至最后的“希望”的就是600号了。
点赞 回复
分享
发布于 2019-08-27 18:45
百信银行
校招火热招聘中
官网直投
作者:希望offer!=0 链接:https://www.nowcoder.com/discuss/234989?type=6 来源:牛客网 个人观点,欢迎讨论。 我们首先看第一次,所有偶数都是安全的,所有奇数位都有1/300的可能性被杀掉。 假设这里是杀掉的第2*k+1的位置,那么2k(包含2k)以前的数被杀情况和第一轮一样偶数不被杀,奇数被杀,2k+2(包含)以后的数被杀的情况刚好相反,偶数被杀,奇数不被杀。 那么一个偶数2*m在第n轮仍为偶数的可能性为前n-1次击杀发生在2m前有偶数次,为奇数的可能性为n-1次击杀发生在2m前有奇数次。反之得到奇数2*m+1在第n轮仍为奇数的可能性为n-1次击杀发生在2m+1前有奇数次,为偶数的可能性为发生在前为偶数次。 假设目前一共发生了n轮,马上开始n+1轮:(这里要注意,每2轮减少一个奇数。不是每一轮减少一个奇数。如果有600个数,有300个奇数,如果是599个数,仍然有300个奇数) 首先对前面回帖提出的2来计算一下概率,因为1永远是奇数,那么被击杀的概率为f(n,600)=1/300+299/300*1/300+299/300*299/300*1/299+....; 如果1在第一次死掉了,2变为1后,被击杀的概率为1/300*f(n-1,599); 如果1在第二次死掉了,2被击杀掉的概率为299/300*1/300*f(n-2,598); 以下类推。 我下面列举n从1到600变化,1和2被击杀的概率的变动情况:(计算机计算,可能有误差,第一行为1,第二行为2被击杀的概率。) 60 120 180 240 300 360 420  480 540 600 0.19 0.36 0.51 0.64 0.75 0.84 0.91 0.96 0.99 1.0 0.019 0.074 0.16 0.27 0.40 0.55 0.69 0.83 0.94 1.0 再针对上面回帖说的600进行一个概率说明: 如果已经进行了奇数轮,那么600会变成一个奇数,会有概率被杀。偶数轮则绝对不会。根据每两轮减少一个奇数值,那么第n轮,600被击杀的概率为: n为偶数:0 n为奇数:600在前面活着的概率*1/(300-n/2) 同样我们计算一下概率变动(这里取奇数的n,因为有很多四舍五入会丢失信息,299后采用三位): 59  119 179 239 299 359 419 479 539 599 0.10 0.20 0.30 0.40 0.497 0.597 0.697 0.797 0.897 0.997 个人观点:这里存活的概率是和击杀轮次有关,在轮次比较小的时候,倾向于选小的数字2,轮次比较大的时候,600活下来的概率会相对大一点。因为轮次大的时候,1死掉的可能性变的很大,导致了2死掉的可能性变大了。但是600是每隔两轮才有危险,到后期就有优势了。  
点赞 回复
分享
发布于 2019-08-27 16:32
2号?除非1号被杀,否则2号不可能被杀,但是概率要怎么算呢。。。😂
点赞 回复
分享
发布于 2019-08-27 12:13
我选600,他排到奇数位时所有奇数位被杀的概率是一样的,但是一旦是前面的人被杀,他每轮都能进到偶数保一轮命,号越靠在前面的一旦他之前的人被杀了,他就会排到1号,那每次都有被杀的风险,所以选最后的600号,个人小感觉,哈哈😄😄😄
点赞 回复
分享
发布于 2019-08-27 12:32
永乐大帝
点赞 回复
分享
发布于 2019-08-27 12:38
看起来是2号,但是有坑点,一旦1号被杀,那自己次次都有被杀几率,这个概率将随着数量减少而增大,我认为600靠谱,每次进行多少轮次只有一半轮次会有被杀可能,并且前面的人死亡几率几率很大,自己很有可能就会避免将近一半的杀人轮次。
点赞 回复
分享
发布于 2019-08-27 12:58
512呗  典型的约瑟夫环问题 2二进制来算 600介于2的9次方和10次方之间,所以是2的9次方
点赞 回复
分享
发布于 2019-08-27 12:58
2号吧,因为奇数位开始就有可能被杀,而其它偶数位,他前面任意一个被杀,他都会变成奇数位,而2号只有一被杀才会,概率要小
点赞 回复
分享
发布于 2019-08-27 14:12
可能要看杀多少留多少吧,,,
点赞 回复
分享
发布于 2019-08-27 14:31
 第一眼认为2号的存活概率很大,因为2号有1号作为“保险”,但是别忘了我们是要杀到只剩一个人到😂,1号作为“保险”,生效到概率只有         double rate = 1;         for (int i = 600; i > 3; i--) {             rate *= ((i / 2 - 1) *1.0/ (i / 2));         }         System.out.println(rate); 结果为 1.114827201783725E-5  😂
点赞 回复
分享
发布于 2019-08-27 14:52
而600号的话,每隔一次能保证100%存活, double rate = 1;        for (int i = 600; i > 3; i--) {            if(i%2 ==0) {                rate *= ((i / 2 - 1) * 1.0 / (i / 2));            }        }        System.out.println(rate);结果为0.003(可以说是非常高了)
点赞 回复
分享
发布于 2019-08-27 15:00
看了上面的帖子,各种假设,各种Java代码编译器结论。想起了网络上的一个段子: 每次去掉一个过后,剩余的奇偶位没有互换吗? 1-600一排,去掉随机一个奇数位,剩余的599个是“偶数位变奇数位,奇数位变偶数位”。 所以所有的概率是一样的,相比较安全的应该是第一次600全排时的300个奇数位。
点赞 回复
分享
发布于 2019-08-27 18:08
1号永远是奇数,故1号死的机会是最大的,由于穷尽枚举,故1号是必死的 1不死的轮次下,2号永远安全,其他人每轮随着有人被杀轮换奇偶 一但1号死亡,2号自动变为1号,触发穷尽枚举下的必死结果, 由此推论,牌序越靠前,死亡概率越大,故理论死亡率最低的为偶数队伍的最后一人,即为第600位
点赞 回复
分享
发布于 2019-08-28 16:39

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务