Java 以数字为中心的加权随机概率
Java weighted random chance centered around a number
我有一个程序,我需要在其中生成确定各种输出的随机数(解释确切原因会太长)。理论上,一个高数字(比方说 100,000)是我程序的有效输出,但它最有可能(但并非完全不可能)最终成为无用的输出。
我想生成加权为 "normalized" 左右的随机数。
例如,我会选择一个数字 (10),并且随机生成的大多数数字将接近 10。但是随机数有很小的机会可以是任何整数。我目前在生成数字时只使用一个范围,但这让我很困扰,因为这个范围之外的数字可能是有效和有用的输出。
有没有一种简单的方法可以做到这一点而不会引入太多开销或不必将百分比机会映射到单个整数?
我认为这更像是一个统计问题,而不是编程问题。我想你想要一个对数分布。这是 example Java implementation.
对于所有这些正整数geometric, negative binomial, or Poisson are all possibilities. Java implementations are readily available。
我有一个程序,我需要在其中生成确定各种输出的随机数(解释确切原因会太长)。理论上,一个高数字(比方说 100,000)是我程序的有效输出,但它最有可能(但并非完全不可能)最终成为无用的输出。
我想生成加权为 "normalized" 左右的随机数。 例如,我会选择一个数字 (10),并且随机生成的大多数数字将接近 10。但是随机数有很小的机会可以是任何整数。我目前在生成数字时只使用一个范围,但这让我很困扰,因为这个范围之外的数字可能是有效和有用的输出。
有没有一种简单的方法可以做到这一点而不会引入太多开销或不必将百分比机会映射到单个整数?
我认为这更像是一个统计问题,而不是编程问题。我想你想要一个对数分布。这是 example Java implementation.
对于所有这些正整数geometric, negative binomial, or Poisson are all possibilities. Java implementations are readily available。