作者Serenede (Serenede)
看板Mathematica
標題[問題] 迴圈加速
時間Sun Dec 21 00:27:29 2014
sav = 0; iter = 10000000;
For[i = 1, i <= iter, i++,
If[Random[]^2 < 1/2, sav = sav + 1;]
] // Timing
2 sav/iter // N
這樣居然也算了23秒,覺得有點太久,請問要怎樣寫才會快呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.26.112.191
※ 文章網址: http://www.ptt.cc/bbs/Mathematica/M.1419092852.A.941.html
※ 編輯: Serenede (114.26.112.191), 12/21/2014 00:39:59
→ biglion: Nest[UnitStep[(1/2-Random[]^2)]+#&,0,10000000] 12/21 00:57
推 sunev: RandomVariate[NormalDistribution[1/Sqrt[2], 1/Sqrt[12]/ 12/21 07:02
→ sunev: /Sqrt[10000000]]] 12/21 07:02
推 chungyuandye: AbsoluteTiming@Total@NestList[If[Random[]^2<0.5, 12/21 07:36
→ chungyuandye: 1,0]&,0,iter] 12/21 07:36