運算思維

更新於 發佈於 閱讀時間約 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
131會員
218內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
一開始的主題的發想,就是從宜蘭三清宮拜拜完,下山吃臭豆腐的故事開始發起。 宜蘭臭豆腐之旅從宜蘭三清宮開始,一路吃臭豆腐,包括玉里臭豆腐、深坑王老成臭豆腐等,口感各異,最終形成臭豆腐總行程表。描寫豆腐的不同風味及口感。
不用厲害才開始,要開始才很厲害 最近常常看到這句話,覺得很棒,想起那時候,28歲才又去重讀大學時的點點滴滴,那時候在竹科產線做夜班,時常都會聽到有同仁在談論我的消息,內容差不多是,畢業都不知道幾歲了,多來加班賺錢比較實在。
一開始的主題的發想,就是從宜蘭三清宮拜拜完,下山吃臭豆腐的故事開始發起。 宜蘭臭豆腐之旅從宜蘭三清宮開始,一路吃臭豆腐,包括玉里臭豆腐、深坑王老成臭豆腐等,口感各異,最終形成臭豆腐總行程表。描寫豆腐的不同風味及口感。
不用厲害才開始,要開始才很厲害 最近常常看到這句話,覺得很棒,想起那時候,28歲才又去重讀大學時的點點滴滴,那時候在竹科產線做夜班,時常都會聽到有同仁在談論我的消息,內容差不多是,畢業都不知道幾歲了,多來加班賺錢比較實在。
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
2024年7月2日, 我正在指導的復旦大學數學系三年級學生說道: 「有的數學也有應用場景,但應用場景本身好像也不能指導方法的創新, 反而是要依靠數學感覺來進行研究。」 我當時給的建議是:「關於這個點,你可以注意,創新有分「問題的創新」與「解法的創新」。」 一般來說,實務
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 微積分的記法  二 前面說過,牛頓關心的不是抽象的數學問題,他要解決的是天體運動的問題。他知道,假如他擁有該天體在任何一刻的瞬速數據,他便能夠從質量
Thumbnail
今天要介紹的《人生算法》也是中國的商業思維書籍,主要是講人生算法中三大要素:時間、空間、機率。幾個相互疊加,靠著思維工具,幫我們在生活中更好地做出決策。
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
邏輯,是幫助我們判斷事理的重要因子。本篇我們將從表述、系統、思維下手來探討如何透過邏輯來幫助我們看清問題,甚至是解決問題。
Thumbnail
電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。
前天看了《數值化之鬼》這本書,這本書由識學創辦人安藤廣大撰寫,深入的探討數值化的議題。 在生活與職場上,我們很常很聽到身旁人講數值化思維的重要性,但只有少數人真正理解數值化的真正含義,其中更只有微小的比例能夠真正實踐。 實際上,培養數值化思維並不需要深厚的統計基礎,數值化強調的是「用數字來思考」
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
2024年7月2日, 我正在指導的復旦大學數學系三年級學生說道: 「有的數學也有應用場景,但應用場景本身好像也不能指導方法的創新, 反而是要依靠數學感覺來進行研究。」 我當時給的建議是:「關於這個點,你可以注意,創新有分「問題的創新」與「解法的創新」。」 一般來說,實務
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 微積分的記法  二 前面說過,牛頓關心的不是抽象的數學問題,他要解決的是天體運動的問題。他知道,假如他擁有該天體在任何一刻的瞬速數據,他便能夠從質量
Thumbnail
今天要介紹的《人生算法》也是中國的商業思維書籍,主要是講人生算法中三大要素:時間、空間、機率。幾個相互疊加,靠著思維工具,幫我們在生活中更好地做出決策。
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
邏輯,是幫助我們判斷事理的重要因子。本篇我們將從表述、系統、思維下手來探討如何透過邏輯來幫助我們看清問題,甚至是解決問題。
Thumbnail
電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。
前天看了《數值化之鬼》這本書,這本書由識學創辦人安藤廣大撰寫,深入的探討數值化的議題。 在生活與職場上,我們很常很聽到身旁人講數值化思維的重要性,但只有少數人真正理解數值化的真正含義,其中更只有微小的比例能夠真正實踐。 實際上,培養數值化思維並不需要深厚的統計基礎,數值化強調的是「用數字來思考」