資訊科技對人類生活之影響


提問:你覺得電腦有什麼做不到的事呢?它是無所不能嗎?

電腦的限制(Limitations of Computing)

在前面的課程我們探討了什麼是電腦?它可以做什麼及如何使用它來解決問題.但電腦也有做不到的事.正如同路障阻礙交通一樣.因硬體.軟體及本身問題所造成的限制.阻礙了某些程序的進行

1.硬體

(1)算術上的限制(Limits on Arithmetic)

活動設計1-硬體造成整數或實數的表示限制

http://icm.mcs.kent.edu/research/bignumdemo.html

https://www.wolframalpha.com/examples/Math.html

(2)元件的限制(Limits on Components)

活動設計2-硬碟(HDD)壞軌

上述問題可以解決嗎?

2.軟體

(1)軟體錯誤(bug)

活動設計3-Debug

(2)軟體的複雜性(Complexity of Software)

軟體需求通常源自於人腦抽象的概念與想法,而最後實現在軟體上的,則是明確且具體的指令和動作。從人類的思維變成具體的系統上技術,再透過程式語言建構去實現,這中間存在著一個很大的落差,且缺乏有效的轉換工具。如下圖2.3 所示。


資料引用

http://www.bestwise.com.tw/_trial_files/52mit00801/ch02.pdf

(3)停機問題(The Halting Problem)

停機問題 當我們寫程式測試的時候, 有時會遇到這樣一種情況: 等了很久, 程式還一直在運行. 我們不知道是程式在正常運行只是執行時間比較久, 還是程式寫的有問題.導致程式根本不會停止. 這時候我們想, 如果能有個工具能為我們判斷我們寫的程式碼的運行時間就好了. 這就是停機問題.

資料來源:http://www.codedata.com.tw/social-coding/halting-problem

 

活動設計4-停機問題

參考網站http://www.zutopedia.com/

說明

1. 電腦的計算能力. 隨著電子技術和電腦技術的發展, 電腦的存儲和計算能力與日 俱進, 有些以前看起來不可行的問題現在已經可以輕鬆地解決. 但是不是當存儲和計算能力大到無限的時候, 我們可以解決任何問題? 停機問題給出了否定的答案, 即不管電腦 的存儲和計算能力有多強, 停機問題都無法解決.

2. 不同語言, 不同計算設備的計算能力. 1936 年 Alan Turing 設計出一種假想的計算設備 稱為通用圖靈機, Church-Turing 論題指出如果一個函數是可計算的, 那麼這個函數可以用 圖靈機程式設計去計算它. 而停機問題就是不可計算的.

3. 不存在一個完美的工具可以檢測程式的運行時性質

參考網站:

http://www.codedata.com.tw/social-coding/halting-problem