發信人journeyman@kkcity.com.tw (㊣λπ啦!),
看板Programming
標 題Re: [問題] 快速-九九乘法表
發信站KKCITY (Tue May 27 11:15:14 2008)
轉信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.yzu!zoonews.ee.ntu!new
※ 引述《jeunder.bbs@ptt.cc》之銘言:
> 最簡單的方法, 沒有人想到嗎?
> 首先, i*j = j*i, 所以幾乎有一半不用算.
> 其次, i*(j+1) = i*j + i, 所以只要拿前一項 i*j 加上 i, 就得到 i*(j+1).
> 同理, (i+1)*j = i*j + j.
> 所以周圍的項目都可以用加法算出來, 而且只用 "一次" 加法.
> 依此類推擴展.
上個星期我試寫了一下這個做法,跟單純乘法比較,各跑10次
結果如下:
add: user:0.02 kern:0.03 clock:0.04 maxRes:434176K pfaults:1706 CPU%:111%
add: user:0.03 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:90%
add: user:0.03 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:93%
add: user:0.03 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:95%
add: user:0.03 kern:0.03 clock:0.04 maxRes:434176K pfaults:1706 CPU%:125%
add: user:0.04 kern:0.00 clock:0.04 maxRes:434176K pfaults:1706 CPU%:97%
add: user:0.04 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:116%
add: user:0.04 kern:0.02 clock:0.04 maxRes:434176K pfaults:1706 CPU%:133%
add: user:0.04 kern:0.02 clock:0.04 maxRes:434176K pfaults:1706 CPU%:139%
add: user:0.04 kern:0.02 clock:0.04 maxRes:434176K pfaults:1706 CPU%:142%
mul: user:0.03 kern:0.00 clock:0.04 maxRes:434176K pfaults:1706 CPU%:71%
mul: user:0.03 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:90%
mul: user:0.03 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:95%
mul: user:0.03 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:95%
mul: user:0.03 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:97%
mul: user:0.03 kern:0.03 clock:0.04 maxRes:434176K pfaults:1706 CPU%:150%
mul: user:0.04 kern:0.00 clock:0.04 maxRes:434176K pfaults:1706 CPU%:100%
mul: user:0.04 kern:0.02 clock:0.04 maxRes:434176K pfaults:1706 CPU%:142%
mul: user:0.04 kern:0.02 clock:0.04 maxRes:434176K pfaults:1706 CPU%:150%
mul: user:0.05 kern:0.01 clock:0.04 maxRes:434176K pfaults:1706 CPU%:136%
根本看不出什麼有意義的差別。Table大小是1000x1000,靜態配置,宣告在main()
以外,全域變數,用time算時間。後來我還動一點手腳,把尋找前一行同列cell
的運算簡化一點,拿掉乘法,改成減一個固定的offset就好,結果也沒啥差別。
前面那位每次可以跑到 0.3秒的,我在想是不是因為把動態記憶體配置的時間
也算進去的關係。
或者也可能是cygwin的time不準。總之後來我睡覺去了,因為我發現在這種超
簡單的operation 上偷時間實在是很無聊,還熬夜好幾個小時,更是無聊。
現在想到那天晚上還覺得浪費。 |<
--
蒙帝派松正體中文計畫 (4/23)
- 如何隱身 - SPAM - 英國殺人笑話
http://www.wretch.cc/blog/journeyman&article_id=14377810
▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
■法外科學暨工程顧問公司■ http://www.wretch.cc/blog/journeyman/
▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
--
┌─────◆KKCITY◆─────┐ ● KKCITY 市民小常識 ●
│ bbs.kkcity.com.tw │ Q:文章標題前有#符號是代表什麼意思?
└──《From:59.115.208.128
》──┘ A:被作者加密了,需輸入密碼才能閱讀
--
推 kbslave:我深感抱歉~~!@@ 140.114.71.150 05/27 14:36
→ MOONRAKER:不用抱歉吧 XD 大家都是有興趣才鑽進去 59.115.216.75 05/27 17:45
→ MOONRAKER:不過鑽進去venture之後卻發現不怎麼有趣 59.115.216.75 05/27 17:45
→ MOONRAKER:頂多就是當成自己投資錯誤 XD 59.115.216.75 05/27 17:46
→ MOONRAKER:而且沒實作一次,誰知道現在偷時間已經 59.115.216.75 05/27 17:49
→ MOONRAKER:沒有這麼單純的了? 59.115.216.75 05/27 17:50