※ 引述《asd823 (Jason)》之铭言:
: 这篇只单纯聊抽奖机制猜测,之前再舰娘板也有大概聊过这种话题,
原文大量误导我就不附上了.
直接讲结论, 想要控制抽卡结果直接求神问卜都比在那边想一堆有的没的程式写法有用
我是不知道为什么一堆人对随机数是建表产生的这么情有独钟
这个问题可以分三个面向讨论
一. 到底什么是建表, 什么是随机数
除非真的有人去弄台仪器来产生真随机数,
不然电脑的随机数算法就是很单纯的一个数字套公式算出下一个数字, 然后一直往下套
以C来说, 那个公式经过很巧妙的选择使它在范围内的数字都会跑过一次
也就是说把所有数字都跑过一次以后就会循环了
....
有没有很熟悉? 这不就一堆人信誓旦旦说的建表?
所以我一直搞不懂建个表来跑转蛋的理由在那. 建个公用表还要考虑一堆其他的问题.
就算其他语言的随机算法不一样, 大不了尻个C的随机就解决了好吗
别再建表啦!
二. 有表以后是否就可以破解转蛋
一句话, 单机可以, 网络不可能.
古早时代的单机RPG因为会用到随机的场合较少,
而且也没有做把时间套进去当种子的概念,
所以很多游戏可以靠重开机(种子固定)以后做固定动作产生固定结果刷宝
当然现代单机游戏有可能可以, 理论上你只要把开游戏时间精确到"毫秒"或是"微秒"
然后再搞清楚那些地方会呼叫随机或重置随机种子, 再破解它的运算方式
你就可以控制随机数了
我要求不多, 麻烦来个人随便找款5年内的游戏示范上面这些步骤就好了
然后再讲到网络游戏, 除了上面那些要求以外,
你还得先知道服务器啥时开机 (一样精确到"毫秒"或"微秒")
还得知道你在进行操作的时候全世界有多少人做了其他会影响随机的操作
然后恭喜, 你可以控制转蛋结果了
三. 是否有人真的随机数是建表一个一个抽的?
有, 单机游戏我有看过. 它的目的是要维持在一个表内的机率恒定.
比如说角色可以升到50级, 这49级间总共会加100点生命
那我可以把这100点建个表随机撒到49级内, 这样每个人升每一级加的都不一样
但50级时大家生命都会多100.
但是会这样搞的人少之又少, 原因无他, 这超级麻烦
假设今天我想要改成加120点生命怎么办? 不就每个角色都要修正一次这张表
新创的角色表可以直接用新的建法
而如果有人已经30级了, 就要在剩下的20级内洒20点
已经50的人就要直接加20点
与其找自己麻烦还不如直接建一张表写清楚每一级是多少生命, 大家都照着跑
用在转蛋更是找自己麻烦
一般场合上面就讲过了, 直接叫随机出来用就好没必要画蛇添足再弄个表
但有时候可能大奖只要有限定数量
这种场合实务上多半是机率写好以后再加个限制数量上去
比在那边弄个公用表简单多了
可能会有人讲说公用表可以控制大奖要什么时候出, 不会一开始就出
我是不知道讲这句话是想把公用表建多大
是我的话就直接弄个前多少次抽奖绝对不会中大奖就好了
然后这种东西弄多了被玩家戳爆肯定就GG了
是我的话就不要搞那么多怪招, 直接随机数下去, 出事还可以学龙珠公布原始码, 多棒
不然弄个表到时候公布原始码被大家发现有公用表多不方便