所以,我有一個問題。基本上,我在高中數學中沒有給予足夠的重視,現在我被卡住了。我需要在1到20之間生成隨機數,重點在1到5之間,重點在5-10,低重點在10-20。我不明白在我遇到的文章中他們所說的所有幻想概率詞和所有內容。任何幫助你們可以提供將不勝感激。謝謝!概率隨機數?
Q
概率隨機數?
0
A
回答
3
你可以使用這個公式的範圍爲[低,高]生成一個隨機數:
var randomNumber:int = Math.floor(Math.random()*(1+high-low))+low;
你可以把一個函數,如果你想要的。現在
,一個簡單的方法來爲您提供的三個區間不同的概率,是做這樣的事情:
var random:Number = Math.random();
if (random < 0.75) {
// generate random number in [1, 5]
} else if (random < 0.95) {
// generate random number in [6, 10]
} else {
// generate random number in [11, 20]
}
+0
完美的作品,謝謝! – Jack 2012-02-20 08:49:51
0
您還可以使用的東西沿着以下行,如果你需要一個「暢通「分配。即分佈將在最低值和最高值之間逐漸變化,下面情況的重點將在較低值上。
private function univenlyDistributedRandom(low:int, high:int):Number
{
return low + (1 - Math.pow(Math.random(), 4)) * (high - low);
}
你可以,當然,使用任何其他功能(誇張,或正弦波等)產生稍微不同的變化。一個有趣的事情,但。如果您正在使用任何補間引擎 - 您可能已經擁有這些功能!任何非線性應用於Math.random()
輸出的緩動函數都會以「平滑」方式影響分配。因此,例如,如果你看到寬鬆函數做了類似「起初變慢,但後來變得更快,更快,甚至更快」的東西,那就意味着你可以用它實現的分配會偏向於較小的數字和較大的數字會較少發生。
0
我會使用penner方程之一。 http://www.robertpenner.com/easing/
生成數0和1之間 把它交給彭納方程,它會被你想要的最大值返回0和1 這個數字乘以之間的數字。 倒圓角。
number = Math.round(MyTransformFunction(Math.random())*MaxNumber)
function MyTransformFunction(x){
return x*x;
}
是0-1之間返回數字0-1之間的輸入將工作的任何其它功能:
return -x*x;
return Math.sqrt(x);
相關問題
- 1. 隨機數字的概率
- 2. c#概率和隨機數
- 3. 概率和隨機數
- 4. 高概率數的隨機?
- 5. PHP隨機概率
- 6. 隨機概率PHP
- 7. 隨機概率錯誤
- 8. 隨機概率選擇
- 9. 隨機變量的概率
- 10. 以固定概率生成隨機數
- 11. 以概率獲得隨機數
- 12. 獲取隨機數基於概率
- 13. Python的numpy的隨機數的概率
- 14. 選擇隨機數的快速概率?
- 15. 以概率生成隨機數
- 16. 概率隨機數發生器
- 17. Java的高概率隨機數
- 18. 隨機數範圍的不同概率
- 19. 基於概率的隨機數
- 20. 根據概率隨機選擇項目
- 21. 不同概率的隨機行選擇
- 22. 帶概率的隨機圖生成
- 23. 隨機的值從枚舉的概率
- 24. python:概率的隨機樣本
- 25. 隨機算法概率最大化
- 26. 根據概率分佈函數生成隨機數
- 27. 從三維概率分佈生成隨機數
- 28. 使用隨機數gen的相對概率
- 29. C++,給定概率如何隨機選擇數字
- 30. 的JavaScript獲得隨機數:概率較低的區間
已經有幾個問題在這個題目上SO .... – 2012-02-20 04:51:05
其實,我已經編程了5年或6年,而我只是有一個簡單的數學問題。除非你有什麼有用的補充,否則評論不值得讚賞。 – Jack 2012-02-20 04:52:27
@Jack積極的可能不是獲得答案的最佳途徑我已經過了一半的時間了.. – Marty 2012-02-20 04:53:21