@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
很多同学在学习一个知识的时候,总是喜欢
|
很多同学在学习一个知识的时候,总是喜欢
|
||||||
|
|
||||||
"我们要学 C 语言,我买一本大黑书看看!"
|
"我们要学 C 语言,我买一本大黑书看看!"
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -16,25 +16,25 @@
|
|||||||
|
|
||||||
## 查找资料
|
## 查找资料
|
||||||
|
|
||||||
你应该使用下表中推荐的网站:
|
你应该使用下表中推荐的网站:
|
||||||
|
|
||||||
一些说明:
|
一些说明:
|
||||||
|
|
||||||
- 一般来说, 百度对英文关键词的处理能力比不上 Google 。
|
- 一般来说,百度对英文关键词的处理能力比不上 Google。
|
||||||
- 通常来说, 英文维基百科比中文维基百科和百度百科包含更丰富的内容。
|
- 通常来说,英文维基百科比中文维基百科和百度百科包含更丰富的内容。
|
||||||
- 一些中文论坛内大家互相抄,很有可能你阅读了很久都没有找到正确的答案,并且英文社区内的内容远远比中文的要好。
|
- 一些中文论坛内大家互相抄,很有可能你阅读了很久都没有找到正确的答案,并且英文社区内的内容远远比中文的要好。
|
||||||
|
|
||||||
## 英文阅读
|
## 英文阅读
|
||||||
|
|
||||||
随着科学技术的发展, 在国际学术交流中使用英语已经成为常态: 顶尖的论文无一不使用英文来书写, 在国际上公认的计算机领域经典书籍也是使用英文编著。
|
随着科学技术的发展,在国际学术交流中使用英语已经成为常态:顶尖的论文无一不使用英文来书写,在国际上公认的计算机领域经典书籍也是使用英文编著。
|
||||||
|
|
||||||
顶尖的论文没有中文翻译版; 如果需要获取信息, 也应该主动去阅读英文材料, 而不是等翻译版出版. "我是中国人, 我只看中文"这类观点已经不符合时代发展的潮流, 要站在时代的最前沿, 阅读英文材料的能力是不可或缺的。
|
顶尖的论文没有中文翻译版; 如果需要获取信息,也应该主动去阅读英文材料,而不是等翻译版出版。"我是中国人,我只看中文"这类观点已经不符合时代发展的潮流,要站在时代的最前沿,阅读英文材料的能力是不可或缺的。
|
||||||
|
|
||||||
阅读英文材料, 无非就是"不会的单词查字典, 不懂的句子反复读"。
|
阅读英文材料,无非就是"不会的单词查字典,不懂的句子反复读"。
|
||||||
|
|
||||||
如今网上有各种词霸可解燃眉之急, 但英文阅读能力的提高贵在坚持。"刚开始觉得阅读英文效率低", 是所有中国人都无法避免的经历。
|
如今网上有各种词霸可解燃眉之急,但英文阅读能力的提高贵在坚持。"刚开始觉得阅读英文效率低", 是所有中国人都无法避免的经历。
|
||||||
|
|
||||||
如果你发现身边的大神可以很轻松地阅读英文材料, 那是因为他们早就克服了这些困难. 引用陈道蓄老师的话: 坚持一年, 你就会发现有不同; 坚持两年, 你就会发现大有不同。
|
如果你发现身边的大神可以很轻松地阅读英文材料,那是因为他们早就克服了这些困难。引用陈道蓄老师的话:坚持一年,你就会发现有不同; 坚持两年,你就会发现大有不同。
|
||||||
|
|
||||||
当然也有一些巧妙地方法帮助大家进行阅读,比如知云文献翻译,不要依赖这类软件!
|
当然也有一些巧妙地方法帮助大家进行阅读,比如知云文献翻译,不要依赖这类软件!
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ Typora
|
|||||||
|
|
||||||
看看下面教程
|
看看下面教程
|
||||||
|
|
||||||
https://www.markdown.xyz
|
<https://www.markdown.xyz>
|
||||||
|
|
||||||
以及这个
|
以及这个
|
||||||
|
|
||||||
https://castel.dev/post/lecture-notes-1
|
<https://castel.dev/post/lecture-notes-1>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
# 2.高效学习
|
# 2.高效学习
|
||||||
|
|
||||||
author:zzm 邮箱 1264517821@qq.com
|
author:zzm
|
||||||
|
|
||||||
|
> 邮箱 <1264517821@qq.com>
|
||||||
|
|
||||||
本章节更多的是纠正同学们开始实验前的一些误区以及提出一些建议。
|
本章节更多的是纠正同学们开始实验前的一些误区以及提出一些建议。
|
||||||
|
|
||||||
@@ -11,7 +13,7 @@ author:zzm 邮箱 1264517821@qq.com
|
|||||||
|
|
||||||
<div style="font-size: 2rem;line-height: 2;">RTFM</div>
|
<div style="font-size: 2rem;line-height: 2;">RTFM</div>
|
||||||
|
|
||||||
Read the f**(friendly) manual
|
Read the f**(friendly) manual
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,22 @@
|
|||||||
|
|
||||||
## 学习目标
|
## 学习目标
|
||||||
|
|
||||||
在这一部分我们要学习的内容主要是函数(Functions)和控制(Control)
|
在这一部分我们要学习的内容主要是函数(Functions)
|
||||||
|
|
||||||
### 一个简单的例子
|
### 一个简单的例子
|
||||||
|
|
||||||
|
::: warning A Midsummer-Night's Dream:
|
||||||
|
And, as imagination bodies forth
|
||||||
|
|
||||||
|
The forms of things to unknown, and the poet's pen
|
||||||
|
|
||||||
|
Turns them to shapes, and gives to airy nothing
|
||||||
|
|
||||||
|
A local habitation and a name.
|
||||||
|
|
||||||
|
—William Shakespeare
|
||||||
|
:::
|
||||||
|
|
||||||
为了给 Python 一个适当的介绍,我们将从一个使用几种语言特征的例子开始。
|
为了给 Python 一个适当的介绍,我们将从一个使用几种语言特征的例子开始。
|
||||||
|
|
||||||
Python 内置了对广泛的常见编程的支持,如操作文本、显示图形和通过互联网进行通信。
|
Python 内置了对广泛的常见编程的支持,如操作文本、显示图形和通过互联网进行通信。
|
||||||
@@ -101,7 +113,7 @@ words = set(shakespeare.read().decode().split())
|
|||||||
|
|
||||||
解释器的设计和实现也是我们之后的主要议题。
|
解释器的设计和实现也是我们之后的主要议题。
|
||||||
|
|
||||||
### 编程原本
|
### 编程要素
|
||||||
|
|
||||||
编程语言不仅仅是指示计算机执行任务的一种手段,同时也是一个框架,我们在这个框架内组织我们关于计算过程的想法。程序的作用是在编程社区的成员之间交流这些想法,所以,编写的程序必须让人们容易阅读,而且只是顺便让机器执行。
|
编程语言不仅仅是指示计算机执行任务的一种手段,同时也是一个框架,我们在这个框架内组织我们关于计算过程的想法。程序的作用是在编程社区的成员之间交流这些想法,所以,编写的程序必须让人们容易阅读,而且只是顺便让机器执行。
|
||||||
|
|
||||||
@@ -133,7 +145,7 @@ words = set(shakespeare.read().decode().split())
|
|||||||
0.9921875
|
0.9921875
|
||||||
```
|
```
|
||||||
|
|
||||||
这些数学表达式使用*中缀*符号,其中*运算符*(例如,+,-,*,或/)出现在*操作数*(数字)之间。Python 包括许多形成复合表达式的方法。我们不会试图立即列举它们,而是会随着我们的学习引入新的表达形式,以及它们所支持的语言特性。
|
这些数学表达式使用*中缀*符号,其中*运算符*(例如,+,-,\*,或/)出现在*操作数*(数字)之间。Python 包括许多形成复合表达式的方法。我们不会试图立即列举它们,而是会随着我们的学习引入新的表达形式,以及它们所支持的语言特性。
|
||||||
|
|
||||||
最重要的一种复合表达式是*调用表达式*,它将一个函数应用于一些参数。回顾一下代数,函数的数学概念是一个从一些自变量到因变量的映射。例如,一个求最大值的函数将其的多个输入映射到当中最大值的一个单一的输出。Python 表达函数应用的方式与传统数学中相同。
|
最重要的一种复合表达式是*调用表达式*,它将一个函数应用于一些参数。回顾一下代数,函数的数学概念是一个从一些自变量到因变量的映射。例如,一个求最大值的函数将其的多个输入映射到当中最大值的一个单一的输出。Python 表达函数应用的方式与传统数学中相同。
|
||||||
|
|
||||||
@@ -415,6 +427,37 @@ None
|
|||||||
|
|
||||||
出于这些问题的考虑,我们将在下一章节中着重讨论创建和使用纯函数。`print`函数的使用只是为了让我们看到计算的中间结果。
|
出于这些问题的考虑,我们将在下一章节中着重讨论创建和使用纯函数。`print`函数的使用只是为了让我们看到计算的中间结果。
|
||||||
|
|
||||||
|
### 错误和调试
|
||||||
|
|
||||||
|
Python 正在等待你的命令。我们鼓励你尝试该语言,即使你可能还不知道它的全部语法和结构。但是,请做好应对错误准备。虽然计算机非常快速和灵活,但它们也非常僵化。计算机的本质在[斯坦福大学的入门课程](http://web.stanford.edu/class/cs101/code-1-introduction.html)中被描述为
|
||||||
|
|
||||||
|
::: warning The fundamental equation of computers is:
|
||||||
|
**computer = powerful + stupid**
|
||||||
|
|
||||||
|
Coputers are very powerful, looking at volumes of data very quickly. Computers can perform billions of operations per second, where each operation is pretty simple.
|
||||||
|
|
||||||
|
Computers are also shockingly stupid and fragile. The operations that they can do are extremely rigid, simple, and mechanical. The computer lacks anything like real insight ... it's nothing like the HAL 9000 from the movies. If nothing else, you should not be intimidated by the computer as if it's some sort of brain. It's very mechanical underneath it all.
|
||||||
|
|
||||||
|
Programming is about a person using their real insight to build something useful, constructed out of these teeny, simple little operations that the computer can do.
|
||||||
|
|
||||||
|
—Francisco Cai and Nick Parlante, Stanford CS101
|
||||||
|
:::
|
||||||
|
|
||||||
|
当你尝试使用 Python 解释器时,计算机的僵化将立即变得明显:即使是最小的拼写和格式更改也会导致意外的输出和错误。
|
||||||
|
|
||||||
|
学习解释错误和诊断意外错误的原因称为调试。调试的一些指导原则是:
|
||||||
|
|
||||||
|
1. **逐步测试**:
|
||||||
|
每个编写良好的程序都由可以单独测试的小型模块化组件组成。尽快尝试测试你编写的所有内容,以便及早发现问题并获得对组件的信心。
|
||||||
|
2. **隔离错误**:
|
||||||
|
语句输出中的错误通常可归因于特定的模块化组件。尝试诊断问题时,请在尝试更正错误之前将错误跟踪到最小的代码片段。
|
||||||
|
3. **检查假设**:
|
||||||
|
解释器会完全执行你的指示 —— 不会多也不会少。当某些代码的行为与程序员认为(或假设)的结果不匹配时,那么输出就是出乎意料的。重新检查你的假设,然后将调试工作集中在验证你的假设是否确实成立上。
|
||||||
|
4. **咨询他人**:
|
||||||
|
你并不孤单!如果你不理解错误消息,请咨询朋友、教师或搜索引擎。如果你已隔离出错误,但无法弄清楚如何纠正它,请让其他人查看。在小组解决问题的过程中,许多有价值的编程知识会被分享。
|
||||||
|
|
||||||
|
逐步测试、模块化设计、精确的假设和团队合作是贯穿本文的主题。希望它们也能贯穿你的计算机科学生涯。
|
||||||
|
|
||||||
## 课后作业
|
## 课后作业
|
||||||
|
|
||||||
一个好的课程怎么能少得了精心准备的课后作业呢?🤗
|
一个好的课程怎么能少得了精心准备的课后作业呢?🤗
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ ZZM 曾经尝试过投入大量时间去钻研数学以及机器学习相关的
|
|||||||
|
|
||||||
联系 ZZM,我努力改
|
联系 ZZM,我努力改
|
||||||
::: tip 邮箱
|
::: tip 邮箱
|
||||||
1264517821@qq.com
|
<1264517821@qq.com>
|
||||||
:::
|
:::
|
||||||
|
|
||||||
<img src=https://cdn.xyxsw.site/boxcnfYSoVgoERduiWP0jWNWMxf.jpg width=200>
|
<img src="https://cdn.xyxsw.site/boxcnfYSoVgoERduiWP0jWNWMxf.jpg" width=200>
|
||||||
|
|||||||
@@ -198,6 +198,7 @@ class Maze:
|
|||||||

|

|
||||||
|
|
||||||
根节点的值是多少?
|
根节点的值是多少?
|
||||||
|
|
||||||
1. 2
|
1. 2
|
||||||
2. 3
|
2. 3
|
||||||
3. 4
|
3. 4
|
||||||
|
|||||||
@@ -98,7 +98,8 @@
|
|||||||
### 最优解 (Optimal Solution)
|
### 最优解 (Optimal Solution)
|
||||||
|
|
||||||
- 在所有解决方案中路径成本最低的解决方案。
|
- 在所有解决方案中路径成本最低的解决方案。
|
||||||
- 在搜索过程中,数据通常存储在<strong>节点 (Node)</strong> 中,节点是一种包含以下数据的数据结构:
|
|
||||||
|
- 在搜索过程中,数据通常存储在**节点 (Node)** 中,节点是一种包含以下数据的数据结构:
|
||||||
|
|
||||||
- 状态——state
|
- 状态——state
|
||||||
- 其父节点,通过该父节点生成当前节点——parent node
|
- 其父节点,通过该父节点生成当前节点——parent node
|
||||||
@@ -114,7 +115,7 @@
|
|||||||
|
|
||||||
然而,节点只是一个数据结构——它们不搜索,而是保存信息。为了实际搜索,我们使用了边域 (frontier),即“管理”节点的机制。边域首先包含一个初始状态和一组空的已探索项目(探索集),然后重复以下操作,直到找到解决方案:
|
然而,节点只是一个数据结构——它们不搜索,而是保存信息。为了实际搜索,我们使用了边域 (frontier),即“管理”节点的机制。边域首先包含一个初始状态和一组空的已探索项目(探索集),然后重复以下操作,直到找到解决方案:
|
||||||
|
|
||||||
重复:
|
重复:
|
||||||
|
|
||||||
1. 如果边域为空
|
1. 如果边域为空
|
||||||
- 停止,搜索问题无解
|
- 停止,搜索问题无解
|
||||||
@@ -350,6 +351,6 @@ def remove(self):
|
|||||||
|
|
||||||
### 深度限制的极大极小算法 (Depth-Limited Minimax)
|
### 深度限制的极大极小算法 (Depth-Limited Minimax)
|
||||||
|
|
||||||
- 总共有$255168$个可能的井字棋游戏,以及有$10^{29000}$个可能的国际象棋中游戏。到目前为止,最小最大算法需要生成从某个点到<strong>终端条件</strong>的所有假设游戏状态。虽然计算所有的井字棋游戏状态对现代计算机来说并不是一个挑战,但目前用来计算国际象棋是不可能的。
|
- 总共有$255168$个可能的井字棋游戏,以及有$10^{29000}$个可能的国际象棋中游戏。到目前为止,最小最大算法需要生成从某个点到**终端条件**的所有假设游戏状态。虽然计算所有的井字棋游戏状态对现代计算机来说并不是一个挑战,但目前用来计算国际象棋是不可能的。
|
||||||
|
|
||||||
深度限制的 Minimax 算法在停止之前只考虑预先定义的移动次数,而从未达到终端状态。然而,这不允许获得每个动作的精确值,因为假设的游戏还没有结束。为了解决这个问题,深度限制 Minimax 依赖于一个评估函数,该函数从给定状态估计游戏的预期效用,或者换句话说,为状态赋值。例如,在国际象棋游戏中,效用函数会将棋盘的当前配置作为输入,尝试评估其预期效用(基于每个玩家拥有的棋子及其在棋盘上的位置),然后返回一个正值或负值,表示棋盘对一个玩家对另一个玩家的有利程度。这些值可以用来决定正确的操作,并且评估函数越好,依赖它的 Minimax 算法就越好。
|
深度限制的 Minimax 算法在停止之前只考虑预先定义的移动次数,而从未达到终端状态。然而,这不允许获得每个动作的精确值,因为假设的游戏还没有结束。为了解决这个问题,深度限制 Minimax 依赖于一个评估函数,该函数从给定状态估计游戏的预期效用,或者换句话说,为状态赋值。例如,在国际象棋游戏中,效用函数会将棋盘的当前配置作为输入,尝试评估其预期效用(基于每个玩家拥有的棋子及其在棋盘上的位置),然后返回一个正值或负值,表示棋盘对一个玩家对另一个玩家的有利程度。这些值可以用来决定正确的操作,并且评估函数越好,依赖它的 Minimax 算法就越好。
|
||||||
|
|||||||
Reference in New Issue
Block a user