Tag: 随机

为什么在util类中有48位种子?

为什么这个类在其线性同余公式中使用48位种子? 我原以为32或64 …… 我知道当要求32位值时,它需要更高阶的位。 但为什么只有16个额外的位? 这是一个“随机”的选择吗?

随机均匀分布

我知道如果我使用Java的Random生成器,使用nextInt生成数字,数字将是均匀分布的。 但是如果我使用2个Random实例会发生什么,用两个Random类生成数字。 这些数字是否均匀分布?

如何使用当前时间戳创建随机字符串作为Java中的salt?

我想根据当前时间戳创建一个随机字符串(输出到控制台以进行调试)。 例如,控制台将输出: Setting up browser [123456]… Getting configuration [758493]… Completed: [758493]. Completed: [123456]. 这里123456和758493是我试图生成的随机字符串。 这是我认为它可以工作的伪代码: private String random(int len){ long ts = getCurrentTimestamp; String value = createRandom(len, ts); //len is the length of the randomString //and ts is the salt return value; } 任何人都可以帮助解决这个问题(需要导入什么),和/或可能建议改进吗?

在2D数组中填充随机数以添加列/行

嗨,人们刚接触Java并且进展缓慢。 我在添加行和列之前尝试使用随机数填充2D数组。 到目前为止,我可以创建数组,显示它,我很确定我有添加位排序。 但是当我尝试用随机数填充它时,我得到了一个outofboundsexception。 我哪里错了? public static void main(String[] args) { //create the grid final int row = 9; final int col = 9; int [][] grid = new int [row][col]; //fill the grid for (int i=0; i<grid.length; i++) grid[i][grid[i].length] = (int)(Math.random()*10); //display output for(int i=0;i<grid.length; i++) { for(int j=0; j<grid[i].length; j++) System.out.print(grid[i][j]+””); System.out.println(); } […]

生成n个随机数,其总和为m,所有数字应大于零

我想生成9个非零随机数,其总和为250.我试过下面的代码,它给了我9个随机数,但有些数字为零。 public void n_random() { Random r = new Random(); ArrayList load = new ArrayList(); int temp = 0; int sum = 0; for (int i = 1; i <= 9; i++) { if (!(i == 9)) { temp = r.nextInt(250 – sum); System.out.println("Temp " + (i) + " " + temp); load.add(temp); sum += […]

在Java中:在目录中创建唯一的随机文件名

如何在目录(我选择的)中创建随机唯一文件名? 注意:我不希望在系统临时路径中使用此文件,而是在我指定的目录中

如何生成一个n个随机正整数序列,它们加起来有些值?

我正在尝试生成一个整数数组,其中包含与特定值相加的randoms。 这是我的代码: private long[] getRandoms(long size , long sum) throws Exception { double iniSum = 0; System.out.println(“sum = ” + sum); long[] ret = new long[(int) size]; for (int i = 0 ; i < ret.length; i++) { ret[i] = randomInRange(1, sum); iniSum += ret[i]; } double finSum = 0; for (int i = 0 […]

在Java中生成范围内的非重复随机数

我想生成1到4,4范围内的随机数,包括。 这是我的代码: int num = r.nextInt(4) + 1; //r is instance of Random. 但是,我在循环中运行上面的代码,不想重复随机数。 现在发生的事情通常是我得到的: 1,1,1,2,3,1,4,2,2,1,4,2,4,4,2,1,4,3,3,1,4,2,4,1作为我的输出。 这里,尽管数字在范围(1-4)内是随机的,但是经常像前3次迭代中的数字“1”那样重复。 我正在寻找的是一种在循环中获得非重复随机数的方法。 我知道的一个简单方法是在当前迭代之前保留最后一个随机数并进行比较,但我相信必须有更好的解决方案。 提前致谢。

如何根据Map中的Integer值相对于O(n)时间内的其他值随机选择一个键?

如果我们有一个Map ,那么假设整数值代表“有多少”Ts。 因此,我想根据其Integer值统一选择T. 如果地图包含“a”= 4且“b”= 6的字符串,那么我想要它,以便选择40%的时间“a”并选择60%的时间“b”。 最重要的是,我在O(n)中喜欢这个,在我之前的例子中,n是两个 (不是十个)。 我最初创建了一个包含键的ArrayList,它包含了多少个值(并简单地返回任何随机索引),但这个过程不仅非常慢,而且对于Map代表的完全违反直觉。

非常快速的均匀分布随机数发生器

作为蒙特卡罗模拟的一部分,我必须滚动一组骰子,直到某些值出现一定次数。 我执行此操作的代码调用一个骰子类,它生成1到6之间的随机数,并返回它。 最初的代码看起来像 public void roll() { value = (int)(Math.random()*6) + 1; } 它不是很快。 通过交换Math.random()来实现 ThreadLocalRandom.current().nextInt(1, 7); 它在原始时间的大约60%中运行了一个部分,大约有2.5亿次。 作为完整模拟的一部分,它至少会在数十亿次上调用这种方法,那么有没有更快的方法呢?