《程序员的数学思维修炼 趣味解读》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:周颖等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302350606
  • 页数:302 页
图书介绍:本书面向程序员介绍了编程中常用的数学知识,通过这些基础的数据知识可以培养初级程序员的数学思维。全书共分11章,分别介绍了数的表示、神奇的素数、递归、排列组合、用余数进行数据分组、概率、复利、数理逻辑、推理、几何学图形构造、统筹规划等程序设计中常用的数学知识,引导读者深入理解编程中的数学方法和思路。

第1章 数据的表示 1

1.1一则童话 1

1.1.1 0和1的故事 1

1.1.2 0是什么都没有? 2

1.1.3 0的位置 3

1.1.4程序中的0 4

1.2司空见惯的十进制数 8

1.2.1远古的结绳记事 9

1.2.2什么是十进制计数 10

1.2.3为啥人类习惯十进制 11

1.2.4十进制运算规则 11

1.2.5十进制数的分解 13

1.2.6 20!等于多少 14

1.2.7大整数构想 16

1.3为啥要用二进制 18

1.3.1人脑与电脑 18

1.3.2二进制计数规则 20

1.3.3简单的二进制运算规则 22

1.3.4二进制数的分解 25

1.3.5十进制数转换为二进制数 25

1.4还有哪些进制 26

1.4.1神奇的八卦:八进制 26

1.4.2钟表使用的十二进制 28

1.4.3半斤八两:十六进制 29

1.4.4 60年一个甲子:六十进制 30

1.4.5各种进制之间的转换 30

1.4.6二进制与八进制、十六进制的转换 33

第2章 神奇的素数 35

2.1怎么判断素数 35

2.1.1什么是素数 35

2.1.2验证素数 36

2.1.3寻找素数的算法 38

2.1.4已被证明的素数定理 41

2.2孪生素数 43

2.2.1什么是孪生素数 43

2.2.2孪生素数的公式 44

2.2.3中国剩余定理 44

2.2.4孪生素数分布情况 45

2.3使用素数的RSA算法 47

2.3.1什么是RSA 47

2.3.2 RSA算法基础 48

2.3.3 RSA算法实践 50

2.3.4 RSA应用:数字签名 51

2.3.5 RSA被破解的可能性 52

2.4哥德巴赫猜想 53

2.4.1哥德巴赫猜想是什么 53

2.4.2数值验证 55

2.5梅森素数 57

2.5.1什么是梅森素数 57

2.5.2已知的梅森素数列表 58

第3章 递归——自己调用自己 61

3.1从前有座山,山里有座庙 61

3.1.1老和尚讲的故事 61

3.1.2德罗斯特效应 61

3.1.3什么是递归 62

3.1.4用递归能解决哪些问题 63

3.1.5一个简单例子:求最大公约数 64

3.2用递归计算阶乘 66

3.2.1阶乘该怎么计算 66

3.2.2阶乘的递归计算方法 70

3.2.3递归的过程 71

3.2.4递归的本质:缩小问题规模 74

3.3汉诺塔 75

3.3.1古老的传说 75

3.3.2从两个盘考虑 76

3.3.3找出递归结构 78

3.3.4实现程序 80

3.3.5究竟需要移动多少次 82

3.4斐波那契数列 83

3.4.1兔子的家族 83

3.4.2从最初几月数据中找规律 83

3.4.3斐波那契数列 85

3.4.4神奇的魔八方 87

第4章 排列组合——让数选边站队 90

4.1把所有情况都列出来 90

4.1.1从0还是1开始 90

4.1.2赛程安排 92

4.2乘法原理 94

4.2.1行程安排的问题 94

4.2.2乘法原理适用条件 95

4.2.3棋盘上棋子的放法 96

4.2.4买彩票保证中奖的方法 98

4.3加法原理 99

4.3.1仍然是行程问题 99

4.3.2总结出的加法原理 99

4.3.3骰子出现偶数的次数 100

4.4排列与组合的关系 101

4.4.1排列 101

4.4.2组合 106

4.4.3排列与组合的联系 109

4.4.4可重排列 110

4.5计算机中的字符编码 113

4.5.1 ASCII码能表示的字符数量 114

4.5.2能表示更大范围的编码 117

4.6密码的长度 119

4.6.1容易破解的密码 119

4.6.2多长的密码才安全 120

4.6.3密码中使用的字符数量也很关键 120

第5章 余数——数据分组 122

5.1复习小学的余数 122

5.1.1自然数的余数 122

5.1.2余数的性质 123

5.1.3用余数进行分组 126

5.2日历中的数学 127

5.2.1n天后是星期几 127

5.2.2下月的今天是星期几 129

5.2.3 10年后的“今天”是星期几 130

5.3心灵感应魔术 132

5.3.1一个小魔术 132

5.3.2魔术师是怎么猜出来的 135

5.4奇偶校验 139

5.4.1不可靠的网络传输 139

5.4.2用奇偶校验检查错误 139

5.5吕洞宾不能坐首位 140

5.5.1座位安排 141

5.5.2试排座位找规律 142

5.5.3西方的约瑟夫环 144

5.5.4用数学方法解约瑟夫环 147

5.6智叟分牛 150

5.6.1遗产分配难题 150

5.6.2智叟给出的分配方案 151

5.6.3分配原理 151

第6章 概率——你运气好吗 154

6.1初中学习过的概率 154

6.1.1谁先开球 154

6.1.2用程序模拟抛硬币 155

6.1.3什么是概率 158

6.1.4必然事件与不可能事件 159

6.1.5概率的基本性质 160

6.2百枚钱币鼓士气 161

6.2.1狄青的计谋 162

6.2.2全为正面的概率是多少 162

6.2.3必然还是偶然 165

6.3庄家的胜率是多少 165

6.3.1一个看似公平的游戏 165

6.3.2庄家能赢钱吗 166

6.3.3庄家盈利比率 168

6.3.4游戏参与者获胜的概率 170

6.4你能中奖吗 171

6.4.1想中大奖吗 171

6.4.2计算中奖概率 172

6.5渔塘中有多少条鱼 177

6.5.1该怎么估算渔塘中的鱼 177

6.5.2用概率来估算 178

6.5.3用概率方法求π值 179

第7章 翻一番是多少 182

7.1翻番的概念 182

7.1.1什么是翻番 182

7.1.2翻倍的概念 183

7.1.3计算倍数和番数 184

7.2复利的威力 184

7.2.1利润——投资回报 185

7.2.2认识单利 185

7.2.3认识复利 187

7.2.4计算投资回报的程序 190

7.2.5忘还钱的信用卡 191

7.2.6爱因斯坦的72法则 193

7.3对折纸张 194

7.3.1有趣的问题:纸张对折 194

7.3.2 100米长的纸能对折几次 195

7.3.3计算对折次数的程序 198

7.4一棋盘的麦子 200

7.4.1舍罕王的赏赐 200

7.4.2需要多少麦粒 201

7.5折半法的运用 203

7.5.1翻番的逆运算 203

7.5.2找出假硬币 203

7.5.3编写程序找出假硬币 207

7.5.4折半法在查找中的应用 209

第8章 数理逻辑——非此即彼 212

8.1逻辑的重要性 212

8.1.1模棱两可的表述 212

8.1.2肯定或否定 213

8.1.3程序中的逻辑判断 213

8.2命题逻辑 214

8.2.1什么是命题 214

8.2.2命题的逻辑形式 216

8.2.3简单命题 217

8.2.4复合命题 217

8.2.5复合命题的联结词 218

8.3布尔逻辑 224

8.3.1逻辑或 225

8.3.2逻辑与 227

8.3.3逻辑非 228

8.3.4逻辑异或 229

8.3.5二进制位运算 230

8.4考虑到各种可能了吗 233

8.4.1逻辑重叠的实例 233

8.4.2逻辑遗漏的实例 235

8.4.3用数轴确定边界 236

8.5用卡诺图简化逻辑函数 237

8.5.1什么是卡诺图 237

8.5.2三变量卡诺图 239

8.5.3四变量卡诺图 240

8.5.4卡诺图化简 242

8.5.5卡诺图中的相邻 244

第9章 推理——逻辑的应用 246

9.1演绎推理 246

9.1.1认识演绎推理点 246

9.1.2三段论 247

9.1.3选言推理 249

9.1.4假言推理 252

9.1.5关系推理 256

9.1.6演绎推理综合实例 257

9.2归纳推理 258

9.2.1什么是归纳推理 258

9.2.2完全归纳推理 260

9.2.3不完全归纳推理 261

9.3足球比赛的得分 265

9.3.1粗心的记分员 265

9.3.2从已有数据推算出比分 267

第 10章 几何图形构造 271

10.1花盆摆放问题 271

10.1.1 10盆花摆成5行,每行4盆 271

10.1.2转变思路,找出答案 272

10.1.3升级问题(10盆花摆10行,每行3盆) 274

10.2残缺的棋盘能补上吗? 275

10.2.1被切割的棋盘 275

10.2.2能拼接出残缺棋盘吗 276

10.3线条哪里去了? 278

10.3.1神奇的魔术 278

10.3.2解析丢失的线条 279

10.4图形剪拼 280

10.4.1均分三角形 281

10.4.2拼接正方形 282

第11章 统筹规划 286

11.1认识统筹规划 286

11.1.1田忌赛马 286

11.1.2为什么会赢 287

11.2生活中的统筹规划 288

11.2.1匆忙的早晨 288

11.2.2如何节约运输成本 290

11.3著名的背包问题 292

11.3.1什么是背包问题 292

11.3.2用递归程序解决背包问题 294

11.3.3用穷举法解决背包问题 298