gpt4 book ai didi

android - BigInteger q = new BigInteger(8, 10, new Random());未在 Android 中产生预期结果

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:54 25 4
gpt4 key购买 nike

BigInteger q = new BigInteger(8, 10, new Random()); 每次从我的桌面运行但不是在 Android 中时,都会按预期给我随机数。

在 Android 中,我总是只得到相同的输出而不是随机数。请帮助我获取随机 BigIntegr。

供您引用:

int randQ = (int) (Math.random() * 9);      
for (int r = 0; r < randQ; r++) {

q = q.nextProbablePrime();
}

是我所做的快速修复,我对此修复不满意,因为它会消耗额外的时间。非常感谢您的建议

最佳答案

这是一个非常普遍的问题,与语言或平台无关。

每次都必须重用Random() 的实例来获取随机数。默认构造函数将为 pseudo-random number generator 播种与当前时间。相对于您的程序,当前时间不会很快改变,因此您会一直得到相同的数字,直到时钟滴答作响。

如果您不重新播种,每次您要求另一个值时它都会给您不同的数字。您可以通过重用实例并调用来避免重新播种:

Random random = new Random(); // reuse this instance...
int value = random.nextInt(); // use these values instead of new Random()

参见:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Random.html

关于android - BigInteger q = new BigInteger(8, 10, new Random());未在 Android 中产生预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8444276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com