運算思維

更新於 發佈於 閱讀時間約 4 分鐘

運算思維由2006年3月,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M. Wing)教授因提出並倡導「運算思維」而享譽計算機科學界。


運算思維分成四個步驟

演算思維

演算思維

拆解

將一個大問題拆解成許多小問題,各個擊破解決,當小問題解決了大問題也就解決了。

模式識別

將複雜的問題分解後,分析問題之間的相關性和相似性,尋找通用的解決方法的問題。

歸納與抽象化

從解決問題的過程中過濾不必要的特徵,提煉出共同屬性,建立通用的問題解法或規則

演算法

是將通用的問題解法或規則轉化為一組明確的步驟和指示,以實現問題的解決。


演算法的定義

「演算法(algorithm)」在韋氏辭典的定義是「在有限步驟內解決數學問題的程序

演算法在生活中無處不在,並且在許多日常活動中起到關鍵作用。

生活中常見演算法應用

  1. 交通流控制: 基於即時交通狀況、道路容量以及交叉口的車流量等因素,動態調整燈號的時序,最大程度地減少交通擁堵,提高流通效率。
  2. 社交媒體推薦系統: 分析用戶的行為和興趣,以推薦相關的內容、朋友或產品。
  3. 網上購物推薦: 分析用戶的購買歷史和喜好,提供個性化的商品推薦。
  4. 路線規劃: 計算最短、最快或最節能的路線。
  5. 語音辨識: 解析語音信號,轉換為文字或執行特定的操作。
  6. 醫學影像分析: 辨識和分析影像,例如在檢測腫瘤或其他疾病方面。
  7. 金融風險管理: 評估和管理風險,例如信用評分和投資組合管理。
  8. 天氣預報: 處理大量氣象資料,以生成準確的天氣預報。

演算法的基本特性

演算法具有一些基本特性,這些特性有助於定義和評估演算法的有效性。

以下是演算法的一些主要特性:

  1. 明確性(Definiteness): 演算法的每一步都必須明確而清晰,沒有歧義。每一個步驟都應該可以被執行且理解,而不會引起混淆。
  2. 有限性(Finiteness): 演算法必須在有限的步驟內終止。它不能是無窮迴圈或無窮的執行過程,而是在有限時間內給出結果。
  3. 輸入(Input): 演算法接受零個或多個輸入。輸入是演算法操作的起點,它可以包含任何需要被處理的數據。
  4. 輸出(Output): 演算法生成一個明確的輸出,這是在輸入基礎上經過處理後得到的結果。輸出可以是一個值一組值其他形式的信息
  5. 有效性(Effectiveness): 又稱可行性。能夠實現演算法中描述的操作。

簡單的演算法範例

使用 Python 語言實現。這是一個基本的排序演算法——氣泡排序法(Bubble Sort)

def bubble_sort(arr):
n = len(arr)

# 外層循環控制需要比較的輪數
for i in range(n):
# 內層循環控制每一輪比較的次數
for j in range(0, n - i - 1):
# 如果前一個元素大於後一個元素,則交換它們
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]

# 範例數組
example_array = [64, 34, 25, 12, 22, 11, 90]

# 使用氣泡排序法
bubble_sort(example_array)

# 打印排序後的結果
print("排序後的數組:", example_array)
#輸出
# 排序後的數組: [11, 12, 22, 25, 34, 64, 90]​

在生活當中,佈滿了各式各樣的演算法,讓我們掌握這種概念,不管是在工作上或生活上都將無往不利。

像整理家務是一樣,也可以套用運算思維的概念,比如設計一個最佳的家務排程,根據每個區域的清潔頻率和任務的複雜度,來安排打掃的流程,只是大多時候,我們都會根據以往的經驗來行事,整理一下做事步驟就可以達成事半功倍。


參考書籍



留言
avatar-img
留言分享你的想法!
小松鼠-avatar-img
2024/03/12
通用的思考框架 讚
螃蟹_crab-avatar-img
發文者
2024/03/13
小松鼠 真的,上次在一本書看到,才默默地覺得可以整理成學習心得~ 感覺很受用
avatar-img
螃蟹_crab的沙龍
147會員
261內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
螃蟹_crab的沙龍的其他內容
2025/04/27
位於台中市石岡區的【九房3D彩繪村】,是一個結合了3D立體彩繪藝術、社區故事、以及鄉村風情的小村落。 在東豐鐵馬道騎腳踏車時意外發現,雖然好像有點落寞的感覺,但牆上的圖還是栩栩如生。 小缺點就是壁畫相對地沒有那麼集中,不然是挺不賴的。 📍 九房3D彩繪村 基本資訊 地址:台中市石岡區
Thumbnail
2025/04/27
位於台中市石岡區的【九房3D彩繪村】,是一個結合了3D立體彩繪藝術、社區故事、以及鄉村風情的小村落。 在東豐鐵馬道騎腳踏車時意外發現,雖然好像有點落寞的感覺,但牆上的圖還是栩栩如生。 小缺點就是壁畫相對地沒有那麼集中,不然是挺不賴的。 📍 九房3D彩繪村 基本資訊 地址:台中市石岡區
Thumbnail
2025/04/03
趁這清明年假的前一日,趁沒人潮時來朝聖一下,身為海賊王的迷一定要來一下。 台中動漫彩繪巷是一個充滿二次元氣息的熱門打卡景點,位於台中市西區林森路100巷。這條巷子原本只是普通的街道,因為當地居民重新粉刷牆面時,覺得過於單調,於是開始在牆上繪製自己喜歡的動漫角色,結果意外爆紅,吸引了越來越多創作者加
Thumbnail
2025/04/03
趁這清明年假的前一日,趁沒人潮時來朝聖一下,身為海賊王的迷一定要來一下。 台中動漫彩繪巷是一個充滿二次元氣息的熱門打卡景點,位於台中市西區林森路100巷。這條巷子原本只是普通的街道,因為當地居民重新粉刷牆面時,覺得過於單調,於是開始在牆上繪製自己喜歡的動漫角色,結果意外爆紅,吸引了越來越多創作者加
Thumbnail
2025/03/28
先上費用總表。若有錯誤在幫忙糾正。 TPASS最便宜,但需出月台過卡。 台鐵60定期票其次,但如果有請假兩天以上,就沒悠遊卡划算。 悠遊卡搭乘最靈活但花費最高,偶爾想買週五自強座位票還可以選擇。 剩下就是省錢 或省力省時的選擇了 在評估從豐原到新竹每日通勤的費用時,以下是幾種可能的方
Thumbnail
2025/03/28
先上費用總表。若有錯誤在幫忙糾正。 TPASS最便宜,但需出月台過卡。 台鐵60定期票其次,但如果有請假兩天以上,就沒悠遊卡划算。 悠遊卡搭乘最靈活但花費最高,偶爾想買週五自強座位票還可以選擇。 剩下就是省錢 或省力省時的選擇了 在評估從豐原到新竹每日通勤的費用時,以下是幾種可能的方
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
1.0 從函數到函算語法 1.4 函算語法 1.4.1 語法範疇理論導論 二 範疇語法的得名主要是由於列希涅夫斯基和艾杜凱維茨沿用了胡塞爾的術語「意義範疇」(Bedeutungskategorien)。 到了1949年,二戰後終身在瑞士的弗里堡大學任教的波蘭哲學家及神學家 J.M.
Thumbnail
1.0 從函數到函算語法 1.4 函算語法 1.4.1 語法範疇理論導論 二 範疇語法的得名主要是由於列希涅夫斯基和艾杜凱維茨沿用了胡塞爾的術語「意義範疇」(Bedeutungskategorien)。 到了1949年,二戰後終身在瑞士的弗里堡大學任教的波蘭哲學家及神學家 J.M.
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 1.2.7 十九世紀的尾聲 三 必須說一下波希米亞數學家/邏輯學家/哲學家/神學
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 1.2.7 十九世紀的尾聲 三 必須說一下波希米亞數學家/邏輯學家/哲學家/神學
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 1.2.7 十九世紀的尾聲 一 函數概念的發展不可能終結,踏入公元廿一世紀,數學
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 1.2.7 十九世紀的尾聲 一 函數概念的發展不可能終結,踏入公元廿一世紀,數學
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5弦的振動 1.2.6熱的傳導 二 傅立葉認為他的結果對任一函數皆有效,並將函數定義為 (FF) 在一般情況下,函數
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5弦的振動 1.2.6熱的傳導 二 傅立葉認為他的結果對任一函數皆有效,並將函數定義為 (FF) 在一般情況下,函數
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 一 偏微分方程始於公元十八世紀,在十九世紀茁長壯大。 隨著物理科學擴展越深 (理
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 一 偏微分方程始於公元十八世紀,在十九世紀茁長壯大。 隨著物理科學擴展越深 (理
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 一 前文提到萊布尼茲與瑞士數學家約翰‧貝努利有過關於「函數」的通訊。現在談一下貝努利。 貝努利關心的其中
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 一 前文提到萊布尼茲與瑞士數學家約翰‧貝努利有過關於「函數」的通訊。現在談一下貝努利。 貝努利關心的其中
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法  二 前面說過,牛頓關心的不是抽象的數學問題,他要解決的是天體運動的問題。他知道,假如他擁有該天體在任何一刻的瞬速數據,他便能夠從質量
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法  二 前面說過,牛頓關心的不是抽象的數學問題,他要解決的是天體運動的問題。他知道,假如他擁有該天體在任何一刻的瞬速數據,他便能夠從質量
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 一 踏入公元十七世紀,微積分逐漸成形,而主要的貢獻來自德國數學家及哲學家萊布尼茲和英國數學家及物理學家牛頓。27 但兩人發展微
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 一 踏入公元十七世紀,微積分逐漸成形,而主要的貢獻來自德國數學家及哲學家萊布尼茲和英國數學家及物理學家牛頓。27 但兩人發展微
Thumbnail
NVDIA黃仁勳演講有提到分散式運算,我還真的做了分散式運算的研究拿了個碩士,那分散式運算是做什麼的呢?用現在的時代用語”算力”來解釋的話,就是要處理的資料非常大量,但是單一伺服器的算力不足,所以必須聯合好幾台伺服器的算力來一起處理, 而要能夠做分散式運算的前提就是你要有一套可以操作分散式運算
Thumbnail
NVDIA黃仁勳演講有提到分散式運算,我還真的做了分散式運算的研究拿了個碩士,那分散式運算是做什麼的呢?用現在的時代用語”算力”來解釋的話,就是要處理的資料非常大量,但是單一伺服器的算力不足,所以必須聯合好幾台伺服器的算力來一起處理, 而要能夠做分散式運算的前提就是你要有一套可以操作分散式運算
Thumbnail
運算思維由2006年3月,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M. Wing)教授因提出並倡導「運算思維」而享譽計算機科學界。 運算思維分成四個步驟 拆解 將一個大問題拆解成許多小問題,各個擊破解決,當小問題解決了大問題也就解決了。 模式識別 將複雜的問題分解
Thumbnail
運算思維由2006年3月,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M. Wing)教授因提出並倡導「運算思維」而享譽計算機科學界。 運算思維分成四個步驟 拆解 將一個大問題拆解成許多小問題,各個擊破解決,當小問題解決了大問題也就解決了。 模式識別 將複雜的問題分解
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News