運算思維

閱讀時間約 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]​

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

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


參考書籍



119會員
201內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
一開始的主題的發想,就是從宜蘭三清宮拜拜完,下山吃臭豆腐的故事開始發起。 宜蘭臭豆腐之旅從宜蘭三清宮開始,一路吃臭豆腐,包括玉里臭豆腐、深坑王老成臭豆腐等,口感各異,最終形成臭豆腐總行程表。描寫豆腐的不同風味及口感。
不用厲害才開始,要開始才很厲害 最近常常看到這句話,覺得很棒,想起那時候,28歲才又去重讀大學時的點點滴滴,那時候在竹科產線做夜班,時常都會聽到有同仁在談論我的消息,內容差不多是,畢業都不知道幾歲了,多來加班賺錢比較實在。
一開始的主題的發想,就是從宜蘭三清宮拜拜完,下山吃臭豆腐的故事開始發起。 宜蘭臭豆腐之旅從宜蘭三清宮開始,一路吃臭豆腐,包括玉里臭豆腐、深坑王老成臭豆腐等,口感各異,最終形成臭豆腐總行程表。描寫豆腐的不同風味及口感。
不用厲害才開始,要開始才很厲害 最近常常看到這句話,覺得很棒,想起那時候,28歲才又去重讀大學時的點點滴滴,那時候在竹科產線做夜班,時常都會聽到有同仁在談論我的消息,內容差不多是,畢業都不知道幾歲了,多來加班賺錢比較實在。
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
(這篇不是教你如何寫程式,也不是教你怎麼使用Chatgpt) 你有沒有想過,一樣是8小時,為什麼同事總可以處理很多事情?而你每天都要加班,結果還總是不盡人意呢?過去你可能會合理化說,是因為自己經驗不足、工作方法有待加強,或是時間管理不佳。依據我自己的觀察,高效與無效跟思維能力有關。
Thumbnail
平時常常在談運算思維,不斷強調運算思維是解決問題的方法,但是設計思考更是發現問題的關鍵。而設計思考的核心,就是站在使用者的立場去換位思考,從使用者的需求出發,來找到最好的解決方案。 那麼,什麼是設計思考呢?簡單來說,它是一種關注使用者體驗的方法。在設計思考的過程中,我們不僅僅要考慮技術和功能,更要關
Thumbnail
這本書於2016年9月發行,距今已經過了6.5年。夯到快不行的ChatGPT鋪天蓋地,像這樣的類神經網路會偷走我們的工作嗎 ?
Thumbnail
常常有朋友或家長問我,要怎麼教孩子運算思維?不,事實上,他們問的都是,怎麼教孩子寫程式?希望透過這篇文章,給有興趣的家長,先想好「為什麼」,再思考「如何做」,最後才是「做什麼」。
Thumbnail
面對大數據以及人工智慧的未來,透過運算思維,可以理解曾經不可能看到的模式和相關性。運算思維可以幫助我們做到這一點,讓我們能夠快速處理數據並建立連結,更快地解決問題,做出更好的決策,這就是為什麼它對於未來企業中如此重要的原因。運算思維不是只有工程師或是科學家該了解,企業中的每個人都應該熟悉它。
運算思維:抽象化(?)、具體化(條列式步驟)問題的能力。 運算思維涵蓋-對應練習 1.拆解-大問題,分割成小問題,思考所有可能性,步驟逐步拆解。 2.模式辨別 3.歸納與抽象化 4.演算法 突然想玩拼圖。
Thumbnail
運算思維是由許多不同的解決問題的技巧構成,核心為創造演算法,其他還包含運算模型、科學方法、捷徑思考、邏輯、模式比對、表示法、抽象化、拆解、評估檢驗。 本文除了介紹運算思維是甚麼,還會說明各個問題解決技巧,希望讀者不只了解各個技巧,更學會以豐富且彼此連結的方式組合使用這些技巧。
Thumbnail
你是知識工作者還是產線工作者?真心建議HR真的要學習運算思維,就算對於數位科技與數據分析沒有興趣,也要掌握運算思維的解構化、抽象化、流程化、模式化核心,這對你的解決員工問題能力以及設計出有用的制度相當有幫助。反覆做是電腦的工作,不是知識工作者的工作。
Thumbnail
轉換為服膺於機率的視角,事前(信念)講究信心水準,(決策)過程中擁抱不確定性,事後(從結果)挖掘出學習機會。
Thumbnail
運算思維是面對問題時的一種積極的態度與方法,其中包含著一些原則概念,本篇列舉幾個最主要的核心概念,嘗試以簡單的例子一起來認識這些名詞所代表的涵義。
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
(這篇不是教你如何寫程式,也不是教你怎麼使用Chatgpt) 你有沒有想過,一樣是8小時,為什麼同事總可以處理很多事情?而你每天都要加班,結果還總是不盡人意呢?過去你可能會合理化說,是因為自己經驗不足、工作方法有待加強,或是時間管理不佳。依據我自己的觀察,高效與無效跟思維能力有關。
Thumbnail
平時常常在談運算思維,不斷強調運算思維是解決問題的方法,但是設計思考更是發現問題的關鍵。而設計思考的核心,就是站在使用者的立場去換位思考,從使用者的需求出發,來找到最好的解決方案。 那麼,什麼是設計思考呢?簡單來說,它是一種關注使用者體驗的方法。在設計思考的過程中,我們不僅僅要考慮技術和功能,更要關
Thumbnail
這本書於2016年9月發行,距今已經過了6.5年。夯到快不行的ChatGPT鋪天蓋地,像這樣的類神經網路會偷走我們的工作嗎 ?
Thumbnail
常常有朋友或家長問我,要怎麼教孩子運算思維?不,事實上,他們問的都是,怎麼教孩子寫程式?希望透過這篇文章,給有興趣的家長,先想好「為什麼」,再思考「如何做」,最後才是「做什麼」。
Thumbnail
面對大數據以及人工智慧的未來,透過運算思維,可以理解曾經不可能看到的模式和相關性。運算思維可以幫助我們做到這一點,讓我們能夠快速處理數據並建立連結,更快地解決問題,做出更好的決策,這就是為什麼它對於未來企業中如此重要的原因。運算思維不是只有工程師或是科學家該了解,企業中的每個人都應該熟悉它。
運算思維:抽象化(?)、具體化(條列式步驟)問題的能力。 運算思維涵蓋-對應練習 1.拆解-大問題,分割成小問題,思考所有可能性,步驟逐步拆解。 2.模式辨別 3.歸納與抽象化 4.演算法 突然想玩拼圖。
Thumbnail
運算思維是由許多不同的解決問題的技巧構成,核心為創造演算法,其他還包含運算模型、科學方法、捷徑思考、邏輯、模式比對、表示法、抽象化、拆解、評估檢驗。 本文除了介紹運算思維是甚麼,還會說明各個問題解決技巧,希望讀者不只了解各個技巧,更學會以豐富且彼此連結的方式組合使用這些技巧。
Thumbnail
你是知識工作者還是產線工作者?真心建議HR真的要學習運算思維,就算對於數位科技與數據分析沒有興趣,也要掌握運算思維的解構化、抽象化、流程化、模式化核心,這對你的解決員工問題能力以及設計出有用的制度相當有幫助。反覆做是電腦的工作,不是知識工作者的工作。
Thumbnail
轉換為服膺於機率的視角,事前(信念)講究信心水準,(決策)過程中擁抱不確定性,事後(從結果)挖掘出學習機會。
Thumbnail
運算思維是面對問題時的一種積極的態度與方法,其中包含著一些原則概念,本篇列舉幾個最主要的核心概念,嘗試以簡單的例子一起來認識這些名詞所代表的涵義。