我正在使用带有种子的java.util.random(new Random(System.currentTimeMillis())
//我的业务逻辑-下面的代码处于循环中,旨在 每次都会生成一个不同的随机数//
int randomNumber=(int) Math.floor(inputParam1 * (new Random(System.currentTimeMillis())).nextInt()));
预期的输出:每次将以int格式生成一个新的随机数
实际输出:
-使用nextInt()每次生成相同的数字
-如果不转换为Int,则无法使用“随机”
上面显示了我的int变量的数据类型
答案 0 :(得分:1)
每次要生成Double时都不要创建Random的新实例。
您可以创建一个实例,然后在需要新的double时调用它。
Random rand = new Random(System.currentTimeMillis());
// loop starts here
double randomNumber = Math.floor(inputParam1 * rand.nextDouble());
// If you want an integer up to inputParam1 as it seems, you can do:
int randomInt = (int) randomNumber;
您也可以使用Math.random()
作为建议的人。
答案 1 :(得分:0)
我不确定为什么要将其强制转换为int
double randomNumber =新的Random(System.currentTimeMillis())。nextDouble(); 这将给出一个介于0和1之间的随机双数
答案 2 :(得分:0)
将以下代码转换为int没有意义。
df.groupby(pd.to_datetime(df[2]).astype('datetime64[s]')).head(1)
然后,请检查此答案Using Random Number Generator with Current Time vs Without
以上链接中最重要的部分:
如果您希望两次运行之间的随机序列相同,则可以 指定种子。