作者tonyruler (TONY)
看板Fortran
標題[請益] random~
時間Tue May 4 22:53:45 2010
有辦法每次執行時
seed會自動改變嗎
不然每次執行都出現同一組seed的random_number
似乎達不到亂數的感覺
上課ppt上寫說
call random_seed()
do i=1,10
random_number(x)
print* x
enddo
end
每次執行a.out
得到的x值都會不一樣
可是我回家用 卻每次都一樣阿
都是同一組
到底是哪裡有問題= =?
:wq
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.186.29
1F:推 motoman:我的gfortran也不會自己random 我的方法是另外塞一個幫我 05/04 23:54
2F:→ motoman:做random的函式 這個東西google一下就有現成的可用了 05/04 23:55
3F:→ motoman:另一個方法是設定random_seed 但我不會用= = 05/04 23:56
4F:推 hsnuallen:我們老師會先CALL random_seed 然後緊接著再摳一次 05/05 00:14
5F:→ hsnuallen:Call random_seed (get=seed(1))耶 他說這樣可以避免 05/05 00:14
6F:→ hsnuallen:重複的情形發生...不過我只摳一次也沒有重複@@ 05/05 00:15
7F:推 latinboy: 要看compiler,gfortran會重複 05/05 08:47
9F:推 motoman:樓上原來我是call你的東西xd 05/05 09:07
10F:→ tonyruler:L大點醒我嚕~用ifort跟pgf90都不會重複嚕~ 05/05 20:14
11F:→ tonyruler:所以用上面兩種編譯器省掉寫函式的空間會比較好嗎? 05/05 20:28
12F:推 motoman:我的看法是你那個函式留著 code寫成三種都能編譯比較好 05/07 09:54
13F:推 motoman:一來是可以交插編譯除錯 再來是增加程式的可移植性 intel 05/07 09:57
14F:→ motoman:的cpu就用ifort編譯執行 amd的就用pgi編 沒必要省code行數 05/07 09:58