Tag: 蒙特卡洛

有效地选择随机数

我有一个方法,它使用随机样本来近似计算。 这种方法被称为数百万次,因此选择随机数的过程非常有效。 我不确定javas Random().nextInt速度有多快,但我的程序似乎并没有像我希望的那样受益。 选择随机数时,我会执行以下操作(半伪代码): // Repeat this 300000 times Set set = new Set(); while(set.length != 5) set.add(randomNumber(MIN,MAX)); 现在,这显然有一个糟糕的最坏情况运行时间,因为理论上的随机函数可以为永恒添加重复数字,从而永远保持在while循环中。 但是,数字是从{0..45}中选择的,因此重复的值大部分都不太可能。 当我使用上面的方法时,它只比我的其他方法快40%,它不是近似的,但会产生正确的结果。 这跑了大约100万次,所以我期待这种新方法至少快50%。 您对更快的方法有什么建议吗? 或许你知道一种更有效的方法来生成一组随机数。 澄清一下,这是两种方法: // Run through all combinations (1 million). This takes 5 seconds for(int c1 = 0; c1 < deck.length; c1++){ for(int c2 = c1+1; c2 < deck.length; c2++){ for(int c3 […]