当前位置: 首页 > 后端技术 > Java

科学直男是怎么看的《鱿鱼游戏》

时间:2023-04-01 21:01:15 Java

前言我一直不喜欢看棒子电影。但是11期的时候,我在疯狂追一部剧:《鱿鱼游戏》。这部电影风靡全网,全球播放量达1.11亿次,成为Netflix全球收视率最高的非英语原创剧集。鱿鱼游戏对现实社会的隐喻性很强,加上各种有趣的游戏机制和扣人心弦的画面,成功吸引了很多人。甚至包括剧中的各种道具。.比如我看了之后居然去某宝买了同款糖果:除了盒子和针头还略有还原,这个糖糕的质量真的不怎么样。太厚了,用针戳都戳不进去。我试过了,结果是这样的。..不仅很难拨出来,而且味道也完全不对劲。一个平均卖十几元,毛利有多高可想而知。当然,本文并非以吐槽糖为目的。不知道大家在看这个节目的时候有没有想过:如果我是选手,有多大的机会活下来?估计看过剧的朋友都会说,100%GG。你知道每场比赛的生存概率吗?在本文中,我将从理性和归纳的角度分析每个游戏的生存概率。开始文本。本剧一共有6个游戏,分别是:木头人、糖果、拔河、弹珠、玻璃桥和鱿鱼游戏。木人游戏其实并不难过。主要看大家的心理素质和第一次面对屠杀的恐惧程度。可以肯定的是,游戏中右边的玩家一定有更高的生存几率,因为人偶从左边转头,也就是说右边的人会比右边的人多跑1秒左右左边的人。但总的来说,这不能用数学来概括。暂且用剧中的生存概率来计算木人的生存概率:(456-255)/456=44.08%第二个游戏,糖果游戏,因为每个人得到的图形不同,所以解决问题的思路也不同。默认情况下,这个游戏可以使用“作弊”方法,可以用火溶解,可以用来舔狗。它还涉及一点现场反应。同样不能通过数学归纳法得出。我们也以游戏中的生存概率作为参考。第一局结束后大家投票决定回家,然后重新决定参加187人,第二局淘汰79人。我们可以得出:糖果游戏的生存概率为:(187-79)/187=57.75%第三局拔河和第四局弹球很简单,淘汰了一半人,存活概率为50%。第二个第5局是重点,玻璃桥。18对玻璃,每对玻璃只有一块玻璃可以承受一个人的重量。当你踩到易碎的玻璃时,玻璃会碎掉,人会掉下去GG。16人一一过去。当然,在知道游戏规则的前提下,我们很容易得出最后一个人活下来的概率是最大的。每个序号的存活概率是多少,这个游戏有多少人存活的概率最大。于是我给玻璃桥写了一个程序模拟1亿次。次数够了,概率的东西才有意义。程序是java写的,写出来用了20分钟。代码如下:publicclassSquidGame{publicstaticvoidmain(String[]args){StopWatchstopWatch=newStopWatch();stopWatch.start();Mapmap=newHashMap<>();//loop总次数,即模拟总次数intloopCount=100000000;//桥上有多少级台阶?intstepNum=18;//游戏中有多少人intpeopleNum=16;=2;//中间变量,每次循环的幸存者数量intsurvivalNum=0;对于(inti=0;i=1&&j<=peopleNum;i--,j++){int计数=0;for(intx=i;x<=peopleNum;x++){count+=map.get(x);}BigDecimalsurvivalRatePercent=newBigDecimal(count).divide(newBigDecimal(loopCount),4,RoundingMode.HALF_UP).multiply(newBigDecimal(100));System.out.println(StrUtil.format("序列号为[{}]的玩家存活率为:{}%",j,survivalRatePercent.toString()));}}publicstaticIntegercalcSurvive(intstepNum,intpeopleNum,intgrassNumPerStep){//当前幸存者intsurvival=peopleNum;//当前试过的玻璃台阶数intcurrentStep=1;//当前试过的step统计还剩多少块玻璃intcurrentGrassNum=glassNumPerStep;while(true){if(currentStep<=stepNum&&survive>0){//1.每一步的生存概率与每一步的玻璃片数量有关,如果每一步有2片玻璃,//死亡概率为50%,有3片玻璃,死亡概率为66.6%,以此类推//2.如果死亡,survival会减1,当前步的眼镜数也会减1//当然,如果是剧中设定,每一步只有2块玻璃,那么这一步,一个人死后,下一个人必须成功//3。如果此人在当前步数存活且存活不变,则currentStep会加1,下一步的玻璃块数会重置为设定值if(newRandom().nextInt(1000)>1000/currentGrassNum){生存--;currentGrassNum--;}else{当前步骤++;currentGrassNum=grassNumPerStep;}}else{//如果当前步数等于上一步或没有幸存者,则游戏结束break;}}返回生存;}}程序在剧中用了16个人,走18步,每一步都是2块玻璃的参数(现在还有这种东西吗?后面会增加难度)已经玩了1亿次了。结果如下:可见7人存活的概率最大。而且,整个生存分布是一个典型的正态分布图:每个序号的前几名玩家基本没有生存希望,而后四名玩家基本可以无后顾之忧。抽到第16个序号的人,存活率高达99.94%。这游戏终究还是一款拼人品的游戏。当然,这个模拟的前提是大家遵守游戏规则。而且,排除了前面的人路过,后面的人不记得是哪块玻璃的情况。在网上搜了一下,关于过玻璃桥的方法有很多讨论。有人说,人是从两根铁梁之间穿过去的。有的说16个人团结在一起,手拉着手,让前面的人去试玻璃,有的说把衣服都脱了,包成一个大布团,后面拖着一条布条,用尽全力砸碎了前玻璃。的。种类。当然,这些方法理论上确实管用,但是当一个vip喝着小酒从很远的地方跑过来的时候,他能不能看你打团,快速增长智慧呢?比赛解释权仍在官方这里。所以别想了。仅仅从数学期望的角度来看,在玻璃桥游戏中,其实最后应该有6到8个人能够活下来。最后,只有3人幸存。难道这届会议恰好低于预期?如果按照标准的游戏规则,在你面前的每个人都至少有一次尝试未知两片玻璃的机会,而且剧中多次出现人性扭曲的一面,那些推倒,同归于尽,这样一来,站在整个参与者群体的角度考虑,白白失去了几次尝试的机会。而少了几次尝试的机会,会直接拉低整个团队的期望值。这也是为什么最后只有3个人活下来的原因。三在程序中,我设置了这样一个参数:grassNumPerStep,每一步有多少块玻璃。剧中的设定是2,那么如果我提高难度,把2块玻璃改成3块玻璃,结果是什么?(我一听就更绝望了)从2块玻璃变成3块玻璃,好像每一步的概率只从50%降低到33.3%。但是还有一个隐藏条件:当有2块玻璃的时候,不管前面的人猜对了还是猜错了,后面的人一定能再成功。而当有3块玻璃时,当前面的人猜错失败时,你还有50%的几率猜错。这种情况要复杂得多。三块玻璃继续模拟1亿次的结果:仅仅加了一块玻璃,存活率就下降的如此厉害,即使是中了16签的幸运儿,存活率也不足24%。估计按照这个设定,第六场比赛就没有人会参加了。..四最后一场比赛无非就是在目前的幸存者中决出一个。其实整场比赛不用数都知道,拿到钱的几率是1/n。也就是说,不管你之前怎么动脑子,骗过、揣测过、骗过,就算到了最后一层,最后的生存还是要靠人类最原始的蛮力和暴力来解决问题。这部电影具有强烈的反映社会的意味。希望在这个浮躁、物欲横流的社会里,大家都能脚踏实地的生活,不要想着一夜暴富。活着,再接再厉,才是提升幸福感的唯一途径。看到这里的同学,请点赞、观看、分享。