计算思维

我们正在进入一个“一切皆计算”的时代,计算思维就是计算时代的语言。

第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

你可能感兴趣的:(计算思维)