通識報告

27
計算機大小事 - 通識報告 文化脈絡中的數學 資工 3B 楊翔雲

Upload: shiang-yun-yang

Post on 04-Jul-2015

707 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 通識報告

計算機大小事- 通識報告 文化脈絡中的數學

資工 3B 楊翔雲

Page 2: 通識報告

為什麼講這個主題 ?

• 計算機很快,但是為什麼會快 ?

• 身為資工系

Page 3: 通識報告

從這裡下手

作業曾經要我們查查 “Grace Hopper“

也許又因為 12/09Google 搜尋頁上的 COBOL

單教授做的網頁

Page 4: 通識報告

數形結合、數形變換 ?

• 用一個幾何的方法去解決一個代數問題

• 那令人痛恨的高中數學,又有多少是這種

• 真的有說的那麼簡單嗎 ?

Page 5: 通識報告

再這樣說下去

• 越來越艱深的專業用語

Page 6: 通識報告

舉個例子 – 最大平均值問題

找一段長度至少 L,平均價值最高的。

好比一張淋濕的紙,找一段質量最好剪下來

njiij

ix

nxf

j

ik 0),1

][

max()[],(   

Page 7: 通識報告

這問題並不難啊

• 任抓一個區間計算不就得了!

C(n, 2) = O(n2)

• 但是不夠快

Page 8: 通識報告

一頁思路解決它、加快它• 平面上一點 (x, y)

• 找斜率最大的一條線

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

y

x

Z

A

njiij

ix

nxf

j

ik 0),1

][

max()[],(   

i

k

kxy

ix

0

][

Page 9: 通識報告

有多快 ?

• O(n)

• 好比看完題目的時間,答案就算出來了。

• 能這樣考試有多好辦事

Page 10: 通識報告

數形,告一段落。

• 說不定是誤會數形了

• 談點大家都明白的數學計算

Page 11: 通識報告

根號 √

• √n 如何計算其值 ?

• 國中數學 - 十分逼近法、二分逼近法

• 直式開平方法 (中國直式開方法)

Page 12: 通識報告

直式開平方法 (一閃而過)

951*951=904401

9, 5, 1----------

口->9 |90,44,01 + 口->9 81----- --------

18口->5 9,44,01+ 口->5 9,25

------ -------190口->1 19,01

+ 口->1 19,01--------- ------

1902 0

Page 13: 通識報告

大學時期

牛頓迭代法

)('

)(1

n

n

nnxf

xfxx

Page 14: 通識報告

《一個sqrt函數引發的血案》

• 這計算不能再快了!

• 讀到大學,

想必基礎計算已經達到頂峰了 ?

Page 15: 通識報告

《一個sqrt函數引發的血案》

• 有人提出 1/√n 比 √n 更好算

• 只差一個倒數,倒回來不是更痛苦!

怎麼可能比較好算。

Page 16: 通識報告

《一個sqrt函數引發的血案》

• 0x5f375a86 常數打哪來 ?

float InvSqrt(float x){

float xhalf = 0.5f*x;int i = *(int*)&x; // get bits for floating VALUEi = 0x5f375a86- (i>>1); // gives initial guess y0x = *(float*)&i; // convert bits BACK to floatx = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracyx = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracyx = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracy

return 1/x;}

圖片來源 - 西乔的九卦

Page 17: 通識報告

《一個sqrt函數引發的血案》

• 令數學家也匪夷所思的常數計算

• 找不到程式碼原作者,外星人 ?

圖片來源 - 西乔的九卦

Page 18: 通識報告

外星人程序

• 非常精簡

• 摸不著頭緒的流程

• 莫名其妙,中間夾雜了奇怪的不明物

• extra.外星人计算PI的程序精确到800位

Page 19: 通識報告

更殘酷的事實

• √n 平常根本用不到

• 2 個 n 位數字相乘,算是更和藹可親吧 ?

Page 20: 通識報告

看點最近發生過的事情

• 人腦計算機 (2013/11/04 Google Event)

• 印度的數學家 Shakuntala Devi (1929-2013)

Page 21: 通識報告

看點最近發生過的事情

1980年(51 歲),僅花28秒就正確算出兩

個13位數字相乘的答案

「7 686 369 774 870 X 2 465 099 745 779 =?」

Page 22: 通識報告

兩數相乘-直式乘法1234

x 5678__________

98728638_

7404__6170___

__________7006652

兩個 n 位數字相乘

• 使用 n2 次的乘法。

• O(n2)

Page 23: 通識報告

兩數相乘 - more

1234x 5678

__________9872

8638_7404__

6170_____________

7006652兩個 n 位數字相乘

• D&C (分而治之) O(n1.59)• FFT (快速傅立葉) O(n lg n lglgn)

• O(n2) 有如 IE 望向 Chrome、FireFox 的感受

Page 24: 通識報告

仔細一看這份 ppt

• 很多演算法 (Algorithm) 沒有時間說清楚

• Algorithm 從何時說起 ?

Page 25: 通識報告

Thank You!

Blog Website: mypaper.pchome.com.tw/zerojudge

Page 26: 通識報告

補充 – 匹配問題

• n 個男生、n 個女生,互相匹配各有好感度

• 求整體好感度總和最大化。

• 賽局理論 ?

• 在 Algorithm 中,還是悄悄地退出場好了。

Page 27: 通識報告

補充 – 電腦亂數問題

• 為什麼樂透 (Lotto) 還是要用滾筒

公布號碼呢 ?

• 既然有規律,還要買電腦選號嗎 ?

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