<数据结构与算法分析>读书笔记--数学知识复习
数学知识复习是《数据结构与算法分析》的第一章引论的第二小节,之所以放在后面,是因为我对数学确实有些恐惧感。不过再怎么恐惧也是要面对的。
一、指数
基本公式:

二、对数
在计算机科学中除非有特别的声明,否则所有的对数都是以2为底的。
定义:XA=B 当且仅当logxB=A。
由该定义可以推出几个方便的等式。
定理1:
logaB=logcB/logcA; A,B,C>0,A不等于1
定理2:
logAB=logA+logB;A,B大于0
三、级数
最容易记忆的公式:

四、模运算
如果N整除A-B,那么就说A与B模N同余,记为A===B(mod N)。直观地看,这意味着无论是A还是B被N去除,所得余数都是相同的。于是,81===61====1(mod 10)。如同等号的情况一样,若A===B(mod N),则A+C====B+C(mode N)以及AD===BD(mod N)
五、证明方法
证明数据结构分析中的结论的两种最常用的方法是归纳法证明和反证法证明。证明一个定理不成立的最好的方法是举出一个反例。
1.归纳法证明
由归纳法进行的证明有两个标准的部分。第一步是证明基准情形,就是确定定理对某个小的值的正确性;这一步总是很简单。接着,进行归纳假设。一般说来,它指的是假设定理对直到某个有限数k的所有的情况都是成立的。然后使用这个假设证明定理对下一个值(通常是k+1)也是成立的。至此定理得证(在k是有限的情形下)。
2.反证法证明
反证法证明是通过假设定理不成立,然后证明该假设导致某个已知的性质不成立,从而原假设是错误的。一个经典的例子是证明存在无穷多个素数。为了证明这个结论,我们假设定理不成立。于是,存在某个最大的素数Pk。令P1,P2,....,Pk是依序排列的所有素数并考虑:
N=P1P2P3..Pk+1
显然,N是比Pk大的数,根据假设N不是素数。可是,P1,P2,....,Pk都不能整除N,因为除得的结果总有余数1.这就产生一个矛盾,因为每个整数或者是素数,或者是素数的乘积。
因此,Pk是最大素数的原假设是不成立的,这正意味着定理成立。
未完待续,接下来我要看相关的学习视频,接下来会有补充的。
<数据结构与算法分析>读书笔记--数学知识复习的更多相关文章
- <数据结构与算法分析>读书笔记--最大子序列和问题的求解
现在我们将要叙述四个算法来求解早先提出的最大子序列和问题. 第一个算法,它只是穷举式地尝试所有的可能.for循环中的循环变量反映了Java中数组从0开始而不是从1开始这样一个事实.还有,本算法并不计算 ...
- <数据结构与算法分析>读书笔记--运行时间计算
有几种方法估计一个程序的运行时间.前面的表是凭经验得到的(可以参考:<数据结构与算法分析>读书笔记--要分析的问题) 如果认为两个程序花费大致相同的时间,要确定哪个程序更快的最好方法很可能 ...
- <数据结构与算法分析>读书笔记--函数对象
关于函数对象,百度百科对它是这样定义的: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象.又称仿函数. 听起来确实很难懂,通过搜索我找到一篇 ...
- <数据结构与算法分析>读书笔记--利用Java5泛型实现泛型构件
一.简单的泛型类和接口 当指定一个泛型类时,类的声明则包括一个或多个类型参数,这些参数被放入在类名后面的一对尖括号内. 示例一: package cn.generic.example; public ...
- <数据结构与算法分析>读书笔记--实现泛型构件pre-Java5
面向对象的一个重要目标是对代码重用的支持.支持这个目标的一个重要的机制就是泛型机制:如果除去对象的基本类型外,实现的方法是相同的,那么我们就可以用泛型实现来描述这种基本的功能. 1.使用Object表 ...
- <数据结构与算法分析>读书笔记--运行时间中的对数及其分析结果的准确性
分析算法最混乱的方面大概集中在对数上面.我们已经看到,某些分治算法将以O(N log N)时间运行.此外,对数最常出现的规律可概括为下列一般法则: 如果一个算法用常数时间(O(1))将问题的大小削减为 ...
- <数据结构与算法分析>读书笔记--要分析的问题
通常,要分析的最重要的资源就是运行时间.有几个因素影响着程序的运行时间.有些因素(如使用编译器和计算机)显然超出了任何理论模型的范畴,因此,虽然它们是重要的,但是我们在这里还是不能考虑它们.剩下的主要 ...
- <数据结构与算法分析>读书笔记--模型
为了在正式的构架中分析算法,我们需要一个计算模型.我们的模型基本上是一台标准的计算机,在机器中指令被顺序地执行.该模型有一个标准的简单指令系统,如加法.乘法.比较和赋值等.但不同于实际计算机情况的是, ...
- <数据结构与算法分析>读书笔记--递归
一.什么是递归 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的 ...
随机推荐
- Windows环境使用Nexus-3.x搭建Maven私服
[前言] 本文主要讲解在Wiindows环境下搭建最新出的Nexus 3.x私服. 1.搭建私服的必要性 一般情况下,各个公司的开发团队为了提高开发效率,都会使用项目构建工具进行开发.常见的构建工具有 ...
- [android] 手机卫士欢迎页检测更新
客户端:去服务器获取最新的版本信息 服务器端: 版本信息,最新的版本2.0 最新版本的下载地址:http://xxxxxxxx/mobilesafe2.0.apk 版本的描述信息 客户端如果不升级新版 ...
- 解决Linux服务器tomact-8.0启动慢的问题
环境信息: CentOS release 6.8 tomcat-8.0 JDK1.8 一.启动tomcat #sh /root/tomcat-8.0/bin/startup.sh #tailf /ro ...
- lfs(systemd版本)学习笔记-第1页
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客 ...
- 一次关于()=>({})的使用
今天遇到了一个问题,值得一记 首先在我看项目代码时发现了一个问题 有一个JS的export如下 大家可以注意一下config 这里为什么要如此写法呢? 首先这里用的时ES6的箭头函数 ()=>{ ...
- React中使用百度地图API
今天我们来搞一搞如何在React中使用百度地图API好吧,最近忙的头皮发麻,感觉身体被掏空,所以很久都没来写博客了,但今天我一定要来一篇好吧 话不多说,我们直接开始好吧 特别注意:该React项目是用 ...
- docker 搭建maven 私服
# 搜索镜像 docker search nexus; #拉取nexus镜像docker pull sonatype/nexus; #运行 -id 创建守护式容器--privileged=true 授 ...
- list中放map的几种方式
package Test; import java.util.*; public class Test { public static void main(String[] args) { //第一种 ...
- chrome新版打开新标签页自动打开谷歌主页
最近更新了chrome,发现新版有个问题. 打开标签页时会自动跳转至 https://www.google.com/webhp?ie=UTF-8&gws_rd=cr&rct=j 导致我 ...
- 异常检测(anomaly detection)
版权声明:本文为博主原创文章,转载或者引用请务必注明作者和出处,尊重原创,谢谢合作 https://blog.csdn.net/u012328159/article/details/51462942 ...