c++ - 二项分布的正确实施?
问题描述
我试图让二项式分布返回一个范围内的值,该值在较低频谱中的概率较高,而我所能得到的只是37。这是我的实现:
int32_t binomial_random(int32_t minNumber, int32_t maxNumber, float modifier) {
std::default_random_engine generator;
static std::binomial_distribution<int> binomialRand(maxNumber, modifier);
return minNumber + binomialRand(generator);
}
当我调用它时:
level = binomial_random(minLevel, maxLevel-minLevel, 0.3f);
无论 minLevel 和 maxLevel 如何,它似乎都返回 37
解决方案
推荐阅读
- c++ - 为什么在调用模板基类的构造函数时必须为模板基类指定模板参数?
- c - numaif.h:MPOL_LOCAL 未声明用于 mbind
- django - Heroku/Django/S3:静态文件不从 S3 提供服务,即使媒体正在工作
- asp.net-mvc - 如何在表单提交时将复选框值传递给控制器然后返回数据以查看?
- asp.net - 在 ASP .NET 中预览 PDF 而不执行 PDF 的嵌入式 JS
- ios - 用于 CAShapeLayer 的 iOS (Swift) 环形 UIBezierPath
- java - 使用注释处理将方法包装在命令中
- uno-platform - 如何使用代理进行 API 调用
- python - 获取 NameError:名称 'countVectorizer' 未在 Pycharm 中定义
- sql - 在 SQL 中计算 SLA 时出现问题