我們正在進入一個“一切皆計算”的時代俘闯,計算思維就是計算時代的語言盒音。
第1章 分解問題:從炒雞蛋到無人駕駛
分解問題是計算思維這棟房子的“屋頂”侥袜。問題被分解后舱权,各類算法才能上陣發(fā)揮作用募胃。
菜譜:炒雞蛋
抖音算法:給定一個用戶旗唁,在一個給定的時刻,推薦一個最匹配用戶喜好的短視頻痹束,從而優(yōu)化某些產(chǎn)品使用目標(biāo)检疫。
案例:把婚禮拆解為籌備計劃、前期準(zhǔn)備祷嘶、婚禮當(dāng)天和婚禮后屎媳。
第2章 排序算法:巴比倫的泥板
用排序思維來做時間管理
艾維·利時間管理法
(1)寫下你明天要做的6件最重要的事。
(2)用數(shù)字標(biāo)明每件事的重要性次序论巍。
(3)明天早上第一件事是做第一項烛谊,直至完成或達到要求。
(4)然后再開始完成第二項嘉汰、第三項……
(5)每天都要這樣做丹禀,養(yǎng)成習(xí)慣。
第3章 分類算法:全世界所有的東西
第4章 搜索算法:找到牛津大學(xué)
選購汽車:分類思維和排序思維
分析一下選購汽車的需求,先把想買車的需求分類双泪,列出使用需求對汽車選購的影響因素持搜。
價格>安全性>空間>油耗>品牌>外觀
搜索算法也具備前面講的幾個算法的特性:有多種方法找東西(多樣性);需要循環(huán)直到找到為止(重復(fù)性)焙矛;只要東西在葫盼,就一定能找到(完整性)。
啟發(fā):搜索思維
· 搜素范圍是否正確村斟。
· 擴大搜索空間贫导。
· 調(diào)整搜索條件。
案例:找工作
(1)什么是我最感興趣的蟆盹?有了興趣才會有持續(xù)的動力一直做下去脱盲,可以試著列出自己感興趣的事情,看看在沒有外界條件限制的情況下喜歡做什么日缨。
(2)什么是我最擅長做的钱反?每個人的天賦和經(jīng)歷不一樣,試著列出自己做過的各種事情匣距,看看哪些事情自己得心應(yīng)手面哥,比較擅長做。
(3)工作中哪些因素對我最重要毅待?比如薪金尚卫、工作環(huán)境、公司文化尸红、工作內(nèi)容吱涉、老板、同事外里、成長空間等怎爵。
第5章 遞歸算法:洋蔥、漢諾塔和昨天的你
最典型的遞歸:遞歸就像是剝洋蔥一樣一層層地剝開一個問題盅蝗,每次得到一個同樣形式的但是更小的洋蔥
◆ 遞歸算法把一個大的問題拆解成同構(gòu)的小問題鳖链。
◆ 遞歸算法需要有終止條件。
◆ 遞歸算法的好處除了簡潔優(yōu)美墩莫,還有不要求預(yù)先固定問題的大小層級和結(jié)構(gòu)魔慷,非常靈活伺通。
第6章 數(shù)據(jù)結(jié)構(gòu):皇室家譜和繼承
1绎狭、在計算機看來治专,每只襪子都是“數(shù)據(jù)”。這個能夠放數(shù)據(jù)的空間裂问,就叫作數(shù)據(jù)結(jié)構(gòu)侧啼。數(shù)據(jù)一個一個挨著放一排玖姑,可以隨時放進去和取出來的數(shù)據(jù)結(jié)構(gòu),叫數(shù)組(array)慨菱。
2焰络、你把新的東西往上面放,然后想用的時候就把最上面的東西拿出來符喝,在計算機里這叫作堆棧
(stack)闪彼。堆棧是一種數(shù)據(jù)結(jié)構(gòu),在堆棧中协饲,后被放進去的數(shù)據(jù)畏腕,會先被取出來——后進先出的數(shù)據(jù)結(jié)構(gòu)。
3茉稠、關(guān)鍵詞用來指出內(nèi)容描馅,指引到內(nèi)容,但它不是內(nèi)容本身而线。
鍵值對铭污,也就是關(guān)鍵詞——內(nèi)容對,這個數(shù)據(jù)結(jié)構(gòu)的優(yōu)點是關(guān)鍵詞一般是不變的膀篮,但是內(nèi)容經(jīng)赤谀可以變化,可以增減誓竿。
4磅网、朋友圈就像是一串帖子組成的鏈表,順序不變筷屡,可以增加或者減少涧偷。
5、一個叫“樹”的數(shù)據(jù)結(jié)構(gòu):
· 全部的結(jié)點都是連接的毙死。
· 相連的兩個結(jié)點一個是父結(jié)點燎潮,一個是子結(jié)點。
· 這個結(jié)構(gòu)里不能有“環(huán)”规哲,也就是說跟啤,結(jié)點之間符合層級關(guān)系诽表。
在任何一個“樹”里唉锌,都只有一個結(jié)點沒有父結(jié)點,這個結(jié)點叫根結(jié)點(root)竿奏,也就是“樹根”的意思袄简。
第7章 模式識別:會掃地的機器人
1、計算思維是描述問題和解決問題的思維泛啸。
2绿语、計算思維是關(guān)于解決問題的思維。計算思維的關(guān)鍵不是解決一個問題,而是解決一類問題吕粹,也就是符合模式的所有問題种柑。
3、逐步邏輯:計算機需要細致的匹耕、嚴(yán)謹(jǐn)?shù)木矍搿⒄_的、逐步的指示稳其。
電子老鼠走迷宮
機器人打掃房間
第8章 抽象:10根手指限制了我們的想象
抽象:就是在與計算機對話時驶赏,刪除物理空間或時間細節(jié),以集中解決關(guān)鍵的問題既鞠。
抽象的關(guān)鍵是我們只需要抓住用得上的信息煤傍,用一個有規(guī)律的方法表示,而省略其他信息嘱蛋。
一個更加真實的訂單的狀態(tài)圖
第9章 優(yōu)化:如何找到最佳伴侶
有人說蚯姆,生活就是一個優(yōu)化問題。優(yōu)化問題有優(yōu)化空間洒敏、優(yōu)化效率蒋失、優(yōu)化速度、優(yōu)化資源等桐玻。你會發(fā)現(xiàn)篙挽,我們每日生活中的每項選擇,都是在執(zhí)行著某種優(yōu)化算法镊靴。
人生的每個選擇铣卡,都要面臨“不是最佳”的風(fēng)險和“錯失最佳”的風(fēng)險。
貪婪算法:先挑最重要的(回報最大的)
優(yōu)化的精髓是要在有限的時間內(nèi)偏竟,用有限的資源找到針對一個問題的可以接受的解決方案煮落。優(yōu)化往往是追求時間和空間的平衡。
排程問題踊谋,就是先做什么蝉仇,后做什么,什么時候做什么事殖蚕。你解決好這個問題轿衔,最后就能完成更多或更好的目標(biāo)∧酪撸——約束自己害驹,從優(yōu)先級任務(wù)開始行動。
活在當(dāng)下蛤育,是說眼前能抓住的事情優(yōu)先級最高宛官;面對挑戰(zhàn)葫松,是說最困難的事,也是回報最大的事底洗,應(yīng)該去做腋么;不做會后悔的事,比如花時間和孩子在一起亥揖,我們要提高這些事的優(yōu)先級党晋;耗時而沒太多收獲的事,我們盡量避免徐块。
“最近最少使用算法”(least recent used)未玻,簡稱LRU算法。這個算法是說胡控,把所有的東西按使用的時間來排序扳剿,而不是按購買的時間排序。如果要扔?xùn)|西昼激,就扔那個最長時間沒用過的庇绽。
爬山算法(hill climbingalgorithm):任何時候都比較登山者周圍東、南橙困、西瞧掺、北4個方向,并前往與其相鄰的最高的那個方向凡傅。
生活就像一盒巧克力辟狈,你永遠不知道下一顆會拿到什么樣的驚喜。
第10章 AI和未來計算
圍棋定式其實非常復(fù)雜夏跷,有10170種可能的配置哼转,比已知宇宙中的原子數(shù)還多。
AlphaGo下圍棋
AI寫紅樓夢
機器人之間聊天
AI判斷癌癥
嗅覺AI