2015-04-03 83 views
0

我有一个程序,我需要生成随机数来确定各种输出(为了解释确切的原因将会太长)。从理论上讲,很高的数字(可以说是100,000)对于我的程序来说是一个有效的输出,但它最有可能(但不是完全不可能)最终变成无用的输出。Java加权随机机会集中在一个数字

我想生成加权为“归一化”数字的随机数。 例如,我会选择一个数字(10),随机生成的大多数数字将接近于10.但随机数可能有任何整数的概率很小。我现在只是在生成数字时使用一个范围,但这让我感到困扰,因为这个范围之外的数字可能是有效且有用的输出。

有没有简单的方法来做到这一点,而不会引入太多的开销或不得不将百分比机会映射到单个整数?

+0

我认为你所描述的最好用基本的统计数据来解决。您可以用“标准化数字”作为平均值从离散概率分布生成这些数字。也许'poisson'发行版适合你? – cel 2015-04-03 17:25:04

+0

您仅限于正整数,还是全部有效结果? – pjs 2015-04-03 17:49:02

+0

是的只有正整数 – sheldonj22 2015-04-03 18:18:02

回答

0

我会考虑这比一个编程的更多的统计问题。我想你想要一个对数分布。这是一个example Java implementation