Java 如何生成介于1和任何值之间的随机大整数?
我正在尝试生成随机数,并使用BigInteger类检查生成的数字是否为带probablePrime()的素数 这是我的密码:Java 如何生成介于1和任何值之间的随机大整数?,java,android,random,android-studio,biginteger,Java,Android,Random,Android Studio,Biginteger,我正在尝试生成随机数,并使用BigInteger类检查生成的数字是否为带probablePrime()的素数 这是我的密码: btnRun.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Random prng = new Random(); Toast.makeText(getBaseC
btnRun.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Random prng = new Random();
Toast.makeText(getBaseContext()," " + BigInteger.probablePrime(10,prng), Toast.LENGTH_SHORT).show();
}
});
我不太明白probablePrime()中的第一个参数,在我的例子中,它是10。我知道它是int值之外的字节,这会影响生成的数字的范围吗?
Im只从523-1003中获取值,但我想从1-anything生成随机数,并在probablePrime()中检查它们;方法
这是怎么可能的?查看javadoc以了解:
公共静态BigInteger probablePrime(整数位长度,
随机数(rnd)
返回一个可能为素数且具有指定位长度的正BigInteger。此方法返回的BigInteger是复合的概率不超过2-100
参数:
- bitLength—返回的BigInteger的位长度。[我的重点]
- rnd—用于选择要测试素性的候选项的随机位源
int numBits = Integer.highestOneBit(yourLimit);
并且丢弃超过你的极限的素数。我不知道当我们谈论数字时“任何东西”是什么,也许你应该告诉meen任何东西都可以是随机数,没有任何特定的范围。link:@RC。谢谢我已将其添加到答案的开头。因此10将给出0-1023的范围?任务是创建一个应用程序,该应用程序正在搜索并存储越来越大的素数以存档。@Spoofy是的,它应该是,因为1023是10位(但我不确定1023本身是否为素数)