演算法 === ###### tags: `演算法` `運算思維`  ## 什麼是演算法? - 我們日常生活中會面臨許多問題,試圖解決問題的方法,都可以視為一種廣義的演算法。 ## 演算法的功能 - 明確地告訴電腦,碰到什麼狀況時,應該如何反應或執行什麼步驟。 :books: 演算法的5大特性 --- - 輸入:可有多個、或是沒有輸入資料 - 輸出:必須至少有一個輸出結果 - 明確性:每個指令必須明確,不可模稜兩可 - 有限性:演算法執行,必需在有限步驟內結束 - 有效性(可行性):每個命令都必須是可執行的步驟,以確定能解決問題 :::info **狹義演算法:** 由**有限**(finite) 步驟(step) 所構成的集合,依照給定**輸入**(input) 依序執行每個**明確(definite)** 且**有效**(effective) 的步驟,以便能夠解決特定的問題;而步驟的執行**必定會終止**(terminate),並產生**輸出**(output) ::: :closed_book: Tasks -- ### 想想看: - [ ] 如何表達,能使解決的步驟更明確? - [ ] 同一個問題,可能有不同的演算法嗎? - [ ] 有好的演算法和不好的演算法嗎?你的判斷標準是什麼? :books: 演算法的表達 --- **此節圖片來源:康軒109資訊課本**  - 文字  - 流程圖:利用各種圖形與箭頭等符號,來表示執行一件事情的步驟與順序。   ## 三種表示法的比較:   <iframe width="560" height="315" src="https://www.youtube.com/embed/TfAT0xP2TxM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> ## 流程圖繪製重點: - 使用標準符號,以便閱讀和分析 - 文字簡潔、明確可行 - 繪製方向由上而下,由左至右 - 線條應避免交叉或過長 - 流程圖圖示說明    :closed_book: Tasks -- ### 寫scratch登場程式 & 畫流程圖: - 至[Scratch網站](https://scratch.mit.edu/projects/editor/?tutorial=getStarted) > 創造,寫一個登場後自我介紹的小程式 - **至[Draw.io](https://draw.io) 繪製小程式的流程圖** - 下載成PNG圖檔後繳交 <!-- Other important details discussed during the meeting can be entered here. --> ## 動腦時間: - 猜數字(1~100)的流程圖要怎麼畫? - 數獨的破解有什麼秘訣嗎? [](https://sudoku.com/tw)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up