2011-04-17 177 views
0

我不能为我的生活记住或找到将标准均匀分布转化为离散均匀分布的公式,其范围为[a,b]。我特别要找的是一个离散的均匀随机数发生器,它产生[a,b]范围内的数字,我需要它是Math.random()的一个函数,其中Math.random()是一个连续的统一分布范围为[0,1)标准均匀分布到离散均匀[a,b]

如果您知道这一转变,我将非常感谢您的帮助。
谢谢,
汤姆

+0

我想我可能已经得到它。 '(int)(a + Math.random()*(b - a + 1))' – Tom 2011-04-17 07:41:13

+0

我不明白你的'+ 1' – 2011-04-18 10:34:56

回答

1

像你想的affine transformation [0,1],以它看起来对我[A,B]。

因此,其中x在[0,1]中,您想要将其转换为a + x × (b - a),然后对结果进行舍入。你需要四舍五入,而不是简单地施放,否则你的分布会略微偏斜。

通过在铸造前添加0.5来完成铸件倒圆。