CN106355027A - 一种分解大奇数的方法 - Google Patents
一种分解大奇数的方法 Download PDFInfo
- Publication number
- CN106355027A CN106355027A CN201610820083.8A CN201610820083A CN106355027A CN 106355027 A CN106355027 A CN 106355027A CN 201610820083 A CN201610820083 A CN 201610820083A CN 106355027 A CN106355027 A CN 106355027A
- Authority
- CN
- China
- Prior art keywords
- binary tree
- odd number
- big
- tree
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Z—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
- G16Z99/00—Subject matter not provided for in other main groups of this subclass
Landscapes
- Small-Scale Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种分解大奇数的方法,其特征在于采用二叉树的方式选取被除数范围,将被除数范围内的二叉树分解成子二叉树,分配给多台计算机或计算单元进行并行计算,来获得该大整数的因数。本发明与已有技术相比,具有易于缩小搜索范围、加快大整数分解的优点。
Description
技术领域
本发明涉及一种数的分解方法。
背景技术
大整数,理论上即使采用世界上最快的计算机进行分解,也需要以年为单位的时间,因此,大整数广泛地应用到加密领域中,而获得一个大整数的全部分解因数则是建立密钥的关键。而现今,大整数的分解至今是一个世界难题。人类一直在不停地寻找有效解决该问题的方法,但至今尚无明显成效。
发明内容
本发明的发明目的在于提供一种能加快大奇数分解的方法。
本发明是这样实现的,首先,先将大整数分解成大奇数m,如果大整数是大奇数m,则直接进入大奇数m的分解.大奇数m的分解是这样实现的,先确定大奇数m在二叉树T中的位置,二叉树T是从最顶端的结点3开始,依据奇数由小到大,由上到下,由左到右分布在二叉树T上,即3为二叉树T最顶的结点,亦即根结点,3往下分成二叉,左叉是5,右叉是7;5和7分别向下分成二叉,5和7成为向下分成二叉的子根结点,5的左叉是9,右叉是11,7的左叉是13,右叉是15,这样一直分叉下去,从而形成二叉树T。二叉树T从最顶的3开始,从上往下形成多层结点层L,0≤L;每层有2L个奇数(如0层是20=1,1层是21=2, 2层是22=4….),第L层的第P个数的大小是:2×2L+1+2×(P-1),1≤P ≤2L,大奇数m在二叉树T中的层数是K=-1,然后,用二叉树T中取整的K/2层及其以上层数中的奇数除大奇数m,若不能除尽,则该大奇数是素数;若有一个数能除尽,则该奇数是大奇数m的一个因数,相除运算采用多台计算机或计算单元同时进行,即将二叉树T中K/2层及其以上层数中的奇数划分成数个子二叉树Tn,具体是:先确定子二叉树Tn的层高h0,0≤h0,依据层高h0将二叉树T之K/2层及其以上层的全部奇数分成数层子二叉树树组;每层子二叉树树组由D个子二叉树Tn组成,D=2(S×(h0+1)),0≤S;下层每个子二叉树树组最顶端的结点是上层子二叉树树组中子二叉树底层结点的其中结点,然后,将数个子二叉树Tn有机地分配(如平均分配)给数台计算机或计算单元同时进行大奇数m与子二叉树Tn中的奇数进行相除,以获得大奇数m的因数,每个子二叉树由一台计算机或计算单元负责计算。
由于大奇数的因数一定是奇数,而且,由于大于大奇数m必含有二叉树T中K/2层及其以上层的因数,因此大奇数m与二叉树T中K/2及其以上层数中的奇数相除,必能获得该大奇数m的因数。理论依据如下:
二叉树T中每个节点的奇数A,该节点奇数A的左叉奇数是2×A-1,右叉奇数是2×A-1,如3的左叉奇数是2×3-1=5,右叉奇数是2×3-1=7,那么L层中左边第一个奇数的数值是:
2×……(2×(2×(2×3-1)-1)-1)……-1=2×2L+1, 0≤L,
L层中右边第一个奇数的数值是:
2×……(2×(2×(2×3+1)+1)+1)……+1=4×2L-1, 0≤L,
L/2层中右边第一个奇数的数值是:
4×2L/2-1, 0≤L,
L/2+1层中左边第一个奇数的数值是:
2×2(L/2+1)+1, 0≤L,
(4×2L/2-1)×(2×2(L/2+1)+1)=8×2(L+1)-1>4×2L-1,
即使考虑L/2不是整数而取整的情况下,
(4×2[L/2]-1)×(2×2([L/2]+1)+1)=8×2L-1>4×2L-1,
由于大奇数的因数一定是奇数,因此,大奇数m与二叉树T中K/2层及其以上层数中的奇数相除,就能获得该大奇数m的所有因数。
与现有技术相比,本发明的有益效果为:
(1)由于利用二叉树的特性,有效地缩少了大奇数因子的搜索范围,从而有效地提升了大整数分解的速度。
(2)将二叉树分解成数个子二叉树并使用多台计算机或计算单元同时并行计算,有利于资源的有效分配并充分利用计算机资源,从而极大地加快了大整数分解的速度。
(3)采用二叉树的方法,能够揭示奇数的许多以前未能发现的性质如对称性等。利用此类性质设计算法,可减少大量的运算量。
附图说明
图1为二叉树的结构示意图;
图2为二叉树分解为子二叉树的结构示意图。
具体实施方式:
现结合附图和实施例对本发明做进一步详细描述:
本发明是这样实现的,首先,先将大整数分解成大奇数m,如果大整数是大奇数m,则直接进入大奇数m的分解,大奇数m的分解是这样实现的,先确定大奇数m在二叉树T中的位置,二叉树T是从最顶端的结点3开始,依据奇数由小到大,由上到下,由左到右分布在二叉树T上,即3为二叉树T最顶的结点,3往下分成二叉,左叉是5,右叉是7,5和7分别向下分成二叉,5和7成为向下分成二叉的根结点,5的左叉是9,右叉是11,7的左叉是13,右叉是15,这样一直分叉下去,从而形成二叉树T(如图1所示),二叉树T从最顶的3开始,从上往下形成多层结点层L,0≤L,每层有2L个奇数(如0层是20=1,1层是21=2, 2层是22=4….),第L层的第P个数的大小是:2×2L+1+2×(P-1),1≤P ≤2L,大奇数m在二叉树T中的层数是K=-1(如m为501时,K=7),然后,将大奇数m与二叉树T中取整的K/2层及其以上层数中的奇数(如K为200时,K/2=100. K为201时,K/2=100,K/2以上层数即0层—200层)进行相除,若某个奇数能除尽,则该奇数是大奇数m的因数。相除运算采用多台计算机同时进行,即将二叉树T中K/2层及其以上层数中的奇数分成数个层的子二叉树Tn。具体是:先确定子二叉树Tn的的层高h0,0≤h0,依据层高h0将二叉树T分成数层子二叉树树组,每层子二叉树树组由D个子二叉树Tn组成,D=2(S×(h0+1)),0≤S,S为子二叉树树组层,最上面子二叉树树组层是0,然后由上往下依次是1、2、……..,下层子二叉树树组中的子二叉树Tn最顶端的结点是上层子二叉树树组中的子二叉树Tn底部结点的其中一个叉。如图2所示,最上面子二叉树树组层是0,该层只有一个子二叉树树T1,子二叉树T1高度是3(包括有0层、1层、2层、3层),子二叉树T1底部结点有8个(如图1所示,分别为17、19、21、23、25、27、29、31),子二叉树T1底部8个结点有16支树杈(如图1所示,分别为33、35、37、39、41、43、45、47、49、51、53、55、57、59、61、63),这样,子二叉树树组层0下面的子二叉树树组层1就有16个子二叉树(如图2所示,分别是T2、T3、T4、T5、T6、T7、T8、T9、T10、T11、T12、T13、T14、T15、T16、T17),而子二叉树树组层1下面的子二叉树树组层2就有D=2(2 ×(3+1))256个高度为3的子二叉树Tn(n=18、19、……….273),以此类推,将K层以上的二叉树分成数个高度为h0=3的子二叉树Tn,然后,将数个子二叉树Tn有机地分配(如平均分配)给数台计算机或计算单元同时进行大奇数m与子二叉树Tn中的奇数进行相除,以获得大奇数m的因数。
Claims (1)
1. 一种分解大奇数的方法,其特征在于首先,先将大整数分解成大奇数m,如果大整数是大奇数m,则直接进入大奇数m的分解,大奇数m的分解是这样实现的,先确定大奇数m在二叉树T中的位置,二叉树T是从最顶端的结点3开始,依据奇数由小到大,由上到下,由左到右分布在二叉树T上,即3为二叉树T最顶的结点,3往下分成二叉,左叉是5,右叉是7,5和7分别向下分成二叉,5和7成为向下分成二叉的根结点,5的左叉是9,右叉是11,7的左叉是13,右叉是15,这样一直分叉下去,从而形成二叉树T,二叉树T从最顶的3开始,从上往下形成多层结点层L,0≤L,每层有2L个奇数,第L层的第P个数的大小是:2×2L+1+2×(P-1),1≤P ≤2L,大奇数m在二叉树T中的层数是K=-1,然后,将大奇数m与二叉树T中取整的K/2层及其以上层数中的奇数进行相除,若不能除尽m,则该大奇数m是素数,若能除尽,则该数奇数是大奇数m的因数.相除运算采用多台计算机或计算单元同时进行,即将二叉树T中K/2层及其以上层数中的奇数分成原二叉树T的数个子二叉树Tn,具体是:先确定子二叉树Tn的的层高h0,0≤h0,依据层高h0将二叉树T之K/2层及其以上层的全部奇数分成数层子二叉树树组,每层子二叉树树组由D个子二叉树Tn组成,D=2(S×(h0+1)),0≤S,下层子二叉树树组中的子二叉树Tn最顶端的结点是上层子二叉树树组中的子二叉树Tn底部结点的其中一个,然后,将数个子二叉树Tn有机地分配给数台计算机或计算单元同时进行大奇数m与子二叉树Tn中的奇数进行相除,以获得大奇数m的因数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610820083.8A CN106355027B (zh) | 2016-09-13 | 2016-09-13 | 一种分解大奇数的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610820083.8A CN106355027B (zh) | 2016-09-13 | 2016-09-13 | 一种分解大奇数的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106355027A true CN106355027A (zh) | 2017-01-25 |
CN106355027B CN106355027B (zh) | 2020-06-02 |
Family
ID=57858417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610820083.8A Active CN106355027B (zh) | 2016-09-13 | 2016-09-13 | 一种分解大奇数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106355027B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436188A (zh) * | 2007-11-16 | 2009-05-20 | 北京乾坤化物数字技术有限公司 | 整数结构树的构建方法 |
CN105959044A (zh) * | 2016-04-21 | 2016-09-21 | 北京航空航天大学 | 联合方法的层次码本结构设计方法 |
-
2016
- 2016-09-13 CN CN201610820083.8A patent/CN106355027B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436188A (zh) * | 2007-11-16 | 2009-05-20 | 北京乾坤化物数字技术有限公司 | 整数结构树的构建方法 |
CN105959044A (zh) * | 2016-04-21 | 2016-09-21 | 北京航空航天大学 | 联合方法的层次码本结构设计方法 |
Non-Patent Citations (1)
Title |
---|
解建国: "任意大奇数的一种素性检验法及表示法", 《运城高等专科学校学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN106355027B (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984527B (zh) | 优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法 | |
Muelder et al. | Rapid graph layout using space filling curves | |
CN110321329A (zh) | 基于大数据的数据处理方法及装置 | |
CN103942028B (zh) | 应用在密码技术中的大整数乘法运算方法及装置 | |
CN103422849A (zh) | 注水开发老油田井网重建方法及装置 | |
CN106681688A (zh) | 一种基于minhash的集合相似度计算方法和*** | |
CN107066542A (zh) | 地理信息***中的矢量空间叠加分析并行方法及*** | |
CN106547934B (zh) | 用于砾岩油藏的调剖选井方法及装置 | |
Yang et al. | Scatter search for distributed assembly flowshop scheduling to minimize total tardiness | |
CN106384161A (zh) | 一种用于航天巡视计划区域划分的优化算法 | |
Schreck et al. | Regular treemap layouts for visual analysis of hierarchical data | |
CN107180079A (zh) | 基于卷积神经网络以及树与哈希结合索引的图像检索方法 | |
Ionescu et al. | An agent-based model for the bibliometric h-index | |
CN108182531A (zh) | 页岩气开发评价方法、装置及终端设备 | |
CN103399730B (zh) | 一种基于cpu+gpu架构的空间几何体线段相交判断并行处理方法 | |
CN106355027A (zh) | 一种分解大奇数的方法 | |
CN104036141B (zh) | 一种基于OpenCL的红黑树加速方法 | |
CN106934485A (zh) | 基于遗传算法的一种新型一维排演下料方法 | |
CN106909339A (zh) | 一种基于二叉树结构的有限域乘法器 | |
CN106814994A (zh) | 一种面向大数据的并行***优化方法 | |
CN107291534A (zh) | 异步任务并发处理方法和*** | |
Yang et al. | Research on distributed Hilbert R tree spatial index based on BIRCH clustering | |
CN115344383A (zh) | 一种基于进程并行的流线可视化并行加速方法 | |
CN104281681A (zh) | 针对层次数据的正方化有序树图布局方法 | |
CN102663911B (zh) | 基于伪随机数的网上考试***试卷选项均匀分布方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |