---
# System prepended metadata

title: 計概：電腦運算的限制
tags: [計算機概論]

---

# 計概：電腦運算的限制
##  硬體
算數上的限制
### 整數
32位元→ $-2^{31}$ ~ $2^{31}-1$

### 實數
- 精確度：可以被表示的有效位數的最大數值。

假設一個精確度為4位元，第五個位元表示指數，如：

``` 
+  +  9 1 2 3 4 為 1234 * 10^9，-  -  3 1 4 4 6 為 -1446 * 10^-3
↑  ↑  ↑
數 指 指
字 數 數
的 的 值
```


### 表示錯誤（捨去錯誤）
- 下溢位 underflow：表示為0。


$$
\begin{equation}\begin{split}
4412 & \times 10^{-9}\\\\
\times \ 1000 & \times 10^{-8}\\\\
= 4412000 & \times 10^{-17}\\\\
= 4412 & \times 10^{-14}\\\\
\end{split}\end{equation}
$$ 

>太小了無法表示


- 上溢位 overflow：以最大值表示


$$
\begin{equation}\begin{split}
4412 & \times 10^9\\\\
\times \ 1000 & \times 10^8\\\\
= 4412000 & \times 10^{17}\\\\
= 4412 & \times 10^{20}\\\\
\end{split}\end{equation}
$$

>太大了無法表示
表示為 $9999 \times 10^9$


- 相消錯誤


$$
\begin{equation}\begin{split}
1 + 0.00001234 - 1 & = 0.00001234\\\\
100000000 \times 10^{-8}&+\ 1234 \times 10^{-8}\\\\
= 100001234 \times 10^{-8} &\to 1000 \times 10^{-3}\\\\\\\\
1000 \times 10^{-3} -  1000 &\times 10^{-3}=0\\\\
\end{split}\end{equation}
$$


### 溝通的限制
#### 錯誤偵查編碼、錯誤修正編碼
- 同位元：用一個額外的位元來確保一個位元組的1的個數為基或偶數。
- 奇同位：如10001100，此時同位元為0，10111101，此時同位元為1。
- 偶同位
- 檢查位元：將所有位數加起來，存取總和的個位數，如 34376 總和為 23 ，儲存：34376-3。

---
##  軟體
### 軟體的複雜性
### 軟體工程
解決問題的步驟新增兩項，軟體需求、規格。

---
##  問題
### Big-O 分析

$$f(N) = N^4 + N^2 - 1 \to O(N^4)$$

- $O(1)$ 界線時間：如指定一個直到一個長度為N的陣列中的第i項。
- $O(logN)$ 對數時間：如二元搜尋法 BST。
- $O(N)$ 線性時間：如印出N筆資料。
- $O(NlogN)$：如快速搜尋法。
- $O(N^2)$：如簡單排序法。
- $O(2^N)$ 指數時間
- $O(N!)$ 階層時間

### 杜林機器（圖靈機器）
- 讀取紙帶上一個儲存格的符號
- 將一個符號寫入儲存格
- 向左/右移一格，或不動

任何具有可計算性的東西都可以藉由杜林機器來運算

### 演算法分類
- 多項式演算法 P 類別
- NP 類別：可以在多項式時間內完成的演算法

###### tags: `計算機概論`