加载中...
梅森旋转算法是一种被广泛采用的伪随机数生成算法,由松本真与西村拓士于1997年提出。其常用版本周期长达梅森素数量级,具有优良的均匀分布性,是众多编程语言默认随机数生成器的核心。

| 提出者 | 松本真、西村拓士 |
| 提出年份 | 1997 |
| 常用周期 | 2^19937−1 |
| 类别 | 伪随机数生成 |
| 密码安全 | 否 |
梅森旋转算法是一种应用极广的伪随机数生成器,以其超长周期和良好的分布均匀性著称。最常见的版本周期为二的一万九千九百三十七次方减一,这是一个梅森素数,算法也因此得名。
该算法由日本学者松本真(Makoto Matsumoto)与西村拓士(Takuji Nishimura)于1997年提出。它基于有限域上的线性反馈,维护一个较大的内部状态数组,通过对状态进行位旋转与异或等操作源源不断地产生随机数。相比早期的线性同余生成器,它在高维均匀性上有明显优势。
梅森旋转算法被众多编程语言与科学计算库选作默认的随机数生成器,广泛用于蒙特卡洛模拟、数值实验、游戏与随机抽样等对分布质量要求高但不涉及安全的场合。许多统计软件和仿真平台的随机数底层都由它支撑。
问:梅森旋转能用于加密吗?答:不能,它不是密码学安全的生成器,观察到足够多的输出后可以反推内部状态并预测后续序列,涉及安全时必须使用专门的密码学随机源。
问:它和线性同余生成器比有何优势?答:周期长得多,高维均匀性明显更好,能避免线性同余在多维空间中出现的规则性伪影,更适合高质量模拟。

| 提出者 | 松本真、西村拓士 |
| 提出年份 | 1997 |
| 常用周期 | 2^19937−1 |
| 类别 | 伪随机数生成 |
| 密码安全 | 否 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧