结果出乎所有人意料,张彪自己也没想到人生中的第二次和第一次离得这么近,站在舞台边不知道要不要再上去一次。
韩路一迅速打开控制台查看代码。
这个程序很简单,后面没有后端服务器,所有算法逻辑都在浏览器里。代码虽经过丑化压缩,韩路一还是通过视界定位了相关代码段落。
抽奖的随机逻辑没有问题,但每次抽奖都被视为一次独立事件,不会考虑之前的结果。所以连续运行时,确实可能出现同一个人中多个奖项的情况。
韩路一看代码的画面也实时投在大屏幕上,可这种丑化过的代码,即使是资深程序员也看不懂。
小杨本身是运营岗,自然更不懂,他大着胆子问:“韩总,是不是程序出Bug了?怎么连续两次都是彪哥啊?”
韩路一知道在场员工不是都懂原理,准备解释:“代码本身没有Bug,只是和我们对“随机”的理解可能不太一样。”
他想了个例子:“你打游戏吧?暴击率25%的武器,打了三下都没暴击,你觉得第四下会不会暴击?”
“肯定会啊,我打剑圣的时候还会压刀呢!”小杨说道。
“但那其实是伪随机。从数学上说,连续四下不出暴击的概率是32%,连续十下不出的概率也有6%。可游戏真这么做,玩家会骂人的。”
这时,小牛在旁边插嘴:“抽卡的大小保底总知道吧?”
他上一个工作就是在游戏公司做卡池算法,自然了解情况。那才是真的不随机,毕竟要是真随机,脸黑的玩家可不只是骂人,上游戏公司线下堵人的例子都发生过。
小牛这句话一出,周围的人就都懂了。
其实受限于电脑的实现原理,现在的电脑做不到完全随机,所谓随机都是“伪随机”。
当人们需要真随机数时,一般会引入一个不好测算的环境因素,例如鼠标移动轨迹、硬盘噪声、键盘敲击间隔,来达到随机效果。
值得一提的是,Cloudflare总部有一整面熔岩灯,通过摄像头拍下熔岩流动的图像,再把像素值喂给随机数算法来做真随机,未尝不是一种极客的浪漫。
不过这个就不必在现场解释了。
韩路一顺势又讲了一个他入行时听来的趣事:“苹果的iPod播放器刚发售时,有一个随机播放的创新功能,当时苹果工程师费了很大力气做这个随机算法。结果产品发售后,客服收到大量投诉,说你们这个随机怎么连续播放同一首歌啊?调查之后才发现,随机算法没有任何问题,但因为使用用户足够多,随机播放下一首歌总会出现类似AAA,或者ABA这种顺序,用户就会觉得这不是随机的。”
然后韩路一摊了摊手:“只能说,人类的朴素感受无法接受数学意义上的真随机。”
小杨听完总结道:“所以程序没有Bug,只是真随机了,连续两次都随机到了彪哥。”
韩路一点了点头。现在情况该怎么处理,他还是想问一下张彪的意见。
张彪这时已经重新上台,他拿过话筒说道:“我一个人也用不了两台相机,我建议还是重抽吧,最好加一个功能,能把中过奖的人从名单里移除。”
韩路一笑了笑:“好,那我们改一下。这个代码是谁写的?来领工单了。”
钱晓乐在台下站起来,快速跑上台。
这要是一般人,在全场大几十人的注视下写代码——尤其其中还有公司领导和各种媒体——不得吓出心脏病来。
但钱晓乐完全没慌,她打开代码所在文件夹,直接运行了御风。
“修改抽奖逻辑,每次获奖的人从下次抽奖中移除。”
御风不会因为有人看着而紧张,不到两分钟
-->>(第3/4页)(本章未完,请点击下一页继续阅读)