curand,thrust :: random

时间:2012-07-19 18:53:16

标签: c++ cuda

我想在.cu格式文件中使用drand48获取随机统一号码为什么我总是给我3.90799e-14这个值

我的代码在ran_uniform_test.cu

#include <iostream>
int main( int argc, char** argv) 
{ 
    std::cout<<drand48()<<"\n"; 
    return 0;
}

1 个答案:

答案 0 :(得分:1)

在使用srand48之前,您应该致电drand48(或seed48lcong48):

  

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;
}