[发明专利]时间复杂度取决于大整数乘法的大整数除法无效
申请号: | 201110355091.7 | 申请日: | 2011-11-01 |
公开(公告)号: | CN103092568A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 刘海云 | 申请(专利权)人: | 刘海云 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 524099 广东省湛江市赤*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 时间 复杂度 取决于 整数 乘法 除法 | ||
技术领域
本发明主要提供一种特殊的分治递归运算的大整数除法(包括整除的商值及整除后取余数)。这种算法主要应用于计算机领域,尤其是加密技术中。
发明背景
当前公开或使用的大整数除法即使采用Knuth的经典名著“The Art ofComputer Programming”的第4.3.1节中的猜商值公式来计算,也需要多次试运算,所有这些大整数除法最大的缺点是时间复杂度:T(n)=O(n2)这与大整数乘法相比差远了。因此减少试运算的次数,降低时间复杂度对大整数除法具有特别重要的意义。本文依据全新的计算理论,构造了独特的大整数除法计算方法,文中实施例使试运算出现的概率远低于现有算法,即使出现也只需一次加法运算,不仅如此,更为重要的是本文采用特殊的分治递归的方法充分利用大整数乘法,使大整数除法的时间复杂度等于大整数除法中所采用的大整数乘法的时间复杂度,例如大整数除法中采用Karatsuba乘法加速时,本文中的大整数除法时间复杂度:如果采用其他更快的大整数乘法,本算法会更快,这就使数值很长的大整数除法的计算速度大幅提高,例如当被除数的长度为4194304个四字节,除数长度为2097152个四字节时,本算法中采用Karatsuba乘法加速时的速度为现有大整数除法速度的30倍左右。
发明内容
本文在这部分将推出一种全新的大整数除法计算理论,并利用该理论构造分治的大整数除法,在分治中充分利用大整数乘法,以达到加速目的。请看下面的推理:
设大整数运算过程中采用h(大于1的整数)进制,
正整数集合:Z={x| x>0并且[x]=x}
集合1:H={x| 0≤x<h并且x为整数}
集合2:H2={x| 1≤x<h并且x为整数}
任何有限长度的大整数除法都可转化为非负大整数的除法,因此除了最后一段外,下文只涉及非负大整数除法,非负大整数除法可表示如下:
C=A/B (A≥0,B>0,C≥0并且A和B都是整数) (1)
当A=0时,显然C=0, (2)
当A<B时,显然C的整数部分为0, (3)
当A≥B时,可通过将被除数和除数都乘以hm从而使A和B都转化为不小于hm的整数,并使结果C保持不变,其中m≥2且m∈Z,因此(1)式在排除(2)、(3)后,可转化为下式:
C=A/B (A≥B,B≥hm,m≥2,C>0且A、B和m都是正整数) (4)
在(4)中A=(A1A2A3…Ai-1Ai)h可用多项式表示如下:
A=A1hi-1+A2hi-2+A3hi-3+…+Ai-1h1+Ai (5)
其中i∈Z,A1∈H2,Ar∈H(1<r≤i,且r为整数),h为进制基数,用AH表示A的前m项,即
AH=A1hi-1+A2hi-2+A3hi-3+…+Am-1hi-(m-1)+Amhi-m (6)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于刘海云,未经刘海云许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110355091.7/2.html,转载请声明来源钻瓜专利网。