程序员的数学好难学?一切从基础开始!

news2024/12/25 9:17:35

数学知识对编程很有用,但是很多写给程序员的数学书都比较难。我们为什么不从基础的数学知识开始学习呢?

程序员的数学基础 Python实战

1.本书的重点不在于如何解题,而在于帮助读者在计算机世界里如何利用数学解决算法问题,让程序员更容易理解数学背后的逻辑,进而编写出更优雅的代码

2.本书不是一味的让读者看书,还会用Python创建一些简单的程序,让读者更直观的理解程序的工作模式,通过尝试改变变量值或者改变程序中表达式的某一部分,使读者对数学有更深入的理解

3.通过具体的案例与实践帮助读者把数学知识内化于心

4.本书致力于把数学变得通俗易懂,加强易懂和可读性,不仅适合程序员与“程序员预备役”,也同样适合对人工智能与机器学习感兴趣的初学者,即使是数学基础非常薄弱的读者也可以看懂

本书尽力在计算机的世界中,告诉大家“数学可以怎样用”或者“数学可以解决什么问题”,还尝试用简单的 Python 程序来展示实际的效果,帮助大家找到一种“原来如此”的感觉,从而掌握相关的数学知识。本书不仅解释了数学理论,还解释了使用 Python 编写的程序中的计算、证明和理论验证。

本书的主要目标是让数学变得易懂!程序员或者是想要成为程序员的高中生、大学生,以及对机器学习和人工智能感兴趣的初学者,甚至是数学基础薄弱的读者都适合阅读本书。

如果你想认真学习数学,可能数学教科书是比较合适 的。但你不会为了考试而学习吧。

你可能是程序员或有志于学习编程的人。在实际编程中,有些人可能会想:“我应该好好学习数学……”你可能买了一本书来学习机器学习或人工智能,但完全不知道上面写的是什么!有些人可能已经感到非常沮丧了。所以你一定要准备一本《程序员的数学基础:Python实战》。

本书所涉及的知识只是从小学到高中毕业所学数学的一小部分。与数学教科书不同的是,这本书的重点不在于如何解题,而在于我在学生时代一直有的疑问一这东西哪里会用到呢?或者这到底有什么用? 我试图用“在计算机世界里,你可以这样使用它”“可以通过使用它来做这些事情”来回答这些问题。

此外,本书并不是一味地让读者看书,还会用Python创建一些简单的程序,这样读者就可以看到程序是如何工作的。通过尝试改变变量的 值或改变程序中表达式的某一部分,看看结果是如何改变的,读者会对 数学有更深入的理解。同时,读者应该能够摸索出一些在程序中实现数学公式的技巧。

同样,这也不是一本解决数学问题的书。本书讲述的是数学在我们周围的世界,特别是在计算机世界中的应用,旨在通过具体的例子和实 践,帮助读者把数学知识内化于心。从本质上讲,数学是一门美丽的学 科,因为它是不含糊的。但本书的主要目标是让数学变得通俗易懂, 强调的是易懂和可读性。

本书特点

结合案例理解知识点

Try Python原来如此

浅显易懂,图文并茂

详细目录

第 1章
计算机与数字 1
1.1  进制计数法 2
1.1.1 十进制计数法 2
1.1.2 0次方 3
1.1.3 二进制计数法 4
1.1.4 十六进制计数法 5
1.2  进制转换 7
1.2.1 十进制转二进制 7
1.2.2 十进制转十六进制 9
1.2.3 二进制或十六进制转十进制 11
1.3  计算机世界中的数字 13
1.3.1 数据的处理方式 13
1.3.2 能处理的数值是有限的 15
1. 4  负数的处理方式 16
1.4.1 计算x+1=0 17
1.4.2 什么是二进制补码 17
1.4.3 用符号位区分正负 19
1.4.4 计算机能处理多大的数 20
1.4.5 二进制补码与进制转换 22
1.5  小数的表示方法 23
1.5.1 数位的权重 23

1.5.2 小数的进制转换 24
1.5.3 计算机如何处理浮点数 26
1.5.4 无法避免的小数误差 27
1.6  字符与颜色的处理 28
1.6.1 计算机如何处理字符 28
1.6.2 计算机如何处理颜色 30
第 2章
计算机的运算 33
2.1  算术运算:计算机的四则运算 34
2.1.1 表达式的写法 34
2.1.2 运算优先级 37
2.1.3 如何减小小数误差 38
2.2  用移位运算做乘除法 39
2.2.1 位的左右移动 40
2.2.2 两种类型的右移运算:算术和逻辑 43
2.3  计算机特有的位运算 45
2.3.1 什么是位运算 45
2.3.2 与运算 46
2.3.3 或运算 47
2.3.4 异或运算 48
2.3.5 非运算 49
2.3.6 求二进制补码 50
2.3.7 用掩码取出部分位 51
2.3.8 将位用作标志 55
2. 4  计算机用逻辑运算进行判断 59
2.4.1 比较运算 60

2.4.2 使用True和False的逻辑运算及其真值表 61
2.4.3 逻辑与(AND运算) 62
2.4.4 逻辑或(OR运算) 64
第3章
用图形描绘方程 67
3.1  用Matplotlib绘制图形 68
3.2  从方程到图形 70
3.2.1 方程 71
3.2.2 函数 72
3.2.3 函数和图形 74
3.3  线性方程 76
3.3.1 连接两点的直线 76
3.3.2 两条正交直线 79
3.3.3 两条直线的交点 81
3. 4  比例式与三角函数 82
3.4.1 比例式的性质 82
3.4.2 线段的m:n内分点 83
3.4.3 三角函数与圆 87
3.4.4 三角函数和角度 91
3.5  勾股定理 93
3.5.1 圆的方程 93
3.5.2 两点之间的距离 96
3.6  常用公式 98
3.6.1 点到直线的距离 98
3.6.2 直线围成的区域的面积 100
第4章
向量 105
4.1  向量的计算 106
4.1.1 向量与箭头 106
4.1.2 向量的组成 106
4.1.3 向量的方向 108
4.1.4 向量的大小 110
4.1.5 向量的运算 110
4.1.6 向量的分解 113
4.2  向量方程 115
4.2.1 直线的表示方法 115
4.2.2 两条直线的交点 117
4.2.3 使用向量的理由 119
4.3  向量的内积 120
4.3.1 计算贡献度 120
4.3.2 计算功的大小 123
4.3.3 向量的内积 123
4.3.4 两条直线的夹角 124
4.3.5 内积的性质 127
4. 4  向量的外积 130
4.4.1 法向量 130
4.4.2 求面积 131
第5章
矩阵 135
5.1  什么是矩阵 136
5.1.1 矩阵的记法 136
5.1.2 矩阵的含义 137
5.2  矩阵的运算 138
5.2.1 加法、减法 138
5.2.2 矩阵与实数相乘 140
5.2.3 乘法 141
5.2.4 乘法法则 143
5.2.5 单位矩阵 145
5.2.6 逆矩阵 146
5.2.7 逆矩阵和方程组 147
5.3  图形的线性变换 150
5.3.1 向量与矩阵的关系 150
5.3.2 图形的对称变换 152
5.3.3 图形的放大与缩小 155
5.3.4 图形的旋转 157
5.3.5 图形的平移 160
5.3.6 从2×2矩阵到3×3矩阵 161
5.3.7 线性变换的组合 165
第6章
集合与概率 171
6.1  集合 172
6.1.1 集合的特点 172
6.1.2 各种集合 173
6.1.3 集合和数据库 176
6.2  排列与组合 178
6.2.1 事件数 178
6.2.2 求事件数的方法 179

6.2.3 排列 180
6.2.4 阶乘 183
6.2.5 重复排列 185
6.2.6 组合 186
6.3  概率 188
6.3.1 求概率的方法 188
6.3.2 数学概率与统计概率 191
6.3.3 乘法原理与加法原理 192
6.3.4 蒙特卡洛法 194
第7章
统计和随机数 197
7.1  什么是统计 198
7.1.1 总体与样本 198
7.1.2 观察数据的离散程度 200
7.1.3 平均值、中位数和众数 202
7.1.4 直方图 204
7.2  衡量离散程度 207
7.2.1 方差和标准差 207
7.2.2 偏差值 211
7.3  衡量相关性 214
7.3.1 散点图 214
7.3.2 协方差和相关系数 216
7. 4  通过数据进行推测 218
7.4.1 移动平均值 219
7.4.2 线性回归 222
7.5  取随机数 225

7.5.1 随机数 226

7.5.2 使用随机数的注意事项 226

第8章

微积分 229

8.1  曲线与图像 230

8.1.1 衡量变化的线索 230

8.1.2 衡量变化 234

8.2  什么是微分 235

8.2.1 变化率 235

8.2.2 微分系数 237

8.2.3 微分 239

8.2.4 微分公式 240

8.2.5 导数的含义 242

8.3  什么是积分 245

8.3.1 变化的累加 245

8.3.2 积分 247

8.3.3 定积分、不定积分 250

8.3.4 原函数 251

8.3.5 积分公式 254

8.3.6 什么是积分常数C 257

8. 4  微积分的实际应用 258

8.4.1 曲线的切线 258

8.4.2 提取轮廓 262

8.4.3 圆周长和面积之间的关系 266

8.4.4 圆锥的体积 268

8.4.5 球的体积与表面积的关系 269

附录A5

软件安装指南 273

A.1  Python的版本 273

A.2  安装Anaconda 273

A.3  确认Python的版本 276

A. 4  使用Python解释器 277

A.5  如何使用Jupyter Notebook 279

A.5.1 创建程序 280

A.5.2 重命名并保存 281

A.5.3 关闭Jupyter Notebook 282

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WinForm应用实战开发指南 - 教你如何实现表头的全选操作?

WinForms分页控件,在很多场合都需要用到,由于整合较多的功能操作,使用起来效果更好,界面统一性也比较一致。其中的勾选操作,在有些场合下,也是比较有用的,因此提供该功能的整合。 PS&#xff1…

基于改进神经网络的风电功率预测(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

【K8S系列】Kubernetes 之kubectl 常用命令汇总

目录 一、kubetcl简单介绍 二、命令介绍 详细介绍: 三、部分命令详细介绍 3.1 create 3.2 get 3.3 describe 3.4 rolling-update 3.5 exec 3.6 log kubectl 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes 集群。 日常在使用 Kuber…

Swift 周报 第十六期

前言 本期是 Swift 编辑组自主整理周报的第七期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。 欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。 当你来到双水村以外的大世界&#xff…

操作系统实验二死锁避免之银行家算法的模拟

文章目录 死锁 (1)定义 (2)死锁产生的原因 (3)死锁产生的必要条件 (4)死锁的处理策略 银行家算法 (1)核心思想 (2)数据结构 &#x…

2.2 Pycharm 的使用

文章目录1. PyCharm 安装2. Python 项目3. 外貌设置4. 配色方案5. 字体大小6. 自动换行7. 汉化8. 翻译插件9. 添加多个解释器10. Pycharm 常用快捷键11. 自定义文件模板内容12. 前端代码运行浏览器13. 关闭 with open 提示14. 双击shift查找15. 导出配置导入配置1. PyCharm 安装…

Gwas实战分析3_群体结构增加

1.sh plink 格式转化 plink1.map/plink1.ped ------plink2.bim/fam/bed plink --file 1001genomes_snps_only_ACGTN1 --make-bed --out plink2 2.sh 群体结构分析 时间过久: for K in 2 3 4 5 6 7 8 9 10; do admixture --cv plink2.bed K∣teeadmixtrueK | tee…

HTML小游戏4 —— 简易版英雄联盟(附完整源码)

💂 网站推荐:【神级源码资源网】【摸鱼小游戏】🤟 风趣幽默的前端学习课程:👉28个案例趣学前端💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬 免费且实用的计算机相关知…

基于C#实现的在线聊天室的桌面系统软件

资源下载地址:https://download.csdn.net/download/sheziqiong/86863237 资源下载地址:https://download.csdn.net/download/sheziqiong/86863237 目录 个人聊天室软件 1 需求分析与概要设计 1 项目说明 1 1.1. 项目目标: 1 1.2. 软硬件环境…

庖丁解牛 指针的高端操作

本章重点 写在前面 1.字符指针 2.指针数组 3.数组指针 3.1数组指针的定义 3.2 &数组名VS数组名 3.3 数组指针的使用 二维数组与数组指针 4.数组参数和指指针参数 4.1一维数组传参 4.2 二维数组传参 4.3一级指针传参 4.4二级指针传参 5.函数指针 5.1函数指针的…

SSM基于小程序的医院预约挂号系统 毕业设计-附源码260839

SSM医院预约挂号小程序的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对医院排…

Prometheus系列(2)之EC2安装Node端

目标 为Prometheus安装Node程序。 步骤 node exporter程序 wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz tar xvzf node_exporter-1.4.0.linux-amd64.tar.gz cd node_exporter-1.4.0.linux-amd64/s…

技术分享 | 专项测试技术初识Hook

本文节选自霍格沃兹测试学院内部教材Hook 技术需要预先分析目标应用的源代码和逻辑,根据目标测试场景设置目标、逻辑和数据,然后运行时动态的对目标函数参数值、逻辑或者返回值做修改,达到修改现有函数逻辑、实现目标测试场景的目的。 Hook的…

汇编语言指令

文章目录算术运算指令ADDADDISUB伪指令LUILIAUIPCLA逻辑运算指令内存读写指令条件分支指令无条件跳转指令算术运算指令 ADD 语法ADD RD,RS1,RS2例子add x5,x6,x7x5x6x7编码格式:R-type opcode(7):0110011(OP) 从RS里面取出数据,把里面的数据…

【MyBatis框架】关联映射

关系映射1. 关联映射概述2. 环境搭建3.处理字段名和属性名不一致的情况4. 处理一对一映射5. 处理多对一映射5.1 级联方式处理5.2 使用association处理映射关系5.3 分步查询6. 处理一对多查询7. 小结1. 关联映射概述 在关系型数据库中,多表之间存在着三种关联关系&a…

Linux文件打包及压缩、解包及解压

目录 前言 什么是压缩? tar的介绍与使用 简介 打包压缩文件 打包文件(不压缩) gzip压缩类型压缩文件 bzip压缩类型压缩文件 xzip压缩类型压缩文件 解包解压文件 简介 解压缩(解压到当前目录) 解压缩&#x…

线代 | 【提神醒脑】自用笔记串联

一、初等变换 1、初等行变换与方程组的同解变换 2、初等行变换关系网 ※ 3、关联结论 —— 同解方程 4、行、列变换适用场景

Java 线程池之ThreadPoolExecutor学习总结

前提 java version "1.8.0_25" 池简述 软件开发活动中,我们经常会听到数据库连接池、内存池、线程池等各种“池”概念,这些“池”到底是什么东西呢?程序的世界里,我们可以将池简单的理解为一种容器类数据结构&#x…

哪本计算机书籍,让你有了醍醐灌顶突然开悟的感觉?

计算机书籍每年都会出版很多,但是能影响几代程序员的有这几本书,推荐一下,肯定让你有醍醐灌顶的开悟的感觉。 1、重构 改善既有代码的设计(第2版 平装版) 豆瓣评分:9.2 本书是一本为专业程序员编写的重构指…

30岁本科男,在测试行业干了五年还只会功能测试,难道真的要去送外卖吗?

在网上看到一个帖子 从发帖内容可以看出,题主是一位拥有五年功能测试经验的IT从业者,他也深知功能测试现在的处境艰难,想改变,却又因为年龄和经济压力的原因迟迟不敢迈出第一步,其实这是很多年近30岁的人事业危机的缩影…