[問題] 如何做到不用手動改亂數表的亂數?已回收

看板MATLAB作者 (ZC)時間16年前 (2009/05/30 16:56), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
寫了一個小小的程式測試亂數功能 隨機取10個1-100間的整數 for i = 1 : 10 a(1,i) = ceil(rand*100) ; end 雖然第一次跟第二次執行的結果不一樣(不關程式的狀況下) 但是把matlab關掉後再重開matlab執行的話...每次執行的結果都是一樣的... 這應該是亂數表的問題... 我也知道只要每次重開matlab後手動調一下亂數表結果就不會一樣了... 但是真的只能這樣作嗎? 有沒有辦法加幾行什麼東西讓我每次重開matlab後的執行結果會不一樣? (前提是不需手動調整亂數種子) PS : 記得以前寫C時用個randomize就可以解決了...不知道matlab有沒有類似功能... 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.44.120

05/30 18:40, , 1F
我的做法會這樣,rand('seed',rem(now*1000000,1000000))
05/30 18:40, 1F

05/30 19:41, , 2F
謝謝!! 我把他改成 rand('seed',mod(now*10^10,2^31)+1)
05/30 19:41, 2F

05/30 19:42, , 3F
這樣2^31種亂數種子都有機會被選到了 :)
05/30 19:42, 3F
※ 編輯: zergcho 來自: 203.111.209.224 (06/01 08:49)
文章代碼(AID): #1A8FJP93 (MATLAB)
文章代碼(AID): #1A8FJP93 (MATLAB)