2011-11-17 138 views
3

我怎樣才能生成1和10之間的加權隨機數,10是最高的機會,1是最低的機會?PHP加權隨機數

rand(1,10) ? 

需要一個簡單的一行代碼,因爲它運行的時間

100000分的
+0

爲「隨機」的小值? – Mawg

+2

可能重複[在PHP中通過權重生成隨機結果?](http://stackoverflow.com/questions/445235/generating-random-results-by-weight-in-php) –

+0

對不起,赫爾曼,但你只是不要您似乎沒有定義您的需求。除非你能夠比「更高更低的序列概率」更明確地解釋,否則我擔心有人(而不是我)會關閉這個問題。請告訴我們想要什麼(你真的想要什麼),我們會盡力幫忙。對我來說,聽起來似乎是想讓人想起某種可能性的「滑動尺度」,但還沒有定義它應該如何滑動。 – Mawg

回答

14

OK,我想我明白你想說什麼..

試試這個:

mt_rand(mt_rand(1, 10),10); 

我循環100萬次:

10 = 292634 
9 = 193333 
8 = 142815 
7 = 109580 
6 = 84616 
5 = 64498 
4 = 47666 
3 = 33450 
2 = 21286 
1 = 10122 
+2

看起來是完全正確的邏輯。做得很好。 :) – Nightfirecat

+0

好主意,對我來說也很好,只是想知道是否有任何簡單的解決方案讓它在1到10之間權重較小? –