有人可以建议我使用随机数算法来实现java吗?我不想使用Math.random()函数。
注意:我想在java中编写自己的随机数生成函数;因此,我正在寻找一种可以使用的算法。
答案 0 :(得分:2)
我认为你的问题实际上与语言无关,而且不应该是特定的java。此外,我认为很容易找到类似这样的信息。查看Pseudorandom number generator和Random number generation的Wiki页面。如果您正在寻找简单(相对)的内容,请查看XORshift RNG
uint32_t xor128(void) { //A C version from wiki
static uint32_t x = 123456789;
static uint32_t y = 362436069;
static uint32_t z = 521288629;
static uint32_t w = 88675123;
uint32_t t;
t = x ^ (x << 11);
x = y; y = z; z = w;
return w = w ^ (w >> 19) ^ (t ^ (t >> 8));
}
或者在Java中:
public class IsNotFour {
int x = 123456789;
int y = 362436069;
int z = 521288629;
int w = 88675123;
int xor128() { // A converted C version from wiki
int t = x ^ (x << 11);
x = y;
y = z;
z = w;
w = w ^ (w >>> 19) ^ (t ^ (t >>> 8));
return w;
}
}
请注意x
,y
,z
和w
一起构成种子。