范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

从羊了个羊看随机数的生成原理

  你的《羊了个羊》第二关通关了吗?
  作为一款三消类的休闲小游戏,《羊了个羊》虽然在玩法上并没有多大创新,但却以其相邻关卡间巨大的游戏难度落差成功出圈。讨论度提高的同时,也招致了一些批评的声音,主要是指责《羊了个羊》毫无游戏性可言,罪状无一例外都提到同一个词—— 「随机性」 。
  简单讲就是,三消类的游戏虽然看起来是一堆混乱无序的元素,但大体遵循一些默认的游戏规则,比如 「每种元素的数量以及所有元素的总数量一定数字3的倍数」 ,以保证所有的元素最终都能配对消除并获胜,只是每种元素出现的时机是随机的而已。
  但《羊了个羊》偏偏"不讲武德",它让每种元素出现的概率都是随机的,也就是批评者口中的"真随机性",这样导致的结果就是,你分配到的牌局可能从一开始就是个死局,等你玩到最后才发现根本无法完全消除。
  最后的无解情况.png
  今天我们不讨论《羊了个羊》"武德"问题,但既然提到了游戏中的随机性问题,那我们就想站在程序的角度来好好说道说道了~
  大家好,我是玩羊玩到晚上要数羊睡觉的椎锋陷陈,今天我们要分享的主题是 「随机数的生成原理」 。
  可能有读者要产生疑惑了,我们讨论的不是游戏中的随机性问题吗,怎么变成了随机数的生成原理了?这是因为,随机数本身就是随机性所产生的结果,又是反过来指导游戏行为的依据,比如《羊了个羊》中每回合出现的元素种类,所以引申出来讨论随机数的生成原理并不生硬。
  这里我们首先要探究的一个问题就是,游戏中产生的随机数,是真的随机数吗?很遗憾,并不是,这里面大部分产生的都是 「伪随机数」 。 伪随机数是什么?
  计算机是确定性的,这意味着其产生的所有行为,都是由其预先编写的所有指令所决定的,仅依赖一个确定性的事物,是无法产生一个随机性的结果的。
  随机数.png
  我们拿到的所谓随机数,只是看起来随机而已,也就是说, 「只是符合统计学上对于随机性认定的要求,但随机数的产生过程却是确定的」 。
  什么意思呢?
  首先, 「伪随机数生成器内部制定了一个算法,本质上就是一个数学公式」 。公式所得到的随机数集是一个序列,「序列中的每一个随机数,都是由前一个随机数代入相同的公式计算得出的」 。
  而序列的起始值,我们称之为 「种子数」 ,决定了整个随机数序列的所有数值。
  所以,理论上,我们只要知道伪随机数生成器的种子数和内部算法,就可以推演出整个随机数序列。因此,伪随机数生成器是不安全的,不能用于安全系数要求高的场合,比如登录时默认的随机密码生成,但对于《羊了个羊》这一类的休闲小游戏来讲还是没啥问题的。
  那么,伪随机数生成器都有哪些算法呢?  伪随机数生成器算法平方取中法
  平方取中法是由冯·诺伊曼提出的一种产生均匀伪随机数的算法,算法的原理很简单,首先选定一个种子数,假设是一个四位数字,比如4321。
  接着,正如算法的名字所表述,先对种子数进行平方4321^2=18671041,再取中间四位数字18[6710]41,从而得到序列下一项6710。
  如果平方后不足八位,则在数字的前面填充0直至满八位,如241^2=58081=00[0580]81=0580。
  随后重复这个过程,就能持续生成多个位于0到9999之间的随机数。  线性同余生成器
  不过,这显然不能满足我们需要生成伪随机数的多数场景。目前生成伪随机数的最佳算法,是一种叫做 「马特赛特旋转演算法」 的现代算法,其基于更简单的「线性同余生成器」 ,一种常见的伪随机数生成器。
  线性同余生成器要求有4个输入,除了固定要求的种子数之外,还有 「模数m、乘数a以及增量c」 。
  计算方式是种子数乘以a再加上c,然后把计算结果对m进行求模,也即除以m并取余数。
  线性同余生成器.png
  随后重复这个过程,就可以得到余下的随机数序列,得到的随机数将位于0到m-1之间。
  算法过程我们了解了,但线性同余生成器又是凭借什么优势,在伪随机数生成这方面更受青睐的呢?  线性同余生成器的优势
  其实,无论是哪一种伪随机数生成器算法,除了前面所提到的安全性问题之外,还有一个相同的天然缺陷,那就是其生成的随机数序列,无论长短,最终都会重复出现,即形成一个循环。
  因此就有了 「周期」 的说法,所谓周期,指的就是「在两次循环之间出现的不同随机数项的数目」 。
  原因我们前面已经讲了:恒定的计算公式,以及依赖于前一个随机数。
  我贴一部知名恐怖电影的海报你们就懂了:
  恐怖游轮.png
  而线性同余生成器的优势在于,其周期的长度是m-1,即取决于模数m,只要保证m的取值尽量大,比如2的32次方,就能极大地延长随机数重复的周期,但也只是延长,本质上仍无法避免。
  那么,真的就无解了吗?既然有伪随机数的说法,那有没有真随机数呢?
  还是有的。  真随机数怎么得到?
  既然从内部无法自我解决,那就寻求外部的帮助吧,也即接受一个我们认为是随机性的外部事物的输入作为种子数,从而使得经过计算机处理之后的结果也是随机的,这个外部事物就是——自然界的噪声。
  这个 「噪声」 是物理学上的含义,指的是一切不规则的信号,而不一定是声音。
  比如RANDOM.ORG这个网站,就是以大气噪声,也即自然界雷暴活动所产生的电磁辐射作为随机性的外部事物的输入,借此提供各项服务以满足各种各样需要生成真随机数的场景。
  闪电击中广州塔.png
  既然需要外部事物的输入,那也就意味着 「需要额外的硬件设备支持」 ,以收集和测量随机的物理现象或普通事件。但也不用把它想象的过于高大上,诸如鼠标、键盘的点击都可以作为随机事件的种子数。
  另一方面,由于搜集外部的数据需要时间,也导致了真随机数生成器的另外一个缺点—— 「不够快」 。以及,由于随机性的外部事物的输入很难重现,也将导致我们「无法复现随机数生成过程」 ,测试流程常常无法正常进行。
  不过,己之缺点即是彼之优点, 「对于伪随机数生成器来说,不需要外部设备支持、计算效率高、可复现则是其明显的优势」 。
  好了,这个就是今天要分享的内容。
  总结一下,《羊了个羊》每种元素的随机生成使用的仍然是 「伪随机数生成器」 ,因此说它"真随机性"其实并不太准确。
  而其宣传所谓的通关率不到0.1%,与游戏难度本身关系不大,你无法通过大概率是你刚好被分配到的牌局没有达到三消类游戏通关的基本要求。
  「最后,祝你是那0.1%的幸运儿,游戏如是,生活也如是。」
  通关截图.png  参考
  How to Generate Pseudorandom Numbers | Infinite Series https://www.youtube.com/watch?v=C82JyCmtKWg
  作者:椎锋陷陈
  来源:微信公众号:椎锋陷陈
  出处:https://mp.weixin.qq.com/s/ULJzyBO2iMiB5Wvc6OnKRg

去过印度的朋友,说一说在印度的感受如何?工作原因,我被迫在印度待了2个月,期间最大的感受就是刺激,不光是视觉方面的冲击,更有心灵上的冲击,如果你身体状态不好,尤其是肠胃不好,那我不建议你去印度,因为很可能会有来无回。20发现最近头条,很多买了车,然后要拍几十个视频,这是什么心态?炫富,想在头条显摆一下,真正富人还是真人不露相的,有的富人甚至更低调,车是代步的,本来无可非议,连拍晒几十个视频就是炫耀。很容易理解,一般来说两种心态。一种为炫耀型心态,那就是一种为什么现在人们都不怎么喜欢吃月饼了?现在科学高度发达了,社会文明了,可是许多传统的东西都在倒退了,尤其是传统的食品。月饼是中国人最美好的团圆像征,中秋赏月,哪能少得了那五花八门的月饼呢?过去那些五仁,枣泥,桂花月饼,喝一斤白酒相当于多少瓶啤酒?这要看酒精度,一般啤酒都是十度左右。酒精度越高,醉酒程度越厉害,喝一瓶38度的白酒大概相当于十瓶普通啤酒吧。一瓶45度相当于14瓶啤酒,一瓶52度相关于18瓶啤酒吧我平时没事喜欢喝连州两日自驾游行程安排?连州有很多好玩的自驾游景点,而且从广州到连州的路途不远。现在已经开通广乐高速,从广乐高速转入清连高速大概只需要三个小时左右,直接走广连高速也可以,不过可能在节假日期间车流量会较大。美国苹果手机13。一出现中国人就疯抢这说明什么?说明中国人都不傻,花着自己辛苦挣来的钱当然买最好的产品感谢您的阅读!为什么iPhone13出现之后,中国消费者开始出现疯抢的情况。iPhone13这款手机为何拥有这么强的消费者拥趸就喜欢玩刷装备的单机游戏,除了泰坦之旅有没有什么推荐?要说刷装备的游戏必然离不开始祖级的暗黑破坏神了。暗黑三也出了好几年了,前些日子出了死灵包可以玩死灵法师了。这游戏在刷刷刷类型游戏里的地位不用我多说了。恐怖黎明这也是款非常不错的作品带兵打仗好玩的游戏有哪些?率领千军万马,在战场上冲锋陷阵,简直不能再刺激,也许这就是战争的魅力。当然,这种类型的佳作还是有很多的,下面,棒棒堂就单机网游各推荐几个吧。单机全面战争系列说到带兵打仗的游戏,世嘉哪些英雄后期可以见谁秒谁?后期见谁秒谁,让我瞬间想到了几个英雄。第一个孙尚香大小姐发气劈来真的很任性,一言不合就打滚,地上滚来滚去的谁也承受不了她怒火,后期6神装后爆发非常的恐怖,一技能翻滚的暴击五六千,脆你到广州的第一感觉是什么?第一感觉就是什么都好,高楼大厦。洋楼别墅,大城市的感觉。唯一不习惯的就是生活,四川人吗离了辣椒就不习惯,当时在工地上好多食堂都是广东人开的,做白味的多,那真的是吃来开吐啊,好的小店经典fc游戏坦克大战能不能打通关的?为什么?当年玩坦克大战有多少玩家曾经通关了呢?估计没有吧!不过那时候也有玩家说自己曾经打通关过,而且还见到了最终的BOSS,是一个大坦克。在那个年代,小伙伴们说什么就是什么了,没有人去怀疑
湖人官宣浓眉!米切尔做出新决定,篮网大获成功,鹈鹕中锋又受伤今年休赛期快要结束了,没有比赛的日子也就没有话题,这是很难熬的一段时间。近期尽管有大型交易出现,但总体来说还是没有动摇联盟的格局。总的来说,今年休赛期维持了之前的现状。那么近期有哪NBA早报一夜9签约,篮网公牛达成签约,冠军中锋加盟广州龙狮北京时间9月8日,虽然正值NBA休赛期,各球队依然没有放弃补强。为了迎接即将开始的训练营和季前赛,各球队都进行了最后的补强计划。随着越来越多的球员再就业,自由市也有球员至今因为各种男篮欧洲杯积分榜字母哥41分希腊小组第一,塞尔维亚4连胜男篮欧洲杯继续激战,4个小组结束了第四轮的较量,字母哥约基奇东契奇均有不俗的发挥而且带队拿到胜利,我们一起看看最新的积分榜变动。欧洲杯最新积分榜C组的希腊本轮和乌克兰相遇,两队争夺庐山会议后,四位四野名将离开军队,都去了哪里?一位号称是中国的巴顿将军,亮剑中李云龙的原型之一,敢于和林彪叫板。一位参加了长征百团大战辽沈战役抗美援朝等重大战役,立下无数战功。一位是第四野战军早期创建者之一,被誉为国防科技现代国乒5胜2负!周启豪不敌韩国名将,女双八强占据四席,陈幸同晋级2022年9月7日,乒乓球WTT阿曼赛继续进行,正赛拉开序幕,男双女双率先决出八强席位,国乒5胜2负,男双牛冠凯赛林威徐海东梁俨苧,女双陈幸同钱天一楚涵雯王一朵臧小桐吴洋晨晋级,周这类人容易得肺ai,真的假的?有几类人得肺癌的风险特别大,快来看看你属于这几类人吗?据统计,我国每年新发肺癌病例大约73万多,而且发病人群越来越年轻化,那么哪些人容易患肺癌呢?首先,长期吸烟的人,包括工作或者生你爱吃的无糖食品真的无糖吗?无糖压缩饼干无糖低脂燕麦无糖低卡维他命饮料粉0糖0脂0卡气泡水糖尿病人专用无糖零食无糖食品作为一种自带健康光环的食品,其国民接受度愈来愈高,成为不少健康养生者的心头好。在0糖更健康喝咖啡对身体有什么好处和坏处?什么咖啡对身体有益,不妨了解下喝咖啡对身体有什么好处和坏处?什么咖啡对身体有益,不妨了解下!在我们的日常生活中,喝咖啡已经像喝白开水一样平常,很多大学生上班族高管白领等都会每天喝上一杯,所以现在的咖啡也算是比较帕金森年轻人会得吗?帕金森病在传统观念里认为是老年病,发病率随着年龄的增长,它会不断地提高,但是帕金森病的本质是脑子里面的黑质纹状体的神经元的死亡引起的症状,因此,无论是年轻人还是老年人,只要这个区域石家庄二中篮球强校是怎样炼成的多次在全国全省中学生篮球赛事中获得优异成绩,石家庄二中篮球强校是怎样炼成的石家庄二中男篮在比赛中。石家庄二中供图8月14日,石家庄二中男篮首次加冕全国高中篮球联赛总冠军8月19日,火箭帮掌控76人哈登坐实老大!斯通瞅准机会再追寒冰射手火箭帮掌控76人哈登坐实老大!76人球队内部正在发生一些变化,管理层借着休赛期的阵容补强,重新划分了球星的势力范围,哈登主动降薪得到话语权的回报。76人休赛期签约的几位火箭旧将哈登