2015-04-03 43 views
0

我有一個程序,我需要生成隨機數來確定各種輸出(爲了解釋確切的原因將會太長)。從理論上講,很高的數字(可以說是100,000)對於我的程序來說是一個有效的輸出,但它最有可能(但不是完全不可能)最終變成無用的輸出。Java加權隨機機會集中在一個數字

我想生成加權爲「歸一化」數字的隨機數。 例如,我會選擇一個數字(10),隨機生成的大多數數字將接近於10.但隨機數可能有任何整數的概率很小。我現在只是在生成數字時使用一個範圍,但這讓我感到困擾,因爲這個範圍之外的數字可能是有效且有用的輸出。

有沒有簡單的方法來做到這一點,而不會引入太多的開銷或不得不將百分比機會映射到單個整數?

+0

我認爲你所描述的最好用基本的統計數據來解決。您可以用「標準化數字」作爲平均值從離散概率分佈生成這些數字。也許'poisson'發行版適合你? – cel 2015-04-03 17:25:04

+0

您僅限於正整數,還是全部有效結果? – pjs 2015-04-03 17:49:02

+0

是的只有正整數 – sheldonj22 2015-04-03 18:18:02

回答

0

我會考慮這比一個編程的更多的統計問題。我想你想要一個對數分佈。這是一個example Java implementation