2017-05-22 45 views
1

我想繪製兩個或多個數組的值。例如包含值1-99的數組「年齡」和包含2000-10000的第二數組「收入」。 如果我將繪製超過30歲的「年齡」,我想從第二個數組中獲得價值,但是我得到超過5000的概率必須是例如超過75%。 如何讓它成爲可能?從JS中獲取聲明概率的數組獲取內容

+0

你是問如何在Javascript數組訪問隨機元素?看到這裏:https://stackoverflow.com/questions/5915096/get-random-item-from-javascript-array –

+0

很容易,隨機從0到1,如果它低於0.25選擇從2000到5000,如果不是選擇從5000到10000 – juvian

+0

但我不希望只有5000-10000,當年齡超過30歲時。我也想要較低的值,但獲得較低數字的可能性較低:D –

回答

0

您可以使用支票年齡和兩個公式來計算收入的價值,而不用跨步。

condition random range  formula  min max 
--------- ------------- ---------------- ----- ----- 
<= 5000 0.00 ... 0.25 r * 12000 + 2000 2000 5000 
    > 5000 0.25 ... 1.00 r * 6666 + 3333 5000 10000 

實例與數100000倍隨機的收益,與age > 30

function getRandomEarnings(age) { 
 
    var r = Math.random(); 
 
    if (age > 30) { 
 
     return r < .25 ? r * 12000 + 2000 : r * 6666.666666 + 3333.333333; 
 
    } else { 
 
     // add some more random values 
 
    } 
 
} 
 

 
var count = [0, 0], 
 
    i; 
 

 
for (i = 0; i < 1e6; i++) { 
 
    count[+(getRandomEarnings(35) > 5000)]++; 
 
} 
 

 
console.log(count);
.as-console-wrapper { max-height: 100% !important; top: 0; }