小编Wug*_*ggy的帖子

Mersenne Twister 64:'d'钢化参数的来源?

短版本:常见的MT(和MT64)实现具有额外的回火参数'd'.我看过描述MT的论文不包含它.这个从哪里来?什么时候加入?

长版!:)

我正在考虑使用具有不同参数的MT系列(原因).Nishimura发表了这篇论文,描述了64位MT实现以及A矩阵和(u,s,t,l,b,c)调温参数的许多替代方案.与原始的32位MT纸一样,这将回火过程描述为:

y := x xor (x >> u)
y := x xor ((y << s) and b)
y := x xor ((y << t) and c)
z := x xor (y >> l)
Run Code Online (Sandbox Code Playgroud)

然而,实际实现(a b)和MT维基百科页面中描述的参数具有额外的位掩码参数(称为"d"),应用于回火过程的第一步:

x ^= (x >> 29) & 0x5555555555555555ULL;
x ^= (x << 17) & 0x71D67FFFEDA60000ULL;
x ^= (x << 37) & 0xFFF7EEE000000000ULL;
x ^= (x >> 43);
Run Code Online (Sandbox Code Playgroud)

我不想只是"盲目地"使用排除参数'd'的回火参数而不理解它的用途......但我似乎无法找到为什么添加这个'd'参数的任何参考.(据推测,这是一个改进...)

关于它的用途的任何想法,任何关于它被添加的原因的参考?

random mersenne-twister

7
推荐指数
0
解决办法
98
查看次数

标签 统计

mersenne-twister ×1

random ×1