我想在.cu格式文件中使用drand48获取随机统一号码为什么我总是给我3.90799e-14这个值
我的代码在ran_uniform_test.cu
中#include <iostream>
int main( int argc, char** argv)
{
std::cout<<drand48()<<"\n";
return 0;
}
答案 0 :(得分:1)
在使用srand48
之前,您应该致电drand48
(或seed48
或lcong48
):
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;
}