level 1
翟西域🐶
楼主
先明确一下伪随机的概念. 用d20举个简单的例子, 记f(a)为事件a的抛骰结果,若对于1-20间任意的一个整数i,f(a)=i的概率都是1/20,则称f具有一阶独立性. 这里f可以看成伪随机数生成器.
类似地,如果对于任意两个事件a,b,以及任意的1-20间两个数i,j,f(a)=i并且f(b)=j的概率都等于1/400,则称f具有二阶独立性.以此类推可以定义任意k阶独立性.
直观上来看,一个伪随机数生成器f具有的独立性阶数越高,那它就越接近于'真随机'.根据我的观察,毛子骰子灌铅的本质就在于独立性太差,大概只把一阶独立性做的比较好,但对于某些事件的高阶独立性非常差. 简单来说本次投骰结果会依赖于它本不应该依赖的其他投骰结果.
这导致了一个什么问题呢,读档重复尝试某个检定时,容易出现连续骰出同样数字(或者某几个数字)的情况.举个极端的例子,如果游戏的伪随机生成器只依赖于内部数据,那我每次读档如果精准地做出同样的行为,得到的骰数会是完全一致的.这里玩家在不同现实时间做出的游戏内的同一个动作,a,b,c...等等,它们的独立性会很差,只要a不巧骰不出好的数,后面所有的尝试b,c...也都骰不出.
我自己做的实验也符合这样的推测.投骰独立的假设检验做了几次,每次都被否定.经常读档20次做同一个检定,有七八次是同一个数.很有可能我在同一帧按出来的都是同一个数.因此贴吧大佬做的500次投骰实验意义也比较局限,他的设置基本只能验证一阶独立性.另外这类实验还是做假设检验比较严谨,肉眼观测都只是直觉上的,不一定对.
要解决这个问题,比较好的方法是随机数和现实时间挂钩,这样至少能很大程度缓解读档之间独立性的问题.Anyway,以上都只是猜想,实际看不到毛子具体的代码没办法断言他哪里出了问题.
2021年10月22日 16点10分
1
类似地,如果对于任意两个事件a,b,以及任意的1-20间两个数i,j,f(a)=i并且f(b)=j的概率都等于1/400,则称f具有二阶独立性.以此类推可以定义任意k阶独立性.
直观上来看,一个伪随机数生成器f具有的独立性阶数越高,那它就越接近于'真随机'.根据我的观察,毛子骰子灌铅的本质就在于独立性太差,大概只把一阶独立性做的比较好,但对于某些事件的高阶独立性非常差. 简单来说本次投骰结果会依赖于它本不应该依赖的其他投骰结果.
这导致了一个什么问题呢,读档重复尝试某个检定时,容易出现连续骰出同样数字(或者某几个数字)的情况.举个极端的例子,如果游戏的伪随机生成器只依赖于内部数据,那我每次读档如果精准地做出同样的行为,得到的骰数会是完全一致的.这里玩家在不同现实时间做出的游戏内的同一个动作,a,b,c...等等,它们的独立性会很差,只要a不巧骰不出好的数,后面所有的尝试b,c...也都骰不出.
我自己做的实验也符合这样的推测.投骰独立的假设检验做了几次,每次都被否定.经常读档20次做同一个检定,有七八次是同一个数.很有可能我在同一帧按出来的都是同一个数.因此贴吧大佬做的500次投骰实验意义也比较局限,他的设置基本只能验证一阶独立性.另外这类实验还是做假设检验比较严谨,肉眼观测都只是直觉上的,不一定对.
要解决这个问题,比较好的方法是随机数和现实时间挂钩,这样至少能很大程度缓解读档之间独立性的问题.Anyway,以上都只是猜想,实际看不到毛子具体的代码没办法断言他哪里出了问题.