java中具有范围和更高概率的大数随机数生成器

java中具有范围和更高概率的大数随机数生成器,java,random,Java,Random,我想用java做一个方法,在这里我可以输入最大值和最小值,它会给我一个随机数,但是一个较大的数比一个较小的数的概率更高。我该怎么做呢?有很多方法可以做到这一点,这取决于你所说的更高。你可以用一个函数来扭曲你的分布 int num = (int) (func(Math.random()) * (max - min)) + min; 您的func可以是Math.sqrt或Math.pow(x,n)其中n

我想用java做一个方法,在这里我可以输入最大值和最小值,它会给我一个随机数,但是一个较大的数比一个较小的数的概率更高。我该怎么做呢?

有很多方法可以做到这一点,这取决于你所说的更高。你可以用一个函数来扭曲你的分布

int num = (int) (func(Math.random()) * (max - min)) + min;
您的
func
可以是
Math.sqrt
Math.pow(x,n)
其中
n<1
以支持更高的数字


我希望答案超过10个的可能性增加10%

如果这是您的需求,那么实际上您有两个发行版

 private static final Random rand = new Random();
 public static int randBetween(int min, int max) {
       return rand.nextInt(max - min + 1) + min;
 }


 int next = rand.nextInt(100) < 10 ? // a 10% chance
            randBetween(10, max) : // random of at least 10
            randBetween(min, max); // otherwise any number.
private static final Random rand=new Random();
公共静态整数范围(整数最小值、整数最大值){
返回rand.nextInt(max-min+1)+min;
}
int next=rand.nextInt(100)<10?//10%的机会
randBetween(10,最大值)://随机值至少为10
randBetween(最小值,最大值);//否则,任何数字。

你所说的
更高
到底是什么意思?你能具体说明你想要多高吗?这个问题似乎离题了,因为它是关于“给我代码”。我希望答案超过10个的可能性增加10%。谢谢你的帮助。非常感谢。@PersonMiv根据您的评论进行了更新。@PersonMiv如果您想了解更多信息:和