内容
《程序员的数学 第2版》面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无须精通编程,也无须精通数学,只要具备四则运算和乘方等基础知识,即可阅读本书。
《程序员的数学 第2版》讲解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、高斯求和、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。
《程序员的数学 第2版》新增一个附录来介绍机器学习的基础知识,内容涉及感知器、损失函数、梯度下降法和神经网络,旨在带领读者走进机器学习的世界。
作者
结城浩(作者)
生于1963年,日本知名技术作家和程序员。在编程语言、设计模式、数学、加密技术等领域,编写了很多深受欢迎的入门书。代表作有《数学女孩》系列、《程序员的数学》《图解密码技术》等。
管杰(译者)
毕业于复旦大学日语系,现为对日软件工程师,具有多年日语技术文档编写经验。爱好日汉翻译和日本文化史,译有《明解C语言:入门篇》等。
卢晓南(译者)
本科就读于西安交通大学少年班、数学系。名古屋大学博士(信息科学)。现于山梨大学计算机系任助理教授。主要研究方向包括组合数学(离散数学)及其在信息科学、计算机科学、统计学中的应用。译著有《程序员的数学3:线性代数》。
目录
第1章0的故事——无即是有
本章学习内容 2
10进制计数法 3
分解2503 3
什么是2进制计数法 4
基数转换 6
按位计数法 10
不使用按位计数法的罗马数字 11
10的0次方是什么 12
规则的扩展 14
2–1是什么 15
0的作用:占位 16
日常生活中的0 17
重温历史进程 18
本章小结 20
本章学习内容 22
逻辑是消除歧义的工具 22
乘车费用问题—兼顾完整性和排他性 23
命题及其真假 24
有没有“重复” 25
注意边界值 27
使用if 语句分解问题 28
建立复杂命题 29
逻辑与—A并且B 32
异或—A或者B(但不都满足) 37
蕴涵—若A则B 40
德摩根定律 46
对偶性 47
二灯游戏 48
学习使用卡诺图 50
包含未定义的逻辑 54
带条件的逻辑或(||) 57
三值逻辑的德摩根定律 59
本章小结 60
本章学习内容 64
思考题(100 天以后是星期几) 64
运用余数思考 65
星期数的思考题(2) 66
提示:可以直接计算吗 67
发现规律 68
乘方的思考题 70
提示:通过试算找出规律 70
回顾:规律和余数的关系 71
思考题 71
思考题答案 73
奇偶校验位将数字分为2 个集合 74
思考题(寻找恋人) 74
思考题答案 75
铺设草席的思考题 77
提示:先计算一下草席数 78
回顾 79
思考题(哥尼斯堡七桥问题) 79
提示:考虑简化一下 81
思考题答案 82
本章小结 86
本章学习内容 88
思考题(存钱罐里的钱) 88
小高斯的解答 89
归纳 91
0 以上的整数的断言 92
什么是数学归纳法 93
用数学归纳法证明小高斯的断言 95
通过数学归纳法证明 96
图形化说明 98
思考题(黑白棋子的颜色) 99
思考题答案 101
通过循环表示数学归纳法 101
本章小结 107
本章学习内容 110
何谓计数 110
植树问题—不要忘记0 111
加法法则 115
乘法法则 118
置换 121
归纳一下 122
排列 124
归纳一下 126
组合 130
归纳一下 131
思考题练习 134
也要善于运用逻辑 137
第6章 递归——自己定义自己
汉诺塔 144
提示:先从小汉诺塔着手 145
求出解析式 150
找出递归结构 152
阶乘的递归定义 154
递归和归纳 156
思考题(不断繁殖的动物) 157
帕斯卡三角形 162
递归定义组合数 165
递归图形 167
实际作图 168
本章小结 171
本章学习内容 174
思考题(折纸问题) 174
倍数游戏—指数爆炸引发的难题 178
不能认为是“有限的”就不假思索 180
寻找犯人的思考题 180
思考题答案 182
二分法查找和指数爆炸 185
什么是对数 187
以2为底的对数 188
对数图表 189
对数和计算尺 192
暴力破解法 195
如何处理指数爆炸 197
四种处理方法 198
第8章 不可解问题——不可解的数、无法编写的程序
反证法 202
质数思考题 204
可数 205
可数集合的例子 206
对角论证法 209
所有实数的集合是不可数的 213
不可解问题 215
存在不可解问题 216
停机问题 218
处理程序的程序 219
停机问题的证明 221
不可解问题有很多 226
第9章 什么是程序员的数学——总结篇
何为解决问题 233
由不擅长催生出的智慧 233
程序员的数学 235
本附录学习内容 238
受到广泛关注的机器学习技术 239
预测问题和分类问题 240
分类问题 243
什么是感知器 245
激活函数 249
机器学习是如何“学习”的 250
训练数据与测试数据 251
梯度下降法 254
神经网络 256
误差反向传播法 258
人类就这样没用了吗 260