Random类有一个在给定范围内生成随机int的方法.例如:
Random r = new Random();
int x = r.nextInt(100);
Run Code Online (Sandbox Code Playgroud)
这将产生一个大于等于0且小于100的int数.我想用长数做同样的事.
long y = magicRandomLongGenerator(100);
Run Code Online (Sandbox Code Playgroud)
Random类只有nextLong(),但它不允许设置范围.
我不确定如何生成在Java中使用BigInteger类一个随机N位整数.
我正在开发一个应用程序,我们需要生成一些唯一的数字,实际上没有预定义的限制因此使用java UUD生成器并且工作正常.现在我们给出了生成12位唯一随机数的新要求.
任何人都可以指出一些好的方法/算法来实现这一点,因为我在UUID生成的数字中看不到任何可能性.
提前致谢
我正在尝试使用以下代码生成10位唯一随机数.根据我的要求,我必须创建大约5000个唯一数字(ID).这没有按预期工作.它还会生成-ve数字.此外,有时生成的数字中缺少一个或两个数字,导致8或9个数字不是10.
public static synchronized List generateRandomPin(){
int START =1000000000;
//int END = Integer.parseInt("9999999999");
//long END = Integer.parseInt("9999999999");
long END = 9999999999L;
Random random = new Random();
for (int idx = 1; idx <= 3000; ++idx){
createRandomInteger(START, END, random);
}
return null;
}
private static void createRandomInteger(int aStart, long aEnd, Random aRandom){
if ( aStart > aEnd ) {
throw new IllegalArgumentException("Start cannot exceed End.");
}
//get the range, casting to long to avoid overflow problems
long range = (long)aEnd - …Run Code Online (Sandbox Code Playgroud)