- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正努力在 C++ 中获得一个随机数生成器。
0
和 n
之间的整数。示例分布:
1: ************************
2: ******************
3: **************
4: ************
5: ********
6: *****
7: ****
8: ***
9: **
10: *
在我的情况下,分发类型无关紧要。我尝试的是使用值为 [0..2*n]
的二项式分布。之后,我将生成的随机数转换为 [0..n]
以获得零峰值。
size_t n = 20;
std::default_random_engine generator;
std::binomial_distribution<int> distribution(n*2, 0.5f);
int number = fabs(distribution(generator)-n);
结果数字:
0: *************************
1: ***********************************************
2: *****************************************
3: ********************************
4: **********************
5: **************
6: ********
7: ****
8: **
9:
10-20: none. The numbers are very rare.
我的问题:如何正确实现这样的算法?如何增加更高值的概率,使分布保持不变,而不管使用的 n
?
最佳答案
您可以生成 exponential distribution
P(x) = lambda * Exp(-lambda * x)
具有影响衰减速度的适当参数 lambda。
如果您的数学库中没有现成的指数分布(std::exponential_distribution?),只需使用 inverse transform sampling (Smirnov's) method .
德尔福示例
for i := 0 to 1000000 do begin
V := Trunc(-ln(Random()) / lambda);
//Random function gives random value uniformly distributed on [0,1)
if V <= N then begin
Inc(H[V]); //histogram entry
end;
end;
关于c++ - 二项式随机数生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36529474/
使用 glm 时,binomial、binomial() 和 'binomial' 之间有什么区别。它们并不相同,如以下代码所示: > library(MASS) > bwdf = birthwt[-
我一直在用我的(非 r-savvy)大脑来让 R 产生二项式 glmer 模型的正确预测的百分比。我知道这不是统计上的 super 信息,但经常被报道;所以我也想举报。 数据: 因变量:Tipo,它有
我一直在寻找一种方法来使数据符合 beta 二项分布并估计 alpha 和 beta,类似于 VGAM 库中的 vglm 包的方式。我一直无法找到如何在 python 中执行此操作。有一个 scipy
如何在 Julia 中提取一般线性模型中指定的数据分布?例如,下面我安装了一个玩具示例 Poisson GLM。我想从模型中提取一个字符串“Poisson”。同样,如果使用数据分布指定模型 = Bin
我是一名优秀的程序员,十分优秀!