我想设计一种算法,它会给我随机的数字,因为我不知道它们会是什么,但与此同时,更接近的数字0
必须更有可能作为输出出现,而那些更接近1
一定不太可能。我想同时使用线性和指数分布,所以请至少给出实现两者的提示。
我已经考虑过如何解决这个问题,但我仍然没有任何线索,所以任何指针都将不胜感激。
注意:我不打算讨论,也不了解“真实”与“伪”随机性的复杂性......这与安全性或密码学无关,为此我将简单地使用JavascriptMath.random()
是一个种子,所以我们都清楚我在问什么。
我想设计一种算法,它会给我随机的数字,因为我不知道它们会是什么,但与此同时,更接近的数字0
必须更有可能作为输出出现,而那些更接近1
一定不太可能。我想同时使用线性和指数分布,所以请至少给出实现两者的提示。
我已经考虑过如何解决这个问题,但我仍然没有任何线索,所以任何指针都将不胜感激。
注意:我不打算讨论,也不了解“真实”与“伪”随机性的复杂性......这与安全性或密码学无关,为此我将简单地使用JavascriptMath.random()
是一个种子,所以我们都清楚我在问什么。
var random = Math.pow(Math.random(), 2);
看看泊松分布,也许你可以将它用于你自己的目的,本质上泊松分布不是确定性的,但它有一定的发生频率:维基百科对此有很好的介绍性信息:http://en.wikipedia .org/wiki/Poisson_distribution
算法:
algorithm poisson random number (Knuth):
init:
Let L ← e−λ, k ← 0 and p ← 1.
do:
k ← k + 1.
Generate uniform random number u in [0,1] and let p ← p × u.
while p > L.
return k − 1.