2016-07-24 57 views
-2

我正在寻找一个公式或方法,以获得更高的数字在一个随机难以获得。举例来说,如果我试图得到一个数字出来的1000,让1000会比得到一个较低的数字,如1层更难 - 250公式使更高的数字难以获得随机

+0

你能告诉我们你尝试过什么? – ganesshkumar

+2

你想减少概率有多大?你想要减少曲线有什么形状?线性?阶梯?凸?凹? – Andreas

回答

0

一个简单的方法是使用平方根,这使得它更容易获得更高的数字。然后我们从1000中减去,以便更容易得到更低的数字。

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

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

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

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

使用兰特用于高数,如

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

使用该公式,1-250之间的数值具有8.3倍以上偶然号码750-1000

0之间
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,看看它是否是你想要的