《计算机科学精粹》

感觉这样写有些浪费时间精力, 而且太繁琐. 但是这种绪论类的书, 就是要细细地看一遍, 然后争取用自己的知识面把内容扩充出来才有用吧.

第一章

1.1 想法

程序设计的一般步骤:

  1. 分析问题
  2. 确定数学模型
  3. 算法设计
  4. 编写程序
  5. 程序运行和测试
  6. 程序文档编写与程序维护

1.1.1 流程图

图形 含义
圆角矩形 起止框
矩形 处理框
菱形 判定框
箭头 流程线
平行四边形 输入输出框

绘制流程图原则:

  1. 将状态步骤和指令步骤置于矩形框内;
  2. 将决策步骤置于菱形框内;
  3. 不要将指令步骤与决策步骤放在一起;
  4. 使用箭头连接各个顺序步骤;
  5. 标明进程的开始和结束.

1.1.2 伪代码

无法被机器理解的类似代码的语言

可以不被编程语言的范式所束缚, 先写出代码思路 然后再用具体的语言实现

1.1.3 数学模型

模型是一组表示问题及其特征的概念.

中学数学的思路:问题建模为若干数字和方程, 然后应用各种工具进行求解.

还是没有工程经验, 对计算机中的数学模型基本没有什么概念. 所以就照抄了

1.2 逻辑

1.2.1-1.2.2 运算符+布尔代数

布尔代数:运算符不再是数字, 而是True和False两个值.
条件运算符(→)表示变量间的依赖关系
取反运算符(!)表示取反

与或非
逻辑与(AND):同真则真, 一假则假
逻辑或(OR):一真则真, 同假则假
逻辑非(XOR):相同为假, 相异则真

结合律:
A AND (B AND C) = (A AND B) AND C
A OR (B OR C) = (A OR B) OR C

分配律:
A AND (B OR C) = (A AND B) OR (A AND C)
A OR (B AND C) = (A OR B) AND (A OR C)

德摩根定律:
!(A AND B) = !A OR !B
!A AND !B = !(A OR B)

1.2.3 真值表

真值表采用列表示变量, 行表示变量状态的可能组合

1.2.4 逻辑在计算中的应用

数字逻辑电路:与门、或门、异或门

1.3 计数

1.3.1 乘法

如果一个事件以n种不同的方式发生, 另一个事件以m种不同的方式发生, 那么两个事件可能以n×m种不同的方式发生

1.3.2 排序

n个项, 有n!种排序方式

n!=1×2×3...×(n-1)×n

1.3.3 具有相同项的排列

1.3.4 组合

1.3.5 求和

求和符号(Σ)

1.4 概率

1.4.1 对结果计数

P = 事件发生次数 / 可能的结果数量

1.4.2 独立事件

一个事件的结果不会对另一个事件的结果产生影响, 则称二者相互独立
两个独立事件发生的概率是它们各自概率的乘积.

1.4.3 互斥事件

两个事件不可能同时发生, 则称二者互斥
如果希望任一互斥事件发生, 将它们各自的概率相加即可

1.4.4 对立事件

两个互斥事件涵盖所有可能的结果, 则称二者对立
对立事件的概率和为100%

1.4.5 赌徒谬误

过去的事件永远不会影响独立事件的结果

1.4.6 高级概率

参考资料

  • 《离散数学及其应用》
  • 周以真教授关于计算思维的幻灯片
posted @   鲲特牌  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示