根據 Knuth《計算機程序設計藝術》與標準教材定義,算法具備五大特性:
關鍵在於「零個或多個」——輸入可以為空集。
算法:輸出圓周率 π 的前 100 位
輸入:無
輸出:3.1415926535...
步驟:
1. 內置常數字符串 "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679"
2. 輸出該字符串
算法:獲取當前系統時間戳
輸入:無(隱式依賴硬件時鐘)
輸出:Unix timestamp (如 1704067200)
步驟:
1. 調用系統調用 clock_gettime(CLOCK_REALTIME, &ts)
2. 返回 ts.tv_sec
算法:線性同餘隨機數生成器 (LCG)
輸入:無(種子內置或靜態變量)
輸出:偽隨機數序列
狀態:seed = (seed * 1103515245 + 12345) & 0x7fffffff
步驟:
1. seed ← 初始值 12345
2. 循環:seed ← (seed * A + C) mod M;輸出 seed
算法:GPU 顯卡 BIOS 初始化
輸入:無(掉電後狀態確定)
輸出:初始化完成標誌
步驟:
1. 復位命令發送
2. 依次配置時序寄存器、顯存參數、時鐘頻率
3. 執行內建自檢 (BIST)
4. 設置視頻模式
算法:計算 e (自然對數底數) 到小數點後 50 位
輸入:無
輸出:2.71828182845904523536028747135266249775724709369995
步驟:
1. 使用泰勒級數 e = Σ(1/n!) from n=0 to ∞
2. 迭代累加直到精度滿足要求
| 類型 | 說明 | 例子 |
|---|---|---|
| 顯式輸入 | 參數傳遞、文件讀取、用戶輸入 | 排序算法接收數組參數 |
| 隱式輸入 | 全局變量、環境變量、硬件狀態、內置常數 | 獲取系統時間、隨機數生成器 |
| 零輸入 | 完全自包含,無外部依賴 | 輸出固定字符串、計算數學常數 |
零輸入算法在理論計算機科學中極其重要: