第十五次:演算法基本概念2-問題解析與流程控制
解決問題(Problem Solutions)
在日常生活中我們常常要面對和解決不同的問題。解決問題的能力成為一項很重要的能力。那要如何培養解決問題的能力呢?首先會先學會思考問題,想清楚問題後再著手解決問題。
(1)解決問題-產生成就感
(2)解決問題方法-思考及記憶
範例
範例
Q:有了網路.電腦.手機可以查到很多的知識.為何還要記憶在大腦呢?
(3)學校教育問題
(4)提高思考(思維)效率
範例
圖片引用:https://www.youtube.com/watch?v=0y9JagMsuao&feature=emb_logo
https://www.youtube.com/watch?v=QHgLpADHz5w
範例-青蛙過河遊戲
解說:
運算思維(Computational Thinking;CT)
問題分解:將大問題拆解為小問題
將題目分解為左邊的青蛙和右邊的青蛙
資料來源:https://www.taodabai.com/how/652402621.html
模式識別:看問題有無規律性或存在相同的模式
每一次只能跳過一隻青蛙
抽象化:將真實問題簡化為數學問題
將青蛙標好號碼,左邊的用1,2,3表示,右邊的用4,5,6表示
演算法:對特定問題解決的步驟或流程
(1)先點擊4號青蛙,讓其往左跳。
(2)然後點擊1號青蛙,讓其跨過4號往右跳。
(3)然後點擊2號青蛙讓其往右跳。
(4)然後點擊4號青蛙讓其往左跳。
(5)然後點擊5號青蛙讓其往左跳。
(6)然後點擊6號青蛙讓其往左跳。
(7)然後點擊1號青蛙讓其往右跳。
(8)然後點擊2號青蛙讓其往右跳。
(9)然後點擊3號青蛙讓其往右跳。
(10)然後點擊4號青蛙讓其往左跳。
(11)然後點擊5號青蛙讓其往左跳。
(12)然後點擊6號青蛙讓其往左跳。
(13)然後點擊2號青蛙讓其往右跳。
(14)然後點擊3號青蛙讓其往右跳。
(15)然後點擊6號青蛙讓其往左跳。這時候就完成了題目要求的過河目的,就過關了。
程式設計:將演算法以程式語言實作出來解決問題
應用資訊科學解決問題-培養運算思維能力
(1)資訊科學演算法
A.廣義
根據韋伯字典的定義,凡是為解決某一特定問題的一步一步程序(a step-by-step procedure for solving a problem)均可以稱為演算法。
B.狹義
演算法是一個由一些步驟所構成的集合,依循這些步驟得以解決數學問題或完成計算機過程。從計算的角度給定演算法的嚴謹定義如下:
由有限(finite) 步驟(step) 所構成的集合,依照給定輸入(input) 依序執行每個明確(definite) 且有效(effective) 的步驟,以便能夠解決特定的問題;而步驟的執行必定會終止(terminate),並產生輸出(output) |
(2)資訊科學演算法的特性
正確的演算法,應該能夠將輸入的資料,經過電腦有限次的運算後,得到所要的輸出資料, 且要完全符合以下五個特性
實作1-井字( Tic-Tac-Toe)遊戲
參考資料
Q:思考一下:在和電腦玩井字遊戲中,你是如何取勝(如何贏電腦)?
實作2-資訊科學經典演算法-河內塔(Tower of Hanoi)
遊戲活動說明:
試完成河內塔遊戲。在進行解決問題中, 留意自己的步驟(最小步數)及所採取之策略