2012-07-19 34 views
0

我想在.CU格式的文件使用drand48获得随机数一致,为什么我总是给我3.90799e-14这个值curand,推力::随机

我的代码是在ran_uniform_test.cu

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

你没有播种的随机数 – pyCthon 2012-07-19 18:54:35

+0

如何?你能给我一些提示,我只是在其他代码中使用它,它工作,但它不这样工作 – user1536720 2012-07-19 18:56:34

回答

1

你应该调用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; 
} 
+0

谢谢!学到新东西! – user1536720 2012-07-19 19:37:19