[問題] 迴圈內執行 srand() 兩次結果都一樣
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
windows
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
當我在執行rand_table的迴圈時第一次的結果跟第二次結果完全一樣,不知道是為什麼
每次執行後有清除randan的資料在執行,是哪裡需要改嗎?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
void set_rand_table()
{
float Ur[11000], Vr[11000], nrand[11000];
srand(time(NULL));
for (int k = 0 ; k < 11000; k++){
Ur[k] = (float)rand()/RAND_MAX;
Vr[k] = (float)rand()/RAND_MAX;}
for (int k = 0 ; k < 11000; k++)
nrand[k] = sqrt(-2.0f * log( Ur[k] )) * cosf( 6.283185307179586f *
Vr[k]);// * 0.707106781186547f; //gaussian wave packet
cudaMemcpyToSymbol(randtable, nrand, 44000, 0, cudaMemcpyHostToDevice);
}
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.234.23
推
05/12 14:12, , 1F
05/12 14:12, 1F
→
05/12 14:12, , 2F
05/12 14:12, 2F