.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()のいずれかが呼び出される前にそのうちの1つを呼び出す必要があります。(推奨される方法ではありませんが、初期化エントリポイントを事前に呼び出さずに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;
}