标签分类 热门分类
当前位置:首页 > 其它计算机电子书 > 程序员电子书网盘下载
程序员的数学思维修炼 程序员的数学思维修炼
我怀念De

我怀念De 提供上传

资源
42
粉丝
36
喜欢
146
评论
20

    程序员的数学思维修炼 PDF 解读扫描版

    程序员电子书
    • 发布时间:

    给大家带来的一篇关于程序员相关的电子书资源,介绍了关于程序员、数学思维方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小38.4 MB,周颖编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.7,更多相关的学习资源可以参阅 其它计算机电子书、等栏目。

  • 程序员的数学思维修炼 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1g2A2way8FXkP-waBVOcW3
  • 分享码:k8f4
  • 程序员的数学思维修炼 PDF

    《程序员的数学思维修炼(趣味解读)》是一本专门为程序员而写的数学书,介绍了程序设计中常用的数学知识。本书门槛不高,不需要读者精通很多高深的数学知识,只需要读者具备基本的四则运算、乘方等数学基础知识和日常生活中的基本逻辑判断能力即可。本书拒绝枯燥乏味的讲解,而是代之以轻松活泼的风格。书中列举了大量读者都很熟悉,而且非常有趣的数学实例,并结合程序设计的思维和算法加以剖析,可以训练读者的数学思维能力和程序设计能力,进而拓宽读者的视野,增强职场竞争力。

    本书共11章,分别介绍了数据的表示、神奇的素数、递归、排列组合、用余数进行数据分组、概率、复利、数理逻辑、推理、几何图形构造、统筹规划等程序设计中常用的数学知识,从而引导读者深入理解编程中的数学方法和思路。本书包含的实例有结绳记事、孪生素数、梅森素数、哥德巴赫猜想、阶乘、汉诺塔、斐波那契数列、乘法原理、加法原理、字符编码、密码长度、日历中的数学、心灵感应魔术、约瑟夫环、智叟分牛、百枚钱币鼓士气、庄家的胜率、中奖概率、用概率方法求π值、复利的威力、对折纸张、舍罕王的赏赐、三段论、选言推理、假言推理、关系推理、花盆摆放、残缺棋盘、丢失的线条、田忌赛马、背包问题等。

    目录

    • 第1章 数据的表示
    • 1.1 一则童话
    • 1.1.1 0和1的故事
    • 1.1.2 0是什么都没有?
    • 1.1.3 0的位置
    • 1.1.4 程序中的
    • 1.2 司空见惯的十进制数
    • 1.2.1 远古的结绳记事
    • 1.2.2 什么是十进制计数
    • 1.2.3 为啥人类习惯十进制
    • 1.2.4 十进制运算规则
    • 1.2.5 十进制数的分解
    • 1.2.6 20!等于多少
    • 1.2.7 大整数构想
    • 1.3 为啥要用二进制
    • 1.3.1 人脑与电脑
    • 1.3.2 二进制计数规则
    • 1.3.3 简单的二进制运算规则
    • 1.3.4 二进制数的分解
    • 1.3.5 十进制数转换为二进制数
    • 1.4 还有哪些进制
    • 1.4.1 神奇的八卦:八进制
    • 1.4.2 钟表使用的十二进制
    • 1.4.3 半斤八两:十六进制
    • 1.4.4 60年一个甲子:六十进制
    • 1.4.5 各种进制之间的转换
    • 1.4.6 二进制与八进制、十六进制的转换
    • 第2章 神奇的素数
    • 2.1 怎么判断素数
    • 2.1.1 什么是素数
    • 2.1.2 验证素数
    • 2.1.3 寻找素数的算法
    • 2.1.4 已被证明的素数定理
    • 2.2 孪生素数
    • 2.2.1 什么是孪生素数
    • 2.2.2 孪生素数的公式
    • 2.2.3 中国剩余定理
    • 2.2.4 孪生素数分布情况
    • 2.3 使用素数的RSA算法
    • 2.3.1 什么是RSA
    • 2.3.2 RSA算法基础
    • 2.3.3 RSA算法实践
    • 2.3.4 RSA应用:数字签名
    • 2.3.5 RSA被破解的可能性
    • 2.4 哥德巴赫猜想
    • 2.4.1 哥德巴赫猜想是什么
    • 2.4.2 数值验证
    • 2.5 梅森素数
    • 2.5.1 什么是梅森素数
    • 2.5.2 已知的梅森素数列表
    • 第3章 递归——自己调用自己
    • 3.1 从前有座山,山里有座庙
    • 3.1.1 老和尚讲的故事
    • 3.1.2 德罗斯特效应
    • 3.1.3 什么是递归
    • 3.1.4 用递归能解决哪些问题
    • 3.1.5 一个简单例子:求最大公约数
    • 3.2 用递归计算阶乘
    • 3.2.1 阶乘该怎么计算
    • 3.2.2 阶乘的递归计算方法
    • 3.2.3 递归的过程
    • 3.2.4 递归的本质:缩小问题规模
    • 3.3 汉诺塔
    • 3.3.1 古老的传说
    • 3.3.2 从两个盘考虑
    • 3.3.3 找出递归结构
    • 3.3.4 实现程序
    • 3.3.5 究竟需要移动多少次
    • 3.4 斐波那契数列
    • 3.4.1 兔子的家族
    • 3.4.2 从最初几月数据中找规律
    • 3.4.3 斐波那契数列
    • 3.4.4 神奇的魔八方
    • 第4章 排列组合——让数选边站队
    • 4.1 把所有情况都列出来
    • 4.1.1 从0还是1开始
    • 4.1.2 赛程安排
    • 4.2 乘法原理
    • 4.2.1 行程安排的问题
    • 4.2.2 乘法原理适用条件
    • 4.2.3 棋盘上棋子的放法
    • 4.2.4 买彩票保证中奖的方法
    • 4.3 加法原理
    • 4.3.1 仍然是行程问题
    • 4.3.2 总结出的加法原理
    • 4.3.3 骰子出现偶数的次数
    • 4.4 排列与组合的关系
    • 4.4.1 排列
    • 4.4.2 组合
    • 4.4.3 排列与组合的联系
    • 4.4.4 可重排列
    • 4.5 计算机中的字符编码
    • 4.5.1 ASCII码能表示的字符数量
    • 4.5.2 能表示更大范围的编码
    • 4.6 密码的长度
    • 4.6.1 容易破解的密码
    • 4.6.2 多长的密码才安全
    • 4.6.3 密码中使用的字符数量也很关键
    • 第5章 余数——数据分组
    • 5.1 复习小学的余数
    • 5.1.1 自然数的余数
    • 5.1.2 余数的性质
    • 5.1.3 用余数进行分组
    • 5.2 日历中的数学
    • 5.2.1 n天后是星期几
    • 5.2.2 下月的今天是星期几
    • 5.2.3 10年后的“今天”是星期几
    • 5.3 心灵感应魔术
    • 5.3.1 一个小魔术
    • 5.3.2 魔术师是怎么猜出来的
    • 5.4 奇偶校验
    • 5.4.1 不可靠的网络传输
    • 5.4.2 用奇偶校验检查错误
    • 5.5 吕洞宾不能坐首位
    • 5.5.1 座位安排
    • 5.5.2 试排座位找规律
    • 5.5.3 西方的约瑟夫环
    • 5.5.4 用数学方法解约瑟夫环
    • 5.6 智叟分牛
    • 5.6.1 遗产分配难题
    • 5.6.2 智叟给出的分配方案
    • 5.6.3 分配原理
    • 第6章 概率——你运气好吗
    • 6.1 初中学习过的概率
    • 6.1.1 谁先开球
    • 6.1.2 用程序模拟抛硬币
    • 6.1.3 什么是概率
    • 6.1.4 必然事件与不可能事件
    • 6.1.5 概率的基本性质
    • 6.2 百枚钱币鼓士气
    • 6.2.1 狄青的计谋
    • 6.2.2 全为正面的概率是多少
    • 6.2.3 必然还是偶然
    • 6.3 庄家的胜率是多少
    • 6.3.1 一个看似公平的游戏
    • 6.3.2 庄家能赢钱吗
    • 6.3.3 庄家盈利比率
    • 6.3.4 游戏参与者获胜的概率
    • 6.4 你能中奖吗
    • 6.4.1 想中大奖吗
    • 6.4.2 计算中奖概率
    • 6.5 渔塘中有多少条鱼
    • 6.5.1 该怎么估算渔塘中的鱼
    • 6.5.2 用概率来估算
    • 6.5.3 用概率方法求π值
    • 第7章 翻一番是多少
    • 7.1 翻番的概念
    • 7.1.1 什么是翻番
    • 7.1.2 翻倍的概念
    • 7.1.3 计算倍数和番数
    • 7.2 复利的威力
    • 7.2.1 利润——投资回报
    • 7.2.2 认识单利
    • 7.2.3 认识复利
    • 7.2.4 计算投资回报的程序
    • 7.2.5 忘还钱的信用卡
    • 7.2.6 爱因斯坦的72法则
    • 7.3 对折纸张
    • 7.3.1 有趣的问题:纸张对折
    • 7.3.2 100米长的纸能对折几次
    • 7.3.3 计算对折次数的程序
    • 7.4 一棋盘的麦子
    • 7.4.1 舍罕王的赏赐
    • 7.4.2 需要多少麦粒
    • 7.5 折半法的运用
    • 7.5.1 翻番的逆运算
    • 7.5.2 找出假硬币
    • 7.5.3 编写程序找出假硬币
    • 7.5.4 折半法在查找中的应用
    • 第8章 数理逻辑——非此即彼
    • 8.1 逻辑的重要性
    • 8.1.1 模棱两可的表述
    • 8.1.2 肯定或否定
    • 8.1.3 程序中的逻辑判断
    • 8.2 命题逻辑
    • 8.2.1 什么是命题
    • 8.2.2 命题的逻辑形式
    • 8.2.3 简单命题
    • 8.2.4 复合命题
    • 8.2.5 复合命题的联结词
    • 8.3 布尔逻辑
    • 8.3.1 逻辑或
    • 8.3.2 逻辑与
    • 8.3.3 逻辑非
    • 8.3.4 逻辑异或
    • 8.3.5 二进制位运算
    • 8.4 考虑到各种可能了吗
    • 8.4.1 逻辑重叠的实例
    • 8.4.2 逻辑遗漏的实例
    • 8.4.3 用数轴确定边界
    • 8.5 用卡诺图简化逻辑函数
    • 8.5.1 什么是卡诺图
    • 8.5.2 三变量卡诺图
    • 8.5.3 四变量卡诺图
    • 8.5.4 卡诺图化简
    • 8.5.5 卡诺图中的相邻
    • 第9章 推理——逻辑的应用
    • 9.1 演绎推理
    • 9.1.1 认识演绎推理点
    • 9.1.2 三段论
    • 9.1.3 选言推理
    • 9.1.4 假言推理
    • 9.1.5 关系推理
    • 9.1.6 演绎推理综合实例
    • 9.2 归纳推理
    • 9.2.1 什么是归纳推理
    • 9.2.2 完全归纳推理
    • 9.2.3 不完全归纳推理
    • 9.3 足球比赛的得分
    • 9.3.1 粗心的记分员
    • 9.3.2 从已有数据推算出比分
    • 第10章 几何图形构造
    • 10.1 花盆摆放问题
    • 10.1.1 10盆花摆成5行,每行4盆
    • 10.1.2 转变思路,找出答案
    • 10.1.3 升级问题(10盆花摆10行,每行3盆)
    • 10.2 残缺的棋盘能补上吗?
    • 10.2.1 被切割的棋盘
    • 10.2.2 能拼接出残缺棋盘吗
    • 10.3 线条哪里去了?
    • 10.3.1 神奇的魔术
    • 10.3.2 解析丢失的线条
    • 10.4 图形剪拼
    • 10.4.1 均分三角形
    • 10.4.2 拼接正方形
    • 第11章 统筹规划
    • 11.1 认识统筹规划
    • 11.1.1 田忌赛马
    • 11.1.2 为什么会赢
    • 11.2 生活中的统筹规划
    • 11.2.1 匆忙的早晨
    • 11.2.2 如何节约运输成本
    • 11.3 著名的背包问题
    • 11.3.1 什么是背包问题
    • 11.3.2 用递归程序解决背包问题
    • 11.3.3 用穷举法解决背包问题

    上一篇:C及C++程序设计  下一篇:Unity人工智能游戏开发

    展开 +

    收起 -

    程序员 相关电子书
    关于程序员的学习笔记
    网友NO.947952

    java程序员必须要学会的linux命令总结(推荐)

    1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 find . -name “*.xml” 递归查找所有的xml文件 2.查看一个程序是否运行 ps –ef|grep tomcat 查看所有有关tomcat的进程 3.终止线程 kill -9 19979 终止线程号位19979的进程 pkill -9 java 批量终止java进程 4.查看文件,包含隐藏文件 ls -al 5.当前工作目录 pwd 6.复制文件 cp source dest 复制文件 cp -r sourceFolder targetFolder 递归复制整个文件夹 scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝 7.创建目录 mkdir newfolder 创建文件:touch test.txt 8.删除目录 rmdir deleteEmptyFolder 删除空目录 rm -rf deleteFile 递归删除目录中所有内容 9.移动文件 mv /temp/movefile /targetFolder 10.重命令 mv oldNameFile newNameFile 11.切换用户 su -username 12.修改文件权限 chmod 777 file.java //file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行 13.压缩文件 tar -czf test.tar.gz /test1 /test2 zip -r test.zip /test 14.列出压缩文件列表 tar -tzf test.tar.gz 15.解压文件 tar -xvzf test.tar.gz upzip test.zip 16.查看文件头10行 head -n 10 example.txt 17.查看文件尾10行 tail -n 10 example.txt 18.查看日志类型文件 tail -f exmaple.log //这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。 19.使用超级管理员身份执行命令 sudo rm a.txt 使用管理员身份删除文件 20.查看端口占用情况……

    网友NO.106811

    .NET程序员如何入门Spring Boot详解

    前言 本篇文章将教你作为一个.NET程序员如何快入门Spring Boot。你不需要用Eclipse,也不需要用IDEA。已经习惯了VS,其他的IDE…… 但不得不说VS Code很厉害,一用就喜欢。微软给VS Code提供了编写Java的插件,你可以在VS Code上愉快地写Java。 一、环境搭建 (1) 安装Java、配置环境变量。(教程很多,这里不多说) (2) 安装Maven和配置。参考https://www.cnblogs.com/eagle6688/p/7838224.html (3) 安装VS Code (4) 安装Java开发插件,配置VS Code的Java开发环境。(这一步微软替我们简化了,下载Vs Code Java安装程序,直接安装就可以编写Java代码了,下载连接 http://aka.ms/vscode-java-installer-win 此安装程序可以重复运行) 二、构建Maven项目 (1)访问 http://start.spring.io/ (2)选择Maven Project、Java、Spring Boot 版本 2.1.6,如图 点击 Generate the Project 下载项目压缩包 (3)解压后用VS Code打开此文件夹 2.16版本官方推荐的项目结构如下: 目前用得更多的是类似这种结构: 三、编写接口,输入Hello World (1)pom.xml中添加支持web的模块,然后保存 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency 保存后VS Code自动下载该模块,也可以右键pom.xml,点击Update project configuration手动更新配置 pom.xml 文件中默认有两个模块: spring-boot-starter :核心模块……

    网友NO.591253

    Python程序员面试题 你必须提前准备!(答案及解析)

    在发布《Python程序员面试,这些问题你必须提前准备!》一文后,应广大程序员朋友的强烈要求,小编就Python程序员面试必备问题整理了一份参考答案,希望能对准备换工作的程序员朋友有所帮助。如对答案有疑问,欢迎留言讨论。 小编将这些面试问题大致分为四类: 什么(what)?如何做(how)?说区别/谈优势(difference)以及实践操作(practice)。 What? 1. 什么是Python? Python是一种编程语言,它有对象、模块、线程、异常处理和自动内存管理。可以加入与其他语言的对比。下面是回答这一问题的几个关键点: a. Python是一种解释型语言,python代码在运行之前不需要编译。 b. Python是动态类型语言,在声明变量时,不需要说明变量的类型。 c. Python适合面向对象的编程,因为它支持通过组合与继承的方式定义类。 d. 在Python语言中,函数是第一类对象。 e. Python代码编写快,但是运行速度比编译语言通常要慢。 f. Python用途广泛,常被用作“胶水语言”,可帮助其他语言和组件改善运行状况。 g. 使用Python,程序员可以专注于算法和数据结构的设计,而不用处理底层的细节。 2. 什么是Python自省? python自省是python具有的一种能力,使程序员面向对象的语言所写的程序在运行时,能够获得对象的类python型。Python是一种解释型语言。为……

    网友NO.371801

    程序员的七夕用30行代码让Python化身表白神器

    转眼又到了咱们中国传统的情人节七夕了,今天笔者就带大家来领略一下用Python表白的方式。让程序员的恋人们感受一下IT人的浪漫。 一、词云制作 首先咱们可以用之前介绍过的wordcould包制作词云。wordcloud包安装十分简单。pip即可完成安装 pip install wordclould 然后需要制作一个背景图片,为了应急我用艺术字做了个七夕的图片,如果大家来不及直接图片另存为使用下图即可。 具体制作的词云的代码如下: from wordcloud import WordCloudimport cv2import jiebaimport matplotlib.pyplot as plt#以下是你表白的词语with open('F:/qixi/qixi.txt', 'r') as f: text = f.read()cut_text = " ".join(jieba.cut(text))print(cut_text)#以下用咱们刚刚另存为的图就可以color_mask = cv2.imread("F:/520/mask.jpg")520cloud = WordCloud( font_path=" C:\\Windows\\Fonts\\simkai.ttf", background_color='white', mask=color_mask, max_words=100, max_font_size=40)520wCloud = 520cloud.generate(cut_text)520wCloud.to_file('F:/520/cloud.jpg')plt.imshow(520wCloud, interpolation='bilinear')plt.axis('off')plt.show() 具体效果如下: 二、使用3b1b的Manium制作表白动画 我之前的博客曾经介绍过Github上万星的Python动作制作项目Manium的安装及使用方法(https://www.jb51.net/article/167112.htm)。其实Manium用来表白也是再合适不过了,具体安装的方法可参考前面的文章,编辑example_scenes.py文件这里直接上代码……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明