我試圖用對數分佈生成隨機整數。我使用下面的公式:以對數分佈和自定義斜率生成隨機數
idx = Math.floor(Math.log((Math.random() * Math.pow(2.0, max)) + 1.0)/Math.log(2.0));
此運作良好,併爲1000次迭代產生這樣的序列(每個數字代表了多少次生成的索引):
[525, 261, 119, 45, 29, 13, 5, 1, 1, 1]
我我現在試圖調整這種分佈的斜率,所以它不會像現在這樣迅速下降併產生類似的東西:
[150, 120, 100, 80, 60, ...]
盲目地使用係數並沒有給我想要的東西。任何想法如何實現它?
將每個'2.0'設置爲更接近於'1.0'的公式。例如, '1.3' – zmii
@zmii如果'max = 10'運作良好,但是如果'max = 2',它會產生更加明顯的斜率:'[830,170]'vs'[744,256]'2.0' – serg
I這樣做:[僞隨機數與預定義分佈](http://stackoverflow.com/a/22422035/2521214) – Spektre