所以,我有一个问题。基本上,我在高中数学中没有给予足够的重视,现在我被卡住了。我需要在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