2016-07-24 7 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,看看它是否是你想要的