BigInteger q=新的BigInteger(8,10,new Random());在Android中没有产生预期的结果

BigInteger q=新的BigInteger(8,10,new Random());在Android中没有产生预期的结果,android,biginteger,Android,Biginteger,biginger q=newbiginger(8,10,newrandom())每次在我的桌面上运行时都会像预期的那样给我随机数,但在安卓系统中不会 在安卓系统中,我总是得到相同的输出,而不是随机数。请帮我获取随机大整数 有关您的信息: int randQ = (int) (Math.random() * 9); for (int r = 0; r < randQ; r++) { q = q.nextProbablePrime();

biginger q=newbiginger(8,10,newrandom())
每次在我的桌面上运行时都会像预期的那样给我随机数,但在安卓系统中不会

在安卓系统中,我总是得到相同的输出,而不是随机数。请帮我获取随机大整数

有关您的信息:

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

            q = q.nextProbablePrime();
        }
intrandq=(int)(Math.random()*9);
对于(int r=0;r
这是我做的快速修复,我对这个修复不满意,因为它需要额外的时间。
非常感谢您的建议

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

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

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

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

请参阅:

编辑的
而是使用:

// creates random object with current instant as seed
Random generator = new Random((new Date()).getTime()); 
BigInteger q = new BigInteger(8, 10, generator);

哇,我刚刚确认了这个错误!很抱歉,它不起作用,因为它正在寻找一个对象,而不是一个int变量
生成器。nextInt()
将只生成numberThanks,您的建议很好。。。现在开始工作了。我重新使用了随机实例