資訊科技對人類生活之影響
提問:你覺得電腦有什麼做不到的事呢?它是無所不能嗎?
電腦的限制(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-停機問題
說明
1. 電腦的計算能力. 隨著電子技術和電腦技術的發展, 電腦的存儲和計算能力與日 俱進, 有些以前看起來不可行的問題現在已經可以輕鬆地解決. 但是不是當存儲和計算能力大到無限的時候, 我們可以解決任何問題? 停機問題給出了否定的答案, 即不管電腦 的存儲和計算能力有多強, 停機問題都無法解決.
2. 不同語言, 不同計算設備的計算能力. 1936 年 Alan Turing 設計出一種假想的計算設備 稱為通用圖靈機, Church-Turing 論題指出如果一個函數是可計算的, 那麼這個函數可以用 圖靈機程式設計去計算它. 而停機問題就是不可計算的.
3. 不存在一個完美的工具可以檢測程式的運行時性質
參考網站:
http://www.codedata.com.tw/social-coding/halting-problem