我们正在进入一个“一切皆计算”的时代,计算思维就是计算时代的语言。
第1章 分解问题:从炒鸡蛋到无人驾驶
分解问题是计算思维这栋房子的“屋顶”。问题被分解后,各类算法才能上阵发挥作用。
菜谱:炒鸡蛋
抖音算法:给定一个用户,在一个给定的时刻,推荐一个最匹配用户喜好的短视频,从而优化某些产品使用目标。
案例:把婚礼拆解为筹备计划、前期准备、婚礼当天和婚礼后。
第2章 排序算法:巴比伦的泥板
用排序思维来做时间管理
艾维·利时间管理法
(1)写下你明天要做的6件最重要的事。
(2)用数字标明每件事的重要性次序。
(3)明天早上第一件事是做第一项,直至完成或达到要求。
(4)然后再开始完成第二项、第三项……
(5)每天都要这样做,养成习惯。
第3章 分类算法:全世界所有的东西
第4章 搜索算法:找到牛津大学
选购汽车:分类思维和排序思维
分析一下选购汽车的需求,先把想买车的需求分类,列出使用需求对汽车选购的影响因素。
价格>安全性>空间>油耗>品牌>外观
搜索算法也具备前面讲的几个算法的特性:有多种方法找东西(多样性);需要循环直到找到为止(重复性);只要东西在,就一定能找到(完整性)。
启发:搜索思维
· 搜素范围是否正确。
· 扩大搜索空间。
· 调整搜索条件。
案例:找工作
(1)什么是我最感兴趣的?有了兴趣才会有持续的动力一直做下去,可以试着列出自己感兴趣的事情,看看在没有外界条件限制的情况下喜欢做什么。
(2)什么是我最擅长做的?每个人的天赋和经历不一样,试着列出自己做过的各种事情,看看哪些事情自己得心应手,比较擅长做。
(3)工作中哪些因素对我最重要?比如薪金、工作环境、公司文化、工作内容、老板、同事、成长空间等。
第5章 递归算法:洋葱、汉诺塔和昨天的你
最典型的递归:递归就像是剥洋葱一样一层层地剥开一个问题,每次得到一个同样形式的但是更小的洋葱
◆ 递归算法把一个大的问题拆解成同构的小问题。
◆ 递归算法需要有终止条件。
◆ 递归算法的好处除了简洁优美,还有不要求预先固定问题的大小层级和结构,非常灵活。
第6章 数据结构:皇室家谱和继承
1、在计算机看来,每只袜子都是“数据”。这个能够放数据的空间,就叫作数据结构。数据一个一个挨着放一排,可以随时放进去和取出来的数据结构,叫数组(array)。
2、你把新的东西往上面放,然后想用的时候就把最上面的东西拿出来,在计算机里这叫作堆栈
(stack)。堆栈是一种数据结构,在堆栈中,后被放进去的数据,会先被取出来——后进先出的数据结构。
3、关键词用来指出内容,指引到内容,但它不是内容本身。
键值对,也就是关键词——内容对,这个数据结构的优点是关键词一般是不变的,但是内容经常可以变化,可以增减。
4、朋友圈就像是一串帖子组成的链表,顺序不变,可以增加或者减少。
5、一个叫“树”的数据结构:
· 全部的结点都是连接的。
· 相连的两个结点一个是父结点,一个是子结点。
· 这个结构里不能有“环”,也就是说,结点之间符合层级关系。
在任何一个“树”里,都只有一个结点没有父结点,这个结点叫根结点(root),也就是“树根”的意思。
第7章 模式识别:会扫地的机器人
1、计算思维是描述问题和解决问题的思维。
2、计算思维是关于解决问题的思维。计算思维的关键不是解决一个问题,而是解决一类问题,也就是符合模式的所有问题。
3、逐步逻辑:计算机需要细致的、严谨的、正确的、逐步的指示。
电子老鼠走迷宫
机器人打扫房间
第8章 抽象:10根手指限制了我们的想象
抽象:就是在与计算机对话时,删除物理空间或时间细节,以集中解决关键的问题。
抽象的关键是我们只需要抓住用得上的信息,用一个有规律的方法表示,而省略其他信息。
一个更加真实的订单的状态图
第9章 优化:如何找到最佳伴侣
有人说,生活就是一个优化问题。优化问题有优化空间、优化效率、优化速度、优化资源等。你会发现,我们每日生活中的每项选择,都是在执行着某种优化算法。
人生的每个选择,都要面临“不是最佳”的风险和“错失最佳”的风险。
贪婪算法:先挑最重要的(回报最大的)
优化的精髓是要在有限的时间内,用有限的资源找到针对一个问题的可以接受的解决方案。优化往往是追求时间和空间的平衡。
排程问题,就是先做什么,后做什么,什么时候做什么事。你解决好这个问题,最后就能完成更多或更好的目标。——约束自己,从优先级任务开始行动。
活在当下,是说眼前能抓住的事情优先级最高;面对挑战,是说最困难的事,也是回报最大的事,应该去做;不做会后悔的事,比如花时间和孩子在一起,我们要提高这些事的优先级;耗时而没太多收获的事,我们尽量避免。
“最近最少使用算法”(least recent used),简称LRU算法。这个算法是说,把所有的东西按使用的时间来排序,而不是按购买的时间排序。如果要扔东西,就扔那个最长时间没用过的。
爬山算法(hill climbingalgorithm):任何时候都比较登山者周围东、南、西、北4个方向,并前往与其相邻的最高的那个方向。
生活就像一盒巧克力,你永远不知道下一颗会拿到什么样的惊喜。
第10章 AI和未来计算
围棋定式其实非常复杂,有10170种可能的配置,比已知宇宙中的原子数还多。
AlphaGo下围棋
AI写红楼梦
机器人之间聊天
AI判断癌症
嗅觉AI