【问题标题】:Java weighted random chance centered around a numberJava加权随机机会以数字为中心
【发布时间】:2015-04-03 16:58:51
【问题描述】:

我有一个程序,我需要在其中生成确定各种输出的随机数(解释确切原因会太长)。从理论上讲,一个高数字(比如说 100,000)是我的程序的有效输出,但它最有可能(但并非完全不可能)最终成为无用的输出。

我想生成加权到“标准化”数字附近的随机数。 例如,我会选择一个数字(10),随机生成的大多数数字将接近 10。但随机数可能是任何整数的可能性很小。我目前在生成数字时只使用一个范围,但这让我很困扰,因为超出此范围的数字可能是有效且有用的输出。

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

【问题讨论】:

  • 我认为你所描述的最好用基本统计数据来解决。您可以从离散概率分布中生成这些数字,并将 normalized number 作为平均值。也许poisson 分发版适合您?
  • 您是仅限于正整数,还是所有整数都是有效结果?
  • 是的,只有正整数

标签: java random


【解决方案1】:

对于正整数geometricnegative binomialPoisson 都是可能的。所有这些的 Java 实现都是 readily available

【讨论】:

    【解决方案2】:

    我认为这更像是一个统计问题,而不是编程问题。我想你想要一个对数分布。这是example Java implementation

    【讨论】:

      猜你喜欢
      • 2015-04-23
      • 2010-12-18
      • 2023-03-31
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      相关资源
      最近更新 更多