Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
随机数算法的Java实现_Java_Algorithm - Fatal编程技术网

随机数算法的Java实现

随机数算法的Java实现,java,algorithm,Java,Algorithm,有谁能给我推荐一个随机数算法,我可以用它在java中实现吗?我不想使用Math.random()函数 注意:我想用java编写自己的随机数生成函数;因此,我正在寻找一种我可以使用的算法。我认为你的问题实际上与语言无关,不应该专门针对java。另外,我认为很容易找到关于这类事情的信息。查看和的wiki页面。如果你想找一些简单(相对)的东西,看看 uint32\u t xor128(void){//wiki上的C版本 静态uint32_t x=123456789; 静态uint32_t y=3624

有谁能给我推荐一个随机数算法,我可以用它在java中实现吗?我不想使用Math.random()函数


注意:我想用java编写自己的随机数生成函数;因此,我正在寻找一种我可以使用的算法。

我认为你的问题实际上与语言无关,不应该专门针对java。另外,我认为很容易找到关于这类事情的信息。查看和的wiki页面。如果你想找一些简单(相对)的东西,看看

uint32\u t xor128(void){//wiki上的C版本
静态uint32_t x=123456789;
静态uint32_t y=362436069;
静态uint32_t z=521288629;
静态uint32_t w=88675123;
uint32_t;
t=x^(x>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; 
    }
}
公共类不是四个{
INTX=123456789;
int y=362436069;
int z=521288629;
int w=88675123;
int xor128(){//wiki中转换的C版本
int t=x^(x>>19)^(t^(t>>8));
返回w;
}
}

请注意,
x
y
z
w
一起构成种子。

您在寻找什么?为什么不使用
Math.random()
?您需要为系统时间设定种子。。。检查这个问题以获得更多的建议:你是对的,当你可以使用更随机的复杂奇怪的位移位函数时,谁需要它呢?只是开玩笑,因为我没有看到一个特定的种子。第一个输出是DCA345EA、1B5116E6、951049AA、D88D00B0吗?是的,我也得到了。x、y、z和w的值实际上是种子,因此可以对它们进行调整。是的,我猜,我添加了Java代码,因为使用
>>
而不是
>
有点棘手。