离散数学计算小于n的素数的个数公式
离散数学--11.1-2初等数论

(n)
n/ln n
(n)
n/ln n
1.159 1.132 1.104
10
素数的分布(续)
定理11.3 当n≥67时,
ln n 3 2 n
( n)
(n)
ln n
1 2
推论(素数定理)
n
lim
1
n / ln n
11
素数测试
定理11.4 如果a是合数, 则a必有小于等于 a 的真因子. 证 由性质11.1.6, a=bc, 其中1<b<a, 1<c<a. 显然, b和c中 必有一个小于等于 a . 否则, bc>( a )2=a, 矛盾. 推论 如果a是合数, 则a必有小于等于 a 的素因子. 证 由定理, a有小于等于 a 的真因子b. 如果b是素数,
第11章
初等数论
1
第11章
• 11.1 素数
初等数论
• 11.2 最大公约数与最小公倍数
• 11.3 同余
• 11.4 一次同余方程与中国剩余定理 • 11.5 欧拉定理和费马小定理
2
11.1 素数
• 整除、倍数和因子 • 带余除法
• 素数与合数
• 算术基本定理 • 筛法
3
整除、倍数和因子
设a, b是两个整数,且b≠0. 如果存在整数c 使 a=bc,则 称a 被b 整除,或 b 整除a,记作 b|a. 此时, 又称 a 是b 的 倍数,b是a 的因子. 把 b 不整除 a 记作 b a. 例如, 6有8个因子±1, ±2, ±3和±6. 今后只考虑正整数的正因子. 平凡因子 : 1和自身 真因子 : 除1和自身之外的因子 例如, 2, 3 是 6 的真因子
黎曼猜想_论小于给定数值的素数个数

数,除了 1 之外,对于每个有限的 s ,其值都是有限的. 它也表明,当 s 为偶的负 整数时, (s) 为 0.(1)[4]
如果 s 的实部为负的话,则积分也可通过取别的路径来计算. 与按正方向围
绕先前描述的区域的路径不同,这次的路径是按负方向围绕上述区域的余集,这
是因为对于所有的充分大模的 x ,积分是无穷小的. 在这个区域的内部,仅当 x 等 于 2i 的整数倍时,被积函数才是不连续的,所以积分就等于那些按负方向围 绕这些点的积分之和. 围绕点 n2i 的积分值为(n2i)s1(2i) ,因此,
立即得出
(s 1) (s)
x s1dx 0 ex 1
如果我们现在考虑围道积分
* 全文摘自《黎曼全集》第一卷,127-135 页.
-1-
( x)s1dx ,
ex 1 其中积分路线沿一条闭路径按正方向从 到 ,这条路径内部包含 0 点
但不包含被积函数的其他不连续点,则容易看出它等于
(esi
有限的,而且 (t) 的其他因子的对数亦然,所以,显然仅当t 的虚部位于 1 i 和 1 i
2
2
之间时, (t) 才可能为 0. 方程 (t) 0 的实部位于 0 和T 之间的根,其数目约为
-3-
T 2
log
T 2
T 2
.
这是因为,积分 d
log (t)(忽略一个阶为 1 T
的次要项)的值为 T
1)
1
x
(见 Jacobi 全集第 1 卷第 235 页),所以我们有
(
s
1)
s 2
(s)
(
x)x
s 2
1
dx
1
(
1
西安交通大学离散数学期末考试高分题库全集含答案

3052--西安交通大学离散数学期末备考题库3052奥鹏期末考试题库合集单选题:(1)每个非平凡的无向树至少有()片树叶。
A.1 B.2 C.3 D.4 正确答案:B(2) A.A B.B C.C D.D 正确答案:C (3)下列公式中,()是可满足式。
A.AB.BC.CD.D 正确答案:D(4) A.A B.B C.C D.D 正确答案:D (5)设半序集(A,≤)关系≤的哈斯图如下所示,若A的子集B = {2,3,4,5},则元素6为B的( )。
A.下界B.上界C.最小上界D.其他答案都不对正确答案:B (6)设集合 A = {1,2,3,4}, A上的关系R={(1,1),(2,3),(2,4),(3,4)}, 则R具有( )。
A.自反性 B.传递性 C.对称性 D.其他答案都不对正确答案:B (7)设G是一个12阶循环群,则该群一定有()个不变子群。
A.2 B.4 C.6 D.8 正确答案:C (8)下列图中,()是平面图。
A.AB.BC.CD.D 正确答案:C (9)如果命题公式G=P∧Q,则下列之一哪一个成立()。
A.AB.BC.CD.D 正确答案:B (10)在任意n阶连通图中,其边数()。
A.至多n-1条 B.至少n-1条 C.至多n条 D.至少n条正确答案:B(11) A.A B.B C.C D.D 正确答案:B (12)函数的复合运算“ο”满足() A.交换律 B.结合律 C.幂等律 D.消去律正确答案:B (13)设<G, *>是6阶群,H≤G,则<H, *>的阶数不可能是()A.1 B.3 C.2 D.4 正确答案:D (14)如下哈斯图所对应的偏序集中,哪个不是格?()A.AB.BC.CD.D 正确答案:C (15)设G是一个12阶循环群,则该群一定有()个不变子群。
A.2B.4C.6D.8 正确答案:C (16)A.Klein—4群B.循环群C.置换群D.半群,不是群正确答案:B (17)设X、Y是两个集合|X|=n,|Y|=m,则从X到Y可产生()个二元关系。
素数公式

素数公式素数公式,在数学领域中,表示一种能够仅产生素数的公式。
即是说,这个公式能够一个不漏地产生所有的素数,并且对每个输入的值,此公式产生的结果都是素数。
根据素数的一个定义:“若自然数n不能被不大于根号n任何素数整除,则n是一个素数”。
[1]这个公式可以一个不漏地产生所有素数,而不会混入一个合数。
例如29,29不能被不大于根号29的素数2,3,5整除,29=2×14+1=3×9+2=5×5+4。
29小于7²=49,所以29是一个素数。
目录1 多项式形式的素数公式2 丢番图方程形式的素数公式3 带高斯函数的素数公式3.1 Mills 公式3.2 威尔逊定理的利用3.3 另一个用高斯函数的例子4 递推关系5 其他公式6 参见7 参考文献多项式形式的素数公式可以证明,一个多项式P(n),如果不是常数的话,不会是一个素数公式。
证明很简单:假设这样的一个多项式P(n)存在,那么P(1)将是一个素数p。
接下来考虑P(1+ kp)的值。
由于,我们有。
于是P(1 + kp)是p的倍数。
为了使它是素数,P(1 + kp)只能等于p。
要使得这对任意的k都成立,P(n)只能是常数。
应用代数数理论,可以证明更强的结果:不存在能够对几乎所有自然数输入,都能产生素数的非常数的多项式P(n)。
欧拉在1772年发现,对于小于40的所有自然数,多项式P(n) = n2 + n + 41的值都是素数。
对于前几个自然数n = 0, 1, 2, 3……,多项式的值是41, 43, 47, 53, 61, 71……。
当n等于40时,多项式的值是1681=41×41,是一个合数。
实际上,当n能被41整除的时候,P(n)也能被41 整除,因而是合数。
这个公式和所谓的质数螺旋(en:Ulam spiral)有关。
实际上,欧拉发现了这样一个事实:a0+0=a1,a1+2=a2,a2+4=a3,a3+6=a4,...,a(a0).到a(a0)一项就是合数,其它都是素数。
素数个数公式及有关猜想证明

素数个数公式及有关猜想证明引理:若21=p ,32=p ,…j p …,i p ,为连续素数,1≤j ≤i,且j p | n ,1≤m ≤n ,则 m ≠0(mod j p ) 的数的个数)(n y i 可表示为∏=-⋅=ij ji p n n y 1)11()(. 证明:I.当i=1时,∵ 1p =2 , 1p |n ∴ )11()211(2)(11p n n n n n y -⋅=-⋅=-= 结论成立。
Ⅱ.假设i=k 时,结论成立,即:∏=-⋅=kj jk p n n y 1)11()( 成立。
当i=k+1时,∵ 1p |n ,2p |n ,…, k p |n ,据归纳假设 ∴ ∏=-⋅=kj jk p n n y 1)11()( 因为1+k p |n ,所以 m=o (mod 1+k p ) 的数有1+k p n个, 去了k p p p ,,,21 的倍数后,余 ∏=+-⋅kj jk p p n 11)11( 个 ∴ ∏∏=+=+-⋅--⋅=kj j k kj j k p p n p n n y 1111)11()11()()11()11(11+=-⋅-⋅=∏k kj j p p n ∏+=-⋅=11)11(k j j p n∴ i=k+1时,结论 ∏+=+-⋅=111)11()(k j jk p n n y 成立。
由I 、Ⅱ,当i 为任何正整数,结论都成立。
引理证毕。
定理1:(素数个数连乘积式公式):若21=p ,32=p ,…k p …,i p为连续素数,0≤k ≤i 且k pn 的素数个数记为π(n),则有公式π(n )=2+ 221111()(1)k ik k k j j p p p λ+==⎡⎤--⎢⎥⎢⎥⎣⎦∑∏+g(n)其中g(n)满足:-)(1+i p π<g(n)< )(1+i p π,λ微单减。
证明: ∵ n =1+(4-1)+(9-4)+(25-9)+…+)(221k k p p -++…+)(2i p n - 区间 (212,+k k p p )的整数去掉21=p ,32=p ,…k p 的倍数后,余下全为素数。
求素数的算法及其复杂度分析

关于素数的算法是信息学竞赛和程序设计竞赛中常考的数论知识,在这里我跟大家讲一下寻找一定范围内素数的几个算法。
看了以后相信对大家一定有帮助。
正如大家都知道的那样,一个大于1的整数a,如果都不能小于√a的数整除,那么整数a即为素数。
我们可以用这个性质用最直观的方法来求出小于等于n的所有的素数。
num = 0;for(i=2; i<=n; i++){ for(j=2; j<=sqrt(i); j++)if( i%j==0 ) break;if( j>sqrt(i) ) prime[num++] = i; //这个prime[]是int型,跟下面讲的不同。
}这就是最一般的求解n以内素数的算法。
复杂度是o(n*sqrt(n)),如果n很小的话,这种算法(其实这是不是算法我都怀疑,没有水平。
当然没接触过程序竞赛之前我也只会这一种求n以内素数的方法。
-_-~)不会耗时很多.但是当n很大的时候,比如n=10000000时,n*sqrt(n)>30000000000,数量级相当大。
在一般的机子它不是一秒钟跑不出结果,它是好几分钟都跑不出结果,这可不是我瞎掰的,想锻炼耐心的同学不妨试一试~。
在程序设计竞赛中就必须要设计出一种更好的算法要求能在几秒钟甚至一秒钟之内找出n以内的所有素数。
于是就有了素数筛法。
(我表达得不清楚的话不要骂我,见到我的时候扁我一顿我不说一句话。
)素数筛法是这样的:1.开一个大的bool型数组prime[],大小就是n+1就可以了.先把所有的下标为奇数的标为true,下标为偶数的标为false.2.然后:for( i=3; i<=sqrt(n); i+=2 ){ if(prime[i])for( j=i+i; j<=n; j+=i ) prime[j]=false;}3.最后输出bool数组中的值为true的单元的下标,就是所求的n以内的素数了。
原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数。
素数的规律公式

素数的规律公式素数,这两个字听起来是不是有点神秘?就好像藏在数学森林深处的宝藏,等待着我们去探索和发现。
我还记得,有一次我在课堂上给学生们讲素数的知识。
当时,有个小男生瞪着大眼睛,一脸疑惑地问我:“老师,素数到底有啥规律啊?为啥要研究它?”这可把班上的同学都逗乐了。
我笑着回答他:“别急别急,这就像解开一个神秘的密码,咱们一步步来。
”那咱们先来说说啥是素数。
素数啊,就是只能被 1 和它自身整除的正整数。
比如说 2、3、5、7 这些。
可别小看这些数字,它们藏着好多有趣的规律呢!要找到素数的规律公式,这可不是一件容易的事儿。
数学家们可是费了好大的劲儿。
就拿筛选法来说吧,咱们从 2 开始,把 2 的倍数都划掉,然后再找下一个没被划掉的数,也就是 3,再把 3 的倍数划掉,以此类推。
这个过程就像是在一堆数字里挑珍珠,一颗一颗地筛选出素数。
还有一个有趣的规律,那就是素数之间的间隔似乎没有什么明显的规律。
有时候两个素数挨得很近,有时候又隔得老远。
比如说 2 和 3就紧挨着,可 7 和 11 之间就隔了一个 9 。
这就像是数字们在玩捉迷藏,你永远不知道下一个素数会藏在哪里。
再来说说著名的哥德巴赫猜想,它说的是任何一个大于 2 的偶数都可以写成两个素数之和。
这个猜想就像是一座数学的高峰,吸引着无数数学家去攀登。
虽然到现在还没有被完全证明,但大家一直在努力。
在研究素数的过程中,我们会用到很多数学方法和工具。
比如数学归纳法,通过一步步的推理来证明一些关于素数的结论。
还有解析数论,用复杂的函数和公式来探索素数的分布规律。
回到咱们最开始提到的那个小男生的问题,研究素数到底有啥用呢?其实啊,素数在密码学里可是有着至关重要的作用。
现在的网络安全、信息加密都离不开素数的规律。
想象一下,如果没有素数的这些特性,我们的网络世界可能就会变得不安全,那可就麻烦啦!总之,素数的规律公式就像是一个神秘的宝藏,虽然寻找的过程充满了挑战,但每一次的发现都能让我们对数学的世界有更深刻的理解。
离散数学4 - 算法、素数和矩阵

矩阵
矩阵行列
a11 a12 a1 j a1n a21 a22 a2 j a2n
ai1 ai2 aij ain
am1 am2 amj amn
小测验
• 排序,奇数在前,偶数在后,奇数从小到大,偶数从大 到小。
• 见程序。
递归与迭代
阶乘
procdure factorial(n : 正整数) if n = 1 then x := 1 else x := n * factorial(n-1)
procdure iterative factorial(n : 正整数) x := 1 for i := 1 to n x := i *n
矩阵转置
• A = [aij ]为m×n的矩阵。交换A的行和列得到n×m的矩 阵,称为A的转置,记作At。
A 1 0 2 4 3 0
i := i + 1 if i≤n then location := i else location := 0 {location是等于x的下标,戒是0(找丌到)}
二分搜索时间复杂度
最多需要Θ(log n)次比较。 procedure binarysearch(x:整数,a1,a2,...,an:递增整数)
插入排序
• 插入排序是一种简单的排序算法,但通常丌是最有效的。
大O记号
• 大O记号(Big O notation)是用于描述函数渐近行为的 数学符号。更确切地说,它是用另一个(通常更简单的) 函数来描述一个函数数量级的渐近上界。在计算机科学 中,它在分析算法复杂性的方面非常有用。