全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1055
推到 Plurk!
推到 Facebook!

請問亂數的產生

尚未結案
sunnysophia
一般會員


發表:8
回覆:4
積分:2
註冊:2004-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-07 10:58:41 IP:218.162.xxx.xxx 未訂閱
請問各位大大們 如果我想產生一些數值 而如下的Y1及Y2是我真的要去run程式的資料 (1)U1 and U2 are independent uniform (0,1) random variable U1和U2各產生50筆 (2)X1=cosf(2*pi*U1)*sqrtf(-2*logf(U2)) X2=sinf(2*pi*U1)*sqrt(-2logf(U2)) X1 and X2are independent N(0,1) random variable X1和X2各產生50筆 (3)Y1=a1 sigma1*X1,Y1 is ransom variable of N(a1,sigma1^2) Y2=a2 sigma2*X2,Y2 is random variable of N(a2,sigma2^2) Y1和Y2各產生50筆 我想請問的是: 在(1)中的U1和U2 若以亂數函式(依據時間)來產生 接著算出X1X2Y1Y2 代入程 式裡run其結果會與預期的有差距 其原因我想 可能是:若系統在5秒產生一筆亂數好了 而我要產生50筆之U1 那第一筆U1及第二筆U2可能值會相同(因他5秒才產生一次) 之後也許也會有類似情況發生 所以才造成與預期的有差距 那我先計算出(0,1)均勻分佈之平均數與標準差0.5和0.28 再設定資料平均數與標準差之上下限 例如 設定資料平均數和標準差的上下界分別為 (0.485,0.515),(0.275,0.35) 也就是說 當產生50筆U1時 會檢查此50筆U1之平均數與標準差是否在此範圍內 若是 就繼續做 若不是再重選一次 這樣我發現結果會比較接近預期的 寫了那麼多 只是想問 後者的方式是否比較能產生均勻分配之U1U2? 因為我看了許多書和問許多人 他們都表示 若沒特定之需要就把系統產生的亂數當作是均勻分配 但我的資料產生是一定要把U1U2當均勻分配 否則X1X2Y1Y2就不是標準常態及常態分佈 我並不是否認系統產生的亂數一定就不會是均勻 只是我曾畫過U1U2的圖 大部分都不太像均勻分佈 當然X1X2Y1Y2的圖也很怪 想請大大們對於我的問題 提點建議 謝謝!!
rogan321
高階會員


發表:21
回覆:307
積分:200
註冊:2003-05-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-07 21:35:30 IP:203.204.xxx.xxx 未訂閱
既然是取亂數~要求均勻,那當然就與你取的數量與亂數的範圍有關; 如果你的亂數範圍是1~1000,但你只取100次要達到均勻,的可能機率 相對的就小~而你取10萬次達到的機率就大;所以如果你一定要達到 你的要求~那就是"動手腳",例如今天要取100次~那你可以在每求100次 將此100次的平均值當1次,那你實際上是求取10000次~來得到此100次 的值~可能就會比較接近你要的答案~參考~參考~
系統時間:2024-05-19 18:03:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!