读改变未来的九大算法笔记09_指尖的精灵

1. 人类很有可能“在未来像过去所做过的一样行事”

2. 计算机科学领域并不仅仅是编程

2.1. 编程知识是计算机科学家所必需的,但它却只是前提

2.2. 要应用并试验算法,计算机科学研究者就需要将算法转换成计算机程序,而每个程序都由Java、C++或Python等编程语言编写

2.3. 公众对计算机科学认知的不平衡

2.3.1. 有一种广泛的观点认为,计算机科学基本上就是编程(如“软件”)和设备设计(如“硬件”)

2.3.2. 最美妙的计算机科学思想中有许多是十分抽象的,并不属于以上任意一类

3. 所有伟大思想都能在不需要任何计算机编程或其他计算机科学知识的情况下得到解释

3.1. 一些核心思想中运用了简单但聪明的把戏的算法

3.2. 这些把戏无须任何技术性知识就能得到解释

4. 思想和算法之间有什么区别

4.1. 算法是一张精确的处方

4.1.1. 按顺序详细列出了解决一个问题所需要的具体步骤

4.2. 算法的关键特点之一

4.2.1. 每步都必须绝对精确,没有任何人类意图或推测掺杂其中

4.3. 有关算法究竟是什么的深层问题都归结于一个前提

4.3.1. 邱奇–图灵论题(Church-Turing thesis)

4.4. 计算机科学的伟大思想通常是来形容如何解决一个问题的

4.4.1. 使用一种算法

5. 该书伟大的算法标准

5.1. 最重要的标准1

5.1.1. 伟大的算法要被普通计算机用户每天用到

5.1.2. 排除了主要由计算机专业人士使用的算法

5.1.2.1. 编译器

5.1.2.2. 程序验证技术

5.2. 标准2

5.2.1. 伟大的算法应该能处理具体的现实问题

5.2.2. 排除了许多作为计算机科学本科课程核心内容的伟大算法

5.2.2.1. 排序算法(快速排序等)

5.2.2.2. 图形算法(迪杰斯特拉最短路径算法等)

5.2.2.3. 数据结构(哈希表等)

5.3. 标准3

5.3.1. 算法主要和计算机科学理论相关

5.3.2. 排除了主要和计算机硬件有关的技术

5.3.2.1. CPU(中央处理器)

5.3.2.2. 监视器

5.3.2.3. 网络

6. 新技术的出现并不一定会导致新算法产生

6.1. 尽管技术革新不可置疑地继续在我们周围加速出现,但它们并不能保证新的伟大算法的出现

6.2. 相反方向上有一种强大的历史力量在作用,它在暗示算法创新的步伐将在未来减慢

6.3. 新技术提供的新活动时常为新算法提供空间,而该领域的逐渐成熟会减少这些机会

7. 未来可能的伟大算法

7.1. 人工智能在日常生活中的逐渐使用,如果有任何令人震惊的崭新算法瑰宝在这一领域出现,就会让人非常着迷

7.2. “零知识协议”

7.2.1. Zero Knowledge Protocols

7.2.2. 它们能让两个或更多实体将信息组织起来,而不用显示任何单“块”信息

7.2.3. 潜在用途之一是在线拍卖

7.3. “分布式哈希表”

7.3.1. Distributed Hash Table

7.3.2. 一种在点对点系统中(一个没有中央服务器引导信息流的系统)存储信息的精巧方法

7.4. “拜占庭容错”

7.4.1. Byzantine Fault Tolerance

7.4.2. 允许特定计算机系统耐受任何种类的错误(只要同时不出现太多错误)

posted @ 2023-06-11 06:40  躺柒  阅读(34)  评论(0编辑  收藏  举报