2012-07-19 69 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