您可以使用线性同余算法。这是最常见的伪随机数算法。 基本上,您有一个种子值。然后一旦开始生成随机数,每个数字都成为新请求的种子。 数字的生成方式为: x = (a * s + b) MOD m 其中,m、a和b是选择算法的参数。有一些流行的这些值的集合可供使用。如果将m设置为2的幂,特别是32位机器的2^32,则自动执行模操作。 请查看维基百科,其中有流行的a、b和M集合以及更多信息。 还可以使用更复杂的种子(例如根据当前时间设置种子)。
除法是缓慢和不方便的,虽然可以在少数x86指令中完成;xorshift*或线性反馈移位寄存器也很好,而且更快,但可能需要更多的指令。(http://prng.di.unimi.it/xoroshiro128plus.c在64位模式下很好,使用64位旋转在汇编语言中比C语言更容易。) xorshift+在任何模式下都可以使用XMM寄存器方便地实现。 - Peter Cordes