gpt4 book ai didi

c++ - 此代码代表哪个发行版?

转载 作者:行者123 更新时间:2023-11-30 03:42:05 27 4
gpt4 key购买 nike

我正在阅读一段生成随机数的代码。但我不知道它是哪个发行版。谁能告诉我它是哪个发行版?

#include<cmath>
double rand(double min, double max)
{
return min+(max-min)*rand()/(RAND_MAX+1.0);
}
double normal(double x, double miu,double sigma)
{
return 1.0/sqrt(2*pi)/sigma*exp(-1*(x-miu)*(x-miu)/(2*sigma*sigma));
}
double randn(double miu,double sigma, double min ,double max)
{
double x,y,dScope;
do{
x=rand(min,max);
y=normal(x,miu,sigma);
dScope=rand(0.0,normal(miu,miu,sigma));
}while(dScope>y);
return x;
}

我使用参数 (0,0.01,-0.6,0.6) 调用了函数 randn。我想知道 randn 代表哪个分布?这让我很困惑,dScope 有什么用?总共有14951个样本。直方图如下: enter image description here

最佳答案

不,它不是正态分布(从 -Infinity 到 +Infinity),而是截断的正态分布,通过接受/拒绝方法在区间 [min...max] 中采样。链接:https://en.wikipedia.org/wiki/Truncated_normal_distribution

关于c++ - 此代码代表哪个发行版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com