SlideShare a Scribd company logo
1 of 27
計算機大小事

- 通識報告 文化脈絡中的數學

資工 3B 楊翔雲
為什麼講這個主題 ?
• 計算機很快,但是為什麼會快 ?

• 身為資工系
從這裡下手
作業曾經要我們查查 “Grace Hopper“

也許又因為 12/09
Google 搜尋頁上的 COBOL
單教授做的網頁
數形結合、數形變換 ?
• 用一個幾何的方法去解決一個代數問題

• 那令人痛恨的高中數學,又有多少是這種
• 真的有說的那麼簡單嗎 ?
再這樣說下去
• 越來越艱深的專業用語
舉個例子 – 最大平均值問題
找一段長度至少 L,平均價值最高的。
好比一張淋濕的紙,找一段質量最好剪下來
j

x [i ]
f ( x [], n )

max(

),   
0

k i

j

i

1

i

j

n
這問題並不難啊
• 任抓一個區間計算不就得了!

C(n, 2) = O(n2)
• 但是不夠快
一頁思路解決它、加快它
• 平面上一點 (x, y)
x

y
Z

i
i

y

x[k ]
k 0

• 找斜率最大的一條線

A

《浅谈数形结合思想在信息学竞赛中的应用》

x
j

x [i ]
f ( x [], n )

max(

),   
0

k i

j

i

1

i

j

n
有多快 ?
• O(n)

• 好比看完題目的時間,答案就算出來了。
• 能這樣考試有多好辦事
數形,告一段落。
• 說不定是誤會數形了

• 談點大家都明白的數學計算
根號 √
• √n 如何計算其值 ?

• 國中數學 - 十分逼近法、二分逼近法
• 直式開平方法 (中國直式開方法)
直式開平方法 (一閃而過)
951*951=904401
口->9
+ 口->9
----18口->5
+ 口->5
-----190口->1
+
口->1
--------1902

9, 5, 1
---------|90,44,01
81
-------9,44,01
9,25
------19,01
19,01
-----0
大學時期
牛頓迭代法

xn

1

xn

f ( xn )
f ' ( xn )
《一個sqrt函數引發的血案》
• 這計算不能再快了!

• 讀到大學,
想必基礎計算已經達到頂峰了 ?
《一個sqrt函數引發的血案》
• 有人提出 1/√n 比 √n 更好算

• 只差一個倒數,倒回來不是更痛苦!
怎麼可能比較好算。
《一個sqrt函數引發的血案》
float InvSqrt(float x)
{
float xhalf = 0.5f*x;
int i = *(int*)&x; // get bits for floating VALUE
i = 0x5f375a86- (i>>1); // gives initial guess y0
x = *(float*)&i; // convert bits BACK to float
x = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracy
x = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracy
x = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracy
}

return 1/x;

• 0x5f375a86 常數打哪來 ?
圖片來源 - 西乔的九卦
《一個sqrt函數引發的血案》
• 令數學家也匪夷所思的常數計算
• 找不到程式碼原作者,外星人 ?

圖片來源 - 西乔的九卦
外星人程序
• 非常精簡
• 摸不著頭緒的流程

• 莫名其妙,中間夾雜了奇怪的不明物
• extra.外星人计算PI的程序精确到800位
更殘酷的事實
• √n 平常根本用不到
• 2 個 n 位數字相乘,算是更和藹可親吧 ?
看點最近發生過的事情
• 人腦計算機 (2013/11/04 Google Event)
• 印度的數學家 Shakuntala Devi
(1929-2013)
看點最近發生過的事情
1980年(51 歲),僅花28秒就正確算出兩
個13位數字相乘的答案
「7 686 369 774 870 X 2 465 099 745 779 =?」
兩數相乘-直式乘法
兩個 n 位數字相乘

• 使用 n2 次的乘法。
• O(n2)

1234
x
5678
__________
9872
8638_
7404__
6170___
__________
7006652
兩數相乘 - more
兩個 n 位數字相乘

• D&C (分而治之)
• FFT (快速傅立葉)

1234
x
5678
__________
9872
8638_
7404__
6170___
__________
7006652

O(n1.59)
O(n lg n lglgn)

• O(n2)
有如 IE 望向 Chrome、FireFox 的感受
仔細一看這份 ppt
• 很多演算法 (Algorithm) 沒有時間說清楚

• Algorithm 從何時說起 ?
Thank You!
Blog Website:
mypaper.pchome.com.tw/zerojudge
補充 – 匹配問題
• n 個男生、n 個女生,互相匹配各有好感度

• 求整體好感度總和最大化。
• 賽局理論 ?
• 在 Algorithm 中,還是悄悄地退出場好了。
補充 – 電腦亂數問題
• 為什麼樂透 (Lotto) 還是要用滾筒
公布號碼呢 ?
• 既然有規律,還要買電腦選號嗎 ?

• 為什麼遊戲中裝備總是衝不到 +10 ?
其他人是怎麼辦到的 ?

More Related Content

More from Shiang-Yun Yang

計算型智慧論文報告 Building optimal regression tree ...
計算型智慧論文報告 Building optimal regression tree ...計算型智慧論文報告 Building optimal regression tree ...
計算型智慧論文報告 Building optimal regression tree ...Shiang-Yun Yang
 
Aaex7 group2(中英夾雜)
Aaex7 group2(中英夾雜)Aaex7 group2(中英夾雜)
Aaex7 group2(中英夾雜)Shiang-Yun Yang
 
Rpg 角色扮演遊戲 – 初探
Rpg 角色扮演遊戲 – 初探Rpg 角色扮演遊戲 – 初探
Rpg 角色扮演遊戲 – 初探Shiang-Yun Yang
 
Aaex6 group2(中英夾雜)
Aaex6 group2(中英夾雜)Aaex6 group2(中英夾雜)
Aaex6 group2(中英夾雜)Shiang-Yun Yang
 
Aaex5 group2(中英夾雜)
Aaex5 group2(中英夾雜)Aaex5 group2(中英夾雜)
Aaex5 group2(中英夾雜)Shiang-Yun Yang
 
Aaex4 group2(中英夾雜)
Aaex4 group2(中英夾雜)Aaex4 group2(中英夾雜)
Aaex4 group2(中英夾雜)Shiang-Yun Yang
 

More from Shiang-Yun Yang (9)

計算型智慧論文報告 Building optimal regression tree ...
計算型智慧論文報告 Building optimal regression tree ...計算型智慧論文報告 Building optimal regression tree ...
計算型智慧論文報告 Building optimal regression tree ...
 
Aaex7 group2(中英夾雜)
Aaex7 group2(中英夾雜)Aaex7 group2(中英夾雜)
Aaex7 group2(中英夾雜)
 
Rpg 角色扮演遊戲 – 初探
Rpg 角色扮演遊戲 – 初探Rpg 角色扮演遊戲 – 初探
Rpg 角色扮演遊戲 – 初探
 
Aaex6 group2(中英夾雜)
Aaex6 group2(中英夾雜)Aaex6 group2(中英夾雜)
Aaex6 group2(中英夾雜)
 
Aaex3 group2
Aaex3 group2Aaex3 group2
Aaex3 group2
 
Aaex5 group2(中英夾雜)
Aaex5 group2(中英夾雜)Aaex5 group2(中英夾雜)
Aaex5 group2(中英夾雜)
 
Aaex4 group2(中英夾雜)
Aaex4 group2(中英夾雜)Aaex4 group2(中英夾雜)
Aaex4 group2(中英夾雜)
 
Aaex2 group2
Aaex2 group2Aaex2 group2
Aaex2 group2
 
Alex1 group2
Alex1 group2Alex1 group2
Alex1 group2
 

通識報告