水水水水
水水水水水水
水水水水水水水水
水水水水水水水水水水
水
水水
水水水
水水水水
水水水水水
水水
水水水水
水水水水水水
水水水水水水水水
水水水水水水水水水水
水
水水
水水水
MT19937 是一种使用梅森旋转算法的伪随机数生成器。基于二进制有限域 $\mathbb{F}_2$ 上的矩阵线性递归,可以快速产生高质量且均匀分布的伪随机数。MT19937 的名称来源于它的周期长度为 $2^{19937}-1$
原理
MT19937 的状态数组是一个长度为 624 的整数数组,称为 MT。每一个元素都是一个 32 位的整数。它使用一个整数作为种子来初始化状态数组。每次调用随机数生成函数时,它会从状态数组中提取一个整数,并使用梅森旋转算法来更新状态数组。
MT19937 主要有三个部分组成
初始化
旋转状态
提取伪随机数
初始化。MT19937 初始化的时候会使用给定的数字作为种子,或者使用系统时间戳等随机数作为种子。然后会初始化一个长度为 624 的状态数组 MT,并从种子开始通过特定算法来填充这个数组,作为初始状态。
旋转。旋转是指将状态数组中的每个元素进行线性变换,生成新的状态数组。这个过程是通过对当前状态数组中的每个元素进行位运算和异或运算来实现的。旋转的目的是为了增加随机数的均匀性和不可预测性。
提取伪随机数。这一步会从状态数组中依次提取一个整数,并对其进行位运算和异或运算,生成的数即为输出的伪随机数。当所有数组全被遍历过之后,就会对状态数组再次进行一次旋转,重新生成新的状态数组。
水水水水
全自动电棍 发表于 2025-12-19 01:27
MT19937 是一种使用梅森旋转算法的伪随机数生成器。基于二进制有限域 $\mathbb{F}_2$ 上的矩阵线性递归,可 ...
捉Otto
水水
水水水水
水水水水水水
水水水水水水水水
水
水水
水水水
水水水水
水水
水水水水
水水水水水水
水水水水水水水水
水水水水水水水水水水
水水水水水水水水水水水水水水水水
水
水水
水水水
水水水水
水水水水水
水
水水
水水水
水水水水
水水水水水
66
666
6666
66666
666666
水