公式使更高的数字更难以随机获得

时间:2016-07-24 03:02:15

标签: java random formula

我正在寻找一种公式或方法,以允许在随机难度中获得更高的数字。例如,如果我试图从1000中获得一个数字,那么获得1000将比获得更低的数字(如1 - 250)更难。

3 个答案:

答案 0 :(得分:0)

一种简单的方法是使用平方根,这样可以更容易地获得更高的数字。然后我们从1,000减去,以便更容易得到更低的数字。

如果您想要的最低值为零:

1000 - (int) Math.sqrt(rand.nextInt(1001*1001))

如果您想要的最低值是一个:

1000 - (int) Math.sqrt(rand.nextInt(1000*1000))

答案 1 :(得分:0)

嗯,lambda小于或等于1的泊松分布符合您的要求

public static int getPoisson(double lambda) {
  double L = Math.exp(-lambda);
  double p = 1.0;
  int k = 0;

  do {
    k++;
    p *= Math.random();
  } while (p > L);

  return k - 1;
}

用1来调用它,看看它是否是你想要的

答案 2 :(得分:-1)

使用Rand作为高数字,如

highNum = Rand(1,4) *250;
randNum = Rand(1, highNum);

使用此公式,1-250之间的数字在数字介于750-1000之间的概率为8.3倍