数学思维修炼

最近想阅读一些数学方面的资料,但是又想和自己的工作联系上,因此就找到了这本《程序员的数学思维修炼(趣味解读)》,下面会对本书的知识点做个梳理。

1.2.6 数的阶乘

1.2.7 大整数

1.3.3 二进制运算

1.3.5 十进制和二进制之间的转换 以基数B再取余的方法

1.4 八进制、十六进制、六十进制

2.1.1 素数

2.1.3 试除法(循环到√n即可),数学家筛选法,Eratosthenes寻找100以内的素数的算法:依次去除2、3、5、7的倍数的整数

2.1.4 素数定理

2.2.2 孪生素数

2.2.3 中国剩余定理

2.3 RSA算法,非对称加密,原理和实践

2.4 哥德巴赫猜想

2.5 梅森素数,2^p-1得到的是素数,其中p是素数

3.1.1 递归,按照先前定义的同类对象

3.1.2 德罗斯特效应(递归的一种视觉形式)

3.1.4 确定递归公式和边界条件

3.1.5 最大公约数,辗转相除法

3.2.2 递归的阶乘

3.2.4 递归的基本思想:把规模大、难解决的问题变为规模小、易解决

3.3 汉诺塔 移动次数:2^n-1

3.4 斐波那契数列

4.1 计数的两个问题:重复和遗漏

4.2.1 乘法原理,穷举法

4.2.2 核心是分步,每步只完成其中的一部分

4.2.3 棋子的放法

4.3.1 加法原理

4.3.2 核心是分类,每类只完成其中的一部分

4.4.1 与顺序有关的是排列,枚举法。P.n^m=n*(n-1)...(n-m+1)

4.4.2 与顺序无关的是组合,C.n^m=P.n^m÷P.m^m

4.4.4 可重排列,电话号码和汽车牌照:n^m,n个不同元素的m种可重排列数

4.5 计算机字符编码,ASCII码、双字节、4字节和Unicode

4.6 密码长度和字符数

5.1.2 五条余数的性质

5.1.3 用余数进行分组

5.2 日历中的数学,计算星期几

5.3 发牌魔术

5.4 通信中的奇偶校验,判断二进制代码中的位是1的个数,奇数或偶数

5.5.1 吕洞宾不能坐首位

5.5.3 约瑟夫环

5.6 智叟分牛

6.1 概率(或然率),抛硬币

6.1.4 必然事件和不可能事件

6.1.5 概率的四个基本性质

6.2 狄青的百枚钱币

6.3 三个骰子的赌博

6.4 彩票

6.5 用概率估算鱼塘中鱼的重量

7.1.1 翻n番就是:基数 * 2^n

7.1.2 翻倍,在基数的基础上增加n倍:基数 * (n+1)

7.2.1 投资回报率:ROI = 年利润 / 投资总额 * 100%

7.2.2 单利:利润 = 投资额 * 利率 * 投资期,总收入 = 投资额 * (1 + 利率 * 投资期)

7.2.3 复利就是将上期利息加入本金中,然后一并计算利息的一种方法

7.2.5 信用卡还款

7.2.6 爱因斯坦的72法则,用72除以增长率(回报率)可快速估计出投资倍增或减半所需的时间

7.3 纸张对折:对折n次纸张厚度 = 原厚度 * 2^n

7.4 一棋盘的麦子:第n格麦粒数 = 2^n-1

7.5 折半法,假硬币

8.1.3 程序中的逻辑判断:程序 = 算法 + 数据,算法 = 逻辑 + 控制

8.2.1 命题:能判断真假的陈述句,例如中国位于亚洲

8.2.3 简单命题

8.2.4 复合命题

8.2.5 六种联接词:合取(且)、析取(或)、否定(非)、充分条件(如果...那么...)、必要条件(只有...才...)和充要条件(当且仅当)

8.3 布尔逻辑,逻辑或、逻辑与、逻辑非、逻辑异或

8.5 卡诺图:将此函数所有命题的真假组合以二维表的形式表示

9.1.1 演绎推理:通过演绎得出具体陈述或个别结论的过程

9.1.2 三段论,大前提、小前提和结论

9.1.3 选言推理,有两个前提的演绎推理,其中一个是选言命题(包含两个或多个的选择)

9.1.4 假言推理,根据假言命题的逻辑性质进行的推理:充分、必要和充分必要条件

9.1.5 关系推理,至少有一个关系判断,并按关系的逻辑性质进行推演

9.2.1 归纳推理:从个别性知识推出一般性结论,其中前提是真实的,结论未必为真,例如守株待兔

9.2.2 完全归纳推理:每一对象都具有或不具有某种属性,从而推出该类对象都具有或不具有某种属性

9.2.3 不完全归纳推理:某一类事物中的一部分对象具有或不具有某种属性,......,例如哥德巴赫猜想,所有大于5的奇数都可以分解为3个素数之和

10.1 花盆摆放

10.2 残缺的棋盘

10.3 线条魔术

10.4 图形拼接,均分三角形和拼接正方形

11.1 田忌赛马,统筹学目的:依据给定条件和目标,从众多方案中选择最佳方案

11.2 生活中的统筹规划

11.2.1 匆忙的早晨

11.2.2 节约运输成本

11.3 著名的动态规划求解问题:背包问题。

原文地址:https://www.cnblogs.com/strick/p/9378124.html

时间: 2024-11-06 03:34:31

数学思维修炼的相关文章

【程序员的数学思维修炼】总结一

第一章 数据的表示 主要学习了会了 0 不是什么都没有,比如在java里BigDecimal里面是根据最高的那个精度来的,比如1.99+0.01=2.00 这时候提交可能会判错,所以要去掉后导零 为啥要用二进制 还有哪些进制,神奇的八卦,八进制.钟表使用的十二进制.半斤八两十六进制.60年一个甲子六十进制 关于二进制,最主要的是要熟练掌握位运算!一些做题中常用的技巧,比如求n的m次方,判断奇偶,统计一的个数, 这一章里还提到了20!阶乘问题,还记得怎么解决大数阶乘吗. 第二章 神奇的素数 1.验

《程序员的数学思维修炼》 读书笔记 Chapter 1 数据的表示

1.未赋值的变量--初始化的必要性. 无初始化时,视语言的不同可能有以下几种情况 1)赋值0 2)赋值空 3)不改变该内存块原值,即随此刻值. 4)编译失败 2.除数为0的判断防ERROR 3.大整数的解决方法 1)在Pascal中超过数据类型上限是会报错的.C等则可能出奇葩数据.实质上更增加了挑错难度.(C类该特性待验证) 2)此时就需要我们所称的 高精度 计算--模拟算法. 通过String(AnsiString)或数组表示一个大整数 根据人类计算思维编写计算逻辑 加减乘代码(http://

《程序员的数学思维修炼》 读书笔记

电子书定价:     ¥ 45.00       这是什么?                     纸书定价:     ¥ 45.00       Kindle电子书价格:     ¥ 1.99                   为您节省:     ¥ 43.01      (0.4折)            ~ 周颖   等 (作者) 发售日期: 2014年4月1日 本书是一本专门为程序员而写的数学书,介绍了程序设计中常用的数学知识.本书门槛不高,不需要读者精通很多高深的数学知识,只需要读

程序设计中的数学思维函数总结(代码以C#为例)

最近以C#为例,学习了程序设计基础,其中涉及到一些数学思维,我们可以巧妙的将这些逻辑问题转换为代码,交给计算机运算. 现将经常会使用到的基础函数做一总结,供大家分享.自己备用. 1.判断一个数是否为奇数 定义:整数中,能被2整除的数是偶数,不能被2整除的数是奇数 思路点:n%2!=0则为奇数 /// <summary> /// 判断一个整数是不是奇数 /// </summary> /// <param name="n">要判断的整数</para

(总结)程序员的思维修炼.

第一章:尝试改变自己. 第二章:德雷福斯模型.从整体角度看待问题.保持实践.学习如何学习的技能. 第三章:双cpu,L与R.多用脑,多记录想法.积极的情感.什么是创作?.多编码,深思熟虑,专注实践. 第四章:增加感观体验.R型开路,L型紧跟(从整体到局部).使用隐喻(异类联想,培养幽默).改变解决问题的角度 第五章:“很少”不意味着“没有”.从多个角度看待问题.你确信?你怎么知道的.凡事总有两面性. 第六章:学习能力可能是成功的最重要因素.技术不是最重要的,持续学习才是最重要的.教育的含义:从学

《程序员的思维修炼》摘抄start:2014年9月27日19:27:07

程序员的思维修炼:摘抄:考虑到社会中各个相关团体的复杂交互影响和社会的持续变化,在我看来当前最重要的两项技能就是: ?沟通能力: ?学习和思考能力.软件行业正在逐步提高沟通能力.特别是敏捷方法(见注解栏),强调了团队成员之间.最终客户和开发团队之间的沟通交流. 程序员需要不断地学习——不仅仅是学习新技术,还包括应用的问题域.用户社区的奇思妙想.同事的古怪习惯.行业的八卦新闻和项目演进的重要特征,我们必须学习学习再学习,持续不断地学习,然后把学习成果应用到解决日常遇到的一切新旧问题上. 专家精通者

hdu 4710 Balls Rearrangement (数学思维)

题意:就是  把编号从0-n的小球对应放进i%a编号的盒子里,然后又买了新盒子, 现在总共有b个盒子,Bob想把球装进i%b编号的盒子里.求重置的最小花费. 每次移动的花费为y - x ,即移动前后盒子编号的差值的绝对值. 算法: 题目就是要求                  先判断  n与  lcm(a,b)的大小,每一个周期存在循环,这样把区间缩短避免重复计算. 如果n>lcm(a,b)则   ans = (n/lcm)*solve(lcm)+solve(n%lcm) 否则   ans =

Acdreamoj1115(数学思维题)

题意:1,3是完美数,如果a,b是完美数,则2+a*b+2*a+2*b,判断给出的n是否是完美数. 解法:开始只看出来2+a*b+2*a+2*b=(a+2)*(b+2)-2,没推出更多结论,囧.没办法,只能暴力将所有的完美数求出来然后查表.正解是c+2=(a+2)*(b+2);完美数都是有质因子3或5组成的(5本身除外): 自己暴力代码: /****************************************************** * author:xiefubao *****

数学思维和编程思维

1.编程没有数学基础不行 2.但懂数学不等于懂编程 举一个例子: 求1+2+3+4+……+99+100的和. 数学解法通常是: 1.(1+100)*100/2=5500 2.小学生的解法:1+2=3.3+3=6.……这样累算下去. 编程解法呢?跟数学解法2相同,代码如下: static void Main(string[] args) { int theResult = 0; for (int i = 1; i <= 100; ++i) { theResult += i; } Console.W