2014-04-04 50 views
0

我想知道如何在Node.js中執行分佈式採樣。Node.js中的分佈式採樣

特別是,我有個元素,其中所述陣列的第i個值是第i個元素的概率的數量,如以下

[0.2 0.3 0.5] 

現在我需要進行採樣,並在樣品的一半的採樣的結果應該是2的樣品的0.2爲0,並在樣品的0.3是1

回答

1

瑣碎方法:

function distribute(probs) { 
    return function() { 
     var r = Math.random(); 
     var i = 0, 
      acc = 0; 
     while ((acc += probs[i]) <= r) 
      i++; 
     return i; 
    }; 
} 
var sample = distribute([0.2, 0.3, 0.5]); 
sample(); 
sample(); 
sample(); 
…