Re: [問題] 練習題
※ 引述《GreatShot (我要拿Ph.D.!!!)》之銘言:
: : 另外,如果要算的次方數很大的話
: : (應該到五次或是六次就應該呼叫了..)
: : 建議呼叫 Math.Pow 會快上很多....
: : 裡面用的算法比你自己寫的連乘法好很多..
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: 這點跟我認知很不一樣
: 我沒看過Math.Pow()的source所以不敢說它演算法好不好
: 我只能作實驗來觀察
: source如下
我利用了你的程式~
"單" 測連乘和Math.Pow()在1~1000次方時連做100次運算..
我把結果繪成圖表
http://moon.cse.yzu.edu.tw/~s922254/lala/fig.png

http://moon.cse.yzu.edu.tw/~s922254/lala/app.rar (程式)
x軸是次方, y軸是時間(us)
紅色是用 Math.Pow計算
藍色是 int 的連乘 (a*a*a*a....)
綠色是 double 的連乘
結果是 Math.Pow所需的時間一直都蠻固定的..
我想 Math.Pow 應該有做到一定程度的最佳,
而且甚至可能是native code, 所以呼叫的overhead較大..
(其實我只是看圖說故事orz)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.145.125
推
05/03 19:28, , 1F
05/03 19:28, 1F
推
05/03 21:13, , 2F
05/03 21:13, 2F
→
05/03 21:33, , 3F
05/03 21:33, 3F
推
05/05 18:16, , 4F
05/05 18:16, 4F
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章