我想在 .cu 格式文件中使用 drand48 获得随机统一数,为什么我总是给我 3.90799e-14 这个值
我的代码在 ran_uniform_test.cu
#include <iostream>
int main( int argc, char** argv)
{
std::cout<<drand48()<<"\n";
return 0;
}
您应该在使用之前调用srand48
(或seed48
,或) :lcong48
drand48
srand48()、seed48() 和 lcong48() 是初始化入口点,其中一个应在调用 drand48()、lrand48() 或 mrand48() 之前调用。(虽然不建议这样做,但如果在没有事先调用初始化入口点的情况下调用 drand48()、lrand48() 或 mrand48(),则会自动提供常量默认初始化值。) erand48()、nrand48() 和jrand48() 函数不需要首先调用初始化入口点。
像这样使用:
#include <iostream>
#include <ctime>
#include <cstdlib>
int main(int argc, char *argv[])
{
// A common random seed strategy is to use the current time
srand48(time(NULL));
std::cout << drand48() << std::endl;
std::cout << drand48() << std::endl;
std::cout << drand48() << std::endl;
std::cout << drand48() << std::endl;
return 0;
}