輸入/輸入
現代計算機都采用存儲程序結構,又稱為馮·諾依曼結構,所有對計算機的操作,都可以簡化為如下模型:

現代計算機組成的五大部分:
- 控制器
- 運算器
- 存儲器
- 輸入/輸出設備
馮·諾依曼結構主要特點有:
-
以運算單元為中心;
輸入/輸出設備與存儲器之間的數據傳送都途經運算器。運算器、存儲器、輸入設備們之間的聯系都由控制器集中控制; -
指令的執行是順序的,即一般按照指令在存儲器中存放的順序執行,程序分支由轉移指令實現(程序需要根據特定的條件來改變執行的順序,這時就需要使用分支機制);
-
存儲器是字長固定的、順序線性編址的一維結構;
存儲器提供可按地址訪問的一級地址空間,每個地址是唯一定義的; -
數據以二進制編碼;
指令和數據均采用二進制格式; -
由指令形式的低級機器語言驅動;
模型分層
計算機和網絡等都采用分層設計的,如下圖:
| 層 | 備注 |
|---|---|
| 應用層、云計算 | 軟件 |
| 庫、接口、服務 | 軟件 |
| 編程語言 | 軟件 |
| 操作系統 | 軟件 |
| 指令集體系架構 | 軟件 |
| 邏輯門 | 硬件 |
| 電路 | 硬件 |
| 半導體 | 硬件 |
| 電流 | 硬件 |
層的一些通用法則
-
依賴性
計算機的工程模型是深度層疊的,并且每一層的設計都會影響上、下相鄰的兩層; -
獨立性
- 每一層都獨立處理其特定的任務或功能。層與層之間的設計和實現細節可以獨立進行;
- 模型分層讓設計者能夠擺脫現實物理的約束;
-
傳遞性
- 不同的層次之間有不同的溝通方式,這個約定好的溝通方式叫作協議,并且不能越層溝通;
- 可以沒有上層只有下層,但一定不能只有上層而沒有下層;
這些法則不僅適用于計算機體系,在計算機網絡、操作系統、軟件開發和硬件設計中也廣泛應用。
算法和程序
算法和程序都屬于應用層。
算法定義:
算法是對解決方案的準確而完整的描述,是一系列解決問題的清晰指令,代表著用系統的方法描述解決問題的策略機制。 也就是說,算法對于具有一定規范的輸入,能夠在有限的時間內給出所要求的輸出。
- 程序 = 由計算機系統執行的一系列指令或代碼集合 + 數據;
- 算法其實就是設計者針對問題場景所設計的一些最佳策略;
- 某場景的應用 = 針對該場景的算法 + 數據;
算法在古代就已經存在。算法的雛形是規律,例如古人在治理洪水的過程中發現了勾股術,并且使用勾股術成功測量了兩地的地勢差。除此之外,還有很多例子證明了算法從古至今都存在。
如今,算法不再局限于數學領域的應用,而是升級為解決多領域復雜問題、提供多行業應用方案的有力助手,成為人工智能時代的關鍵要素。
算法無論在政務領域還是在商業領域都有著極大的應用,可以應用到智慧政務、公安防詐、無人駕駛、內容推薦、人臉識別、貨品陳列等多個行業領域。
算法的其它要求
一個好的算法設計,除了需要解決問題之外,通常還要盡力達到“雙低”:
- 一是計算工作量小,速度越快越好;
- 二是所需內存空間小,占地越小越好。
總結:
算法就是一個問題的解決方案,解決問題的形式是:通過輸入和輸出結構。盡量還需要雙底。
一個算法能運行的條件
需要滿足有三要素:
- 算量(數據)
- 算法
- 算力
如果比作一個廚房做菜,數據就是材料,算力就是一個廚房的設備、水、火、鍋具,算法就是做菜的流程。
算法的研發過程
解決具體問題的過程,這個過程就類似于求解數學中的應用題,要嘗試運用各種理論和公式得到最優解。
流程:
- 分析業務問題、
- 收集梳理數據、
- 特征提取、
- 建模、
- 設計算法方案等
宏觀視角看待算法
從宏觀來看待,算法就是一個函數,有輸入、內部運算、輸出 三部分。

輸入:
輸入就是將現實參數轉為可以由計算機處理的二進制數。
內部運算:
內部運算則是以現實目標作為求解的目標,這個步驟需要程序員用自己的經驗去挑選出一個合適的計算方法(計算步驟)來完成這個計算過程。
計算機比手動算的優勢在于,計算機可以大量的循環(重復計算,這個是人腦難以做到的),當然還有大量的存儲。
輸出:
輸出就是將運算的結果輸出。
浙公網安備 33010602011771號