【发布时间】:2012-01-20 14:56:10
【问题描述】:
假设我生成了一组随机数并将它们放入一个数组中,(为简单起见预先排序)我将使用 javascript 来显示数学:
var vals = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,...,10000);
然后在循环中,我创建了一个随机数作为索引:
for(i=0;i<10000;i++){
var random_index = Math.floor(Math.random() * 10000);
var result = vals[random_index];
}
如果您在任何类型的图表上查看此输出,结果(通过该循环进行足够的迭代,将看起来非常随机且平衡)
我想要的是,每次访问的结果都支持较小的数字,顺便说一下,这里是具有较低索引的数组元素。
对于一个视觉示例,假设您正试图在地图上绘制烟花碎片落下的位置。这些碎片中的大多数会随机落在附近,但向中间集中度更高。这是一个有点过于复杂的例子,因为它考虑了另一个维度并使用物理来实现结果,但原理相同。
我应该对 random_index 变量执行什么操作以使其“偏爱”较小的数字?
【问题讨论】:
-
如果您还不知道,请阅读normal distribution。烟花粒子在地面上的位置可能是正态分布的。
-
再想一想,我同意正态分布比指数分布更适合。
-
@lhf 刚刚注意到这条评论。是的,您在该线程中提议的函数的修改版本通常是我看起来的样子。
标签: algorithm math random numbers calculus