进阶会员
- UID
- 4376728
- 积分
- 5810
- 可用积分
- 点
- 威望
- 个
- 水滴
- 滴
- 存在感
- 点
- NB
- 点
- 豆币
- 点
- 帖子
- 主题
- 好友
- 精华
- APP积分
- 点
|
如题,先放结论:由于不明原因导致了罐子引用了由相同随机种子生成的随机数队列,从而导致罐子会出现相同的结果,毫无疑问是程序设计时的重大失误
好,现在我们回来看这个公告

重点1 dnf内所有罐子类概率性玩法按照每个单位独立的随机种子运作
要理解这句话我们首先要理解软件开发中所谓的“伪随机”机制,这里涉及到两个概念,一个是随机数列,一个是概率模拟,我们分开解释
随机数列是由计算机借由一个随机数种子生成的一串满足不确定性和统计规律性的数字,具体是怎么生成的这里我们不需要理解,只需要知道针对某一个固定的随机数种子,生成的随机数队列一定是相同的
概率模拟则很好理解,就是通过对随机数列中数字的判断来达成某种概率,举一个比较简单的例子,我生成一个[0,9]的随机整数数列,可以简单的通过判断他是否等于其中某个确定的值来模拟10%的概率
讲完这些,我们再回来看这句话,就能理解了,每一种罐子都采用了一个单独的随机种子,防止因种子改变导致的概率波动
重点2 开启概率性罐子时,我们确认到某些情况下会采用相同的随机种子这一现象
那这一部分就是问题发生的原因了,但是有一点我是不理解的,根据前面的解释我们可以发现原本相同的罐子采用的随机种子都是相同的,那什么叫“部分情况下会采用相同的随机种子运作”呢?
后面是我的猜测,根据现象我们可以得知,罐子里开出来的东西在某个区间上完全一致,那只能理解成“部分情况下随机结果会循环引用随机数列中的同一集合”,才可能会导致这样的现象。
那最后根据这一点我们再来看所谓的“概率本身是正常运作的,物品会以相同的概率出现”这句话,其实也是不严谨的,首先,随机数列是保证不确定性和统计规律性的,但是随机数列中的某一个集合并不一定满足这一条件;其次,这个区间是被循环引用的,单独引用都不能保证其随机性,循环引用只会导致概率更加偏移,说的难听点就是在嘴硬 |
|