作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想根据分布概率生成一个数字。例如,假设每个数字出现以下情况:
Number| Count
1 | 150
2 | 40
3 | 15
4 | 3
with a total of (150+40+15+3) = 208
then the probability of a 1 is 150/208= 0.72
and the probability of a 2 is 40/208 = 0.192
我如何制作一个随机数生成器,返回基于此概率分布的数字?
我很高兴现在它基于一个静态的、硬编码的集合,但我最终希望它从数据库查询中推导出概率分布。
我见过类似的例子,例如 this one但它们不是很通用。有什么建议吗?
最佳答案
一般的做法是将均匀分布的随机数从0..1区间送入the inverse of the cumulative distribution function您想要的分布。
因此,在您的情况下,只需从 0..1 中抽取一个随机数 x(例如使用 Random.NextDouble()
)并根据其返回值
关于c# - 分布式概率随机数发生器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9956486/
我是一名优秀的程序员,十分优秀!