Code Monkey home page Code Monkey logo

exercises-of-the-soul-of-calculation's Introduction

exercises-of-the-soul-of-calculation

计算之魂思考题探讨

项目背景

《计算之魂》是《数学之美》姊妹篇,是吴军博士时隔近10年在科技领域的重磅新作。在本书中,作者将人文历史与计算机科学相结合,通过一些具体的例题,分10个主题系统地讲解了计算机科学的精髓。全书的例题+思考题超100道,这些例题是作者面试求职者时用到的考题,或是头部计算机公司和金融企业的面试题。

我们将共读《计算之魂》并围绕这些思考题进行交流探讨,项目持续约1年,过程中会邀请《计算之魂》策划者等大咖,甚至吴军老师来直播分享,一起培养计算思维的方式,了解 IT 产业的技术特点、掌握信息时代特殊的做事方法,通过思维的碰撞与具体的例子,从“术”的层面获得“道”的层面的提升。

任务安排

首次组队学习活动,围绕第一章展开共读

Task 内容 时间
Task01 阅读1.1,1.2并输出笔记,完成思考题1.1,1.2 8-15 —— 8-20
Task02 阅读1.3并输出笔记,完成思考题1.3 8-20 —— 8-27
Task03 阅读1.4.1,1.4.2并输出笔记,完成思考题1.4 8-27 —— 9-3
Task04 阅读1.4.3与附录并输出笔记,完成思考题1.4 9-3 —— 9-10

拓展资料

书籍配套视频:https://space.bilibili.com/431850986/channel/collectiondetail?sid=619198
书籍第一章在线阅读(感谢吴军老师授权开源):https://linklearner.com/datawhale-homepage/#/learn/detail/107
第一章共读活动读者分享讲义(by CELFS):https://rf8j0i8s4f.feishu.cn/file/boxcn1foj2Y0pHLpD1NCbEJtR7b

思考题安排

引子 计算的本质——从机械到电子

思考题0.1 如何通过指令控制,将一副扑克牌编程一种简单的计算机? //01-02
思考题0.2 利用“与非”(AND-NOT)运算实现布尔代数中的与、或、非三种运算。 /02
思考题0.3 如果计算的本质是机械运动,那么信息处理和能量就存在一个对应关系。比如, 我们可以计算一下1946年的ENIAC消耗1度电( 1千瓦时)能完成多少次计算,今天的华为P30手机消耗1度电能完成多少次计算。 /018
思考题0.4 在数字计算机出现之前曾经出现过模拟计算机,如何证明后者等价于前者的某个子集? /022

第1章 毫厘千里之——大O概念

思考题1.1 世界上还有什么产品类似于计算机,是软硬件分离的? /028
思考题1.2 如果一个程序只运行一次,在编写它的时候,你是采用最直观但是效率较低的算法,还是依然寻找复杂度最优的算法? /034
思考题1.3
Q1.将上述例题1.3的线性复杂度算法写成伪代码。
Q2.在一个数组中寻找-一个区间,使得区间内的数字之和等于某个事先给定的数字。( AB、FB、LK等公司的面试题,后面会解答。
Q3.在一个二维矩阵中,寻找一个矩形的区域,使其中的数字之和达到最大
值。(例题1.3的变种,硅谷公司真实的面试题。) /045
思考题1.4
Q1.赛跑问题( GS )。 /056
Q2.区间排序。 /057

第2章 逆向思考——从递推到递归

思考题2.1 有n级台阶,每次能够上k级,有多少种不同的攀登方法? 提示:走到第n级,上-次可能处在第n-1、n -2...n-k级。 /072
思考题2.2
Q1.修改中序遍历算法22,将它变成先序遍历或者后序遍历的算法。 /079
Q2. (二叉排序树)有这样一串数字5, 2,8,0, 10, 7, 18, 20, 30, 12, 15, 1,我们将它们建成一一棵二叉排序树。二叉排序树满足下面的条件。 /079-080
思考题2.3
Q1.写出简单计算器的伪代码( AB、FB等) /086
Q2.回旋打印二叉树的节点 (作者使用过的面试题)。 /086
思考题2.4
Q1.二叉树的最大深度(也被称为树的高度)是从根节点到最远的叶子节点的 节点数。请写一个判定任意二叉树最大深度的算法。 /092
Q2.如何在一个二叉排序树中找到第二大的元素? /092

第3章 万物皆编码——抽象与表示

思考题3.1 给定一个集合,如何输出它的幂集? /104
思考题3.2 /110
思考题3.3 设计一种编码方法,用8位二进制数(一个字节)表示浮点数。/114
思考题3.4 在网页搜索中,要记录每一个关键词出现的网页,以及关键词在网页中的位置,如何设计对这个信息的编码,让每个关键词的索引总长度最短? /18
思考题3.5 Q1、Q2. /112
思考题3.6 如果我们采用本节存储稀疏矩阵的方法存储了两个矩阵,如何实现矩阵的加法运算 /130
练习题 /131-132

第4章 智能的本质——分类与组合

思考题4.1 有两类模式A和B,如果A被识别为了B,损失是10;如果B被识别为了A,损失是1。这两个模式之间的边界应该如何划定? /140
思考题4.2
Q1.如何制作一个色情网站或者垃圾邮件发送者的黑名单?
Q2.如何判断一个网页是否是色情网页? /147
思考题4.3 在拼音输入法中,如何根据拼音,或者部分拼音,快速找到相应的汉字,以及包含该汉字的词? /153
思考题4.4 北京的街道通常是横平竖直的。假如你站在某个十字路口,需要往东、往北各走N个街区,有多少种不同的走法? /161

第5章 工具与算法——图论及应用

思考题5.1 除了上面举的例子,你能否举出五个其他的现实世界中的例子,可以用抽象的图来描述? /172
思考题5.2 Q1、Q2 /176
思考题5.3 Q1 /188
思考题5.4 /198
思考题5.5 Q1、Q2 /203

第6章 化繁为简——分治**及应用

思考题6.1 /218
思考题6.2 /231
思考题6.3 /238
思考题6.4 如何用多台服务器实现大矩阵求逆? /246

第7章 权衡时空——理解存储

思考题7.1 /265
思考题7.2层次 /274
思考题7.3如果我们想要提供一个特殊的搜索服务一找出 NBA历史上三分球命中率在 0.23到0.32之间的人,如何建立索引? 2/78

第8章 并行与串行——流水线和分布式计算

思考题8.1 /283-284
思考题8.2 /286
思考题8.3 Q1、Q2 /295

第9章 状态与流程——等价性与因果关系

思考题9.1 /304-305
思考题9.2 /311
思考题9.3 /318

第10章 确定与随机——概率算法及应用

思考题10.1
Q1优惠卷问题 /324-325
Q2 优惠卷扩展问题 /325
Q3 雨滴问题 /325
思考题10.2 Q1、Q2 /329
思考题10.3 /336-337

第11章 理论与实战——典型难题精解

思考题11.1 Q、Q2 /351
思考题11.2 倒装句问题 /382-383

exercises-of-the-soul-of-calculation's People

Contributors

siyuxin avatar celfs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.