[發明專利]時間復雜度取決于大整數乘法的大整數除法無效
| 申請號: | 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.szxzyx.cn/pat/books/201110355091.7/2.html,轉載請聲明來源鉆瓜專利網。





