gpt4 book ai didi

c++ - normal() 总是给出负值

转载 作者:行者123 更新时间:2023-11-30 02:03:43 24 4
gpt4 key购买 nike

我正在使用 normal(mean, sigma) 为具有均值和 sigma 的正态分布生成随机数。我的西格玛是 8db,平均值是 0。但是当我做正常(平均值,西格玛)时,我总是得到负值。有什么办法可以获得正数吗?

最佳答案

您不只是调用 normal(double mean, double sigma) .
相反,请调用 double r8_normal ( double a, double b, int &seed ) , 其中a是平均值,b是西格玛,seed初始化随机数生成器。

我能够在 link 中编译和使用 Normal 库你提供了。
我下载了 normal.cpp 和 normal.hpp。这些是旧文件,主要是 Fortran 的翻译。
我必须通过添加 #include <complex> 来修改 normal.hpp和改变complexstd::complex在前两个声明中让它在低警告级别为我编译。

然后我创建了一个测试驱动程序:

#include "normal.hpp"
#include <iostream>

int main() {
int seed = 123;
std::cout << r8_normal (0.0, 8.0, seed) << '\n'
<< r8_normal (0.0, 8.0, seed) << '\n'
<< r8_normal (0.0, 8.0, seed) << '\n'
<< r8_normal (0.0, 8.0, seed) << '\n'
<< r8_normal (0.0, 8.0, seed) << '\n';
}

给出了这个输出

8.19933
1.45505
-2.42428
26.9111
12.8398

对于 mean = 0.0,sigma = 8.0,一切看起来都对我有用。

关于c++ - normal() 总是给出负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11496419/

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