关于自然数集N到素数集P的一个单射的三种构造

来源:互联网 发布:java iterator 将int 编辑:程序博客网 时间:2024/06/06 13:08

昨天在给组织同学们上课讲simhash算法的时候考虑了如下问题:

如何判断如下两个自然数构成的集合
S_1=\{e_1,e_2....,e_n\}S_2=\{b_1,b_2,...,b_n\}相同

其中提到假设构造hash函数F_e=\prod_{i=1}^n f(e_i)F_b=\prod_{i=1}^n f(b_i)后是否能通过F_eF_b是否相同来判定两个集合相同的问题的时候。文杰同学说只要映射到素数就可以了,这个想法看似是可以的。如今仔细一想,有点问题,假设e_ib_i的取值是有限个自然数,那么没有问题,因为素数有无穷多个,但是假设取值是无穷多个呢(即整个自然数集N)?是否存在这样的映射f呢?更进一步是否存在自然数集N到素数集P的一一映射?素数是否是可数的?

经过了2+小时的思考似乎解决了这个问题,当然只是构造了自然数集N到素数集P的一个单射。需要部分抽象代数知识,下面是构造的过程:

引理1:(a,m)=1,设k为模m的剩余类加群中元素a的阶,u,v是任意整数,那么a^u\equiv a^v (mod m)\Leftrightarrow u\equiv v (mod k)
引理1证明:
充分性:由已考虑带余除法u=pk+t,v=qk+t,p,q,t \in N,0\leq t \leq k.那么a^u\equiv a^{(pk+t)}\equiv a^{pk}\cdot a^t\equiv a^t (mod m),同理,a^v\equiv a^t (mod m),故充分性得证。
必要性:设l=u-v,考虑带余除法l=kq+r,0 \leq r < k.由于a^u\equiv a^v (mod m)(a,m)=1所以有a^l \equiv 1 (mod m).故a^{kq}\cdot a^r \equiv 1(mod m),于是 a^r \equiv 1(mod m),又由于0 \leq r < k.,所以r=0.
综上引理1得证。

引理2:p为奇素数,若2^p \equiv 1(mod q),那么2模q的阶为p
引理2证明:q2^p-1的一个素因子,那么考虑2模q的阶k,而2^p \equiv 1(mod q),故由阶的定义有k|p.注意到p为素数,所以k=1或者k=p,但k=1时代入2^p \equiv 1(mod q)知道矛盾!故k=p.

引理3:(费马小定理)q为素数,那么有2^{q-1} \equiv 1 (mod q).
或者如下更强形式
(欧拉定理)(a,n)=1,那么a^{\phi(n)}\equiv 1(mod n),具体可以参见《近世代数.张禾瑞.P97》

回到原问题,考虑梅森素数的形式,p为素数,2^p-1的素因子qa_1=p.设2模q的阶为k,由引理2有k=p,由引理3和引理1有p|q-1,故q=px+1,x \in N,取a_2=q,注意到a_2=q=px+1>p=a_1,继续考虑梅森素数形式2^{a_2}-1的素因数便得到a_3….

如此构造便有单调素数列\{a_i\}.故完成自然数集N到素数集P的一个单射的构造。

——————————————————————
那么反过来呢?素数和自然数之间是否存在一一映射,实际上,这是非常大的问题,假设这个一一映射被构造出来,那么相当于得到了精确的素数公式,天啊,这是了不起的成就,当然我本人是相信这样的素数公式是不存在的,否则密码界计算机界有大麻烦。关于素数公式或者黎曼猜想的知识大家可以参见《素数之恋》。

补充两种构造:(思路泉涌系列)
二、利用伯特兰-切比雪夫定理:设n为大于1的自然数,那么n2n之间必存在素数,那么只要构造区间[2,4],[4,8],...,[2^n,2^{n+1}],….即可以得到单调素数列。关于本定理的介绍可以参见下面的连接:
http://baike.baidu.com/link?url=6IAhYlc7tU1elPJZK0U7HDCORP9ZbVQyHcJW7Emli_Y6azulr63Wt2ZRzl4QPrGY9sM3iwJjmCODZtBn2kVEwa

三、上面的定理太高端了,但是可以利用他的思路来构造一个简单的证明!考虑一个给定的足够大的自然数n使得区间[1,n]至少有1个素数设为a_1,下面考察n!+1,若n!+1为素数,那么令a_2=n!+1,若为合数,那么由于(n!,n!+1)=1所以至少有两个素数在区间[n+1,n!+1]之间,取小的为a_2,继续考虑(n!+1)!+1,得到a_3....,如此便得到互不相同的单调素数列。

0 0
原创粉丝点击