一种大整数算法的计算机处理装置的制造方法

文档序号:10534458阅读:198来源:国知局
一种大整数算法的计算机处理装置的制造方法
【专利摘要】本发明公开了一种大整数算法的计算机处理装置,包括:整数寄存单元:用于存储手工或从文件中输入的数据;预处理单元:用于删除整数寄存单元中存储数据的所有空格以及该存储数据前面多余的“0”和判断该存储数据是不是整数;计算处理单元,用于对预处理单元处理后的数据进行计算,得到相应的值;结果处理单元,用于对计算处理单元计算所得的值转换为字符串进行输出;中央控制单元:分别与整数寄存单元、预处理单元、计算处理单元、结果处理单元连接。本发明采用动态分配的字符串作为大整数的存储结构,可以进行4000位以上十进制整数的加法、减法、乘法、乘方、开平方、Euclid除法、除法和整除性测试,解决了现有计算机进行大整数计算时不精确的问题。
【专利说明】
一种大整数算法的计算机处理装置
技术领域
[0001]本发明涉及计算机算法技术领域,具体为一种大整数算法的计算机处理装置。
【背景技术】
[0002]在国家军事、政治、外交、经济、商业等领域的信息安全问题中,在计算机科学、数学等领域的科学研究中,常常涉及或者必须考察“大”到数十位甚至上百位十进制整数的有关计算,有时候甚至要求计算精度达到小数点后数十位甚至上百位(多位小数的有关计算都可以化为整数的有关计算)。比如我国“两弹一星”理论设计和实际试验中有些数据要计算到小数点后数十位。又如在军事信息安全领域中,有的地方要用到RSA、ELGamal或ECDLP密码算法或数字签名算法,这些算法都离不开大整数的运算,甚至涉及有关大素数的整数运算,诸如大整数的加法、乘法、乘法阶、乘法逆、最大公约数、因子分解以及同余等问题,其它密码算法或数字签名算法也会涉及大大整数的运算。再如军事领域很多地方要用到伪随机数,而伪随机数一般是用伪随机序列产生或者用同余式计算得到的,这二者都离不开有关大整数的计算。现有的大整数计算技术不能完全满足这些领域的专门需要或者在一定程度上制约着这些领域有关课题的研究和发展。

【发明内容】

[0003]本发明的目的在于提供一种大整数算法的计算机处理装置,以解决上述【背景技术】中提出的问题。
[0004]为实现上述目的,本发明提供如下技术方案:
一种大整数算法的计算机处理装置,包括:
整数寄存单元:用于存储手工或从文件中输入的数据;
预处理单元:用于删除整数寄存单元中存储数据的所有空格以及该存储数据前面多余的“O”和判断该存储数据是不是整数;
计算处理单元,用于对预处理单元处理后的数据进行计算,得到相应的值;
结果处理单元,用于对计算处理单元计算所得的值转换为字符串进行输出;
中央控制单元:分别与整数寄存单元、预处理单元、计算处理单元、结果处理单元连接,并存储整数寄存单元的输入值,预处理单元、计算处理单元、结果处理单元的处理值。
[0005]优选的,整数寄存单元采用动态分配字符串作为大整数的存储结构。
[0006]优选的,所述计算处理单元包括基本运算模块、乘方与开方模块、阶乘与因子模块、素数模块、最大公约数模块、特殊数模块、不定方程模块、同余式模块。
[0007]优选的,结果处理单元是用于对其计算结果的输出值的整数部分从后向前每隔一个固定的位数就插入一个空格,对其计算结果的输出值的小数部分从前向后每隔一个固定的位数就插入一个空格。
[0008]本发明采用动态分配的字符串作为大整数的存储结构,可以进行4000位以上十进制整数的加法、减法、乘法、乘方、开平方、Euclid除法、除法和整除性测试,解决了现有计算机进行大整数计算时不精确的问题。除法运算可精确到小数点后1023位以上,其中开平方运算可精确到小数点后3000位以上,乘方运算可以计算出2的13604次方、3的8583次方、5的5859次方、5的5859次方、7的4846次方等等;可以计算1493以内十进制正整数的阶乘、4000位以上十进制正整数的阶乘因子和最大公约数、2000位以上十进制正整数的最小公倍数;可以计算参数在2506以内的二项式系数、参数在458以内的Stirling数和参数在1254以内的Catalan数;可以计算斐波那契数到19598项以内;可以求解系数在十进制2000位以上的二元一次、三元一次不定方程和系数在十进制16位以内的一元二次方程;可以计算十进制2000位以内正整数的乘法逆,求解系数在十进制2000位以内的一次同余方程和方程组;可以成功地对16位以内的十进制正整数进行素性判定和因子分解。一元二次方程、素性判定和因子分解等问题的计算复杂性高,速度一般较慢,因此这里对其范围限制得很小。
【附图说明】
[0009]图1为本发明的结构框图。
【具体实施方式】
[0010]下面将结合具体实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0011 ]如图1所示,一种大整数算法的计算机处理装置,包括:
整数寄存单元:用于存储手工或从文件中输入的数据;在具体实施例中,整数寄存单元采用动态分配字符串作为大整数的存储结构。
[0012]预处理单元:用于删除整数寄存单元中存储数据的所有空格以及该存储数据前面多余的“O”和判断该存储数据是不是整数;
计算处理单元,用于对预处理单元处理后的数据进行计算,得到相应的值;其中所述计算处理单元包括基本运算模块、乘方与开方模块、阶乘与因子模块、素数模块、最大公约数模块、特殊数模块、不定方程模块、同余式模块。
[0013]结果处理单元,用于对计算处理单元计算所得的值转换为字符串进行输出;在具体实施例中,结果处理单元是用于对其计算结果的输出值的整数部分从后向前每隔一个固定的位数就插入一个空格,对其计算结果的输出值的小数部分从前向后每隔一个固定的位数就插入一个空格。
[OOM]中央控制单元:分别与整数寄存单元、预处理单元、计算处理单元、结果处理单元连接,并存储整数寄存单元的输入值,预处理单元、计算处理单元、结果处理单元的处理值。
[0015]本发明中,计算处理单元包括基本运算模块、乘方与开方模块、阶乘与因子模块、素数模块、最大公约数模块、特殊数模块、不定方程模块、同余式模块。
[0016]基本运算模块:圆周率的近似值,加法,减法,乘法,除法、Euclid除法,整除性测试。
[0017]乘方与开方模块:方根化简,乘方,一个正整数在另一正整数中的方次数,平方根。
[0018]阶乘与因子模块:阶乘,阶乘因子,正整数的因子分解。
[0019]素数模块:最小素因子,素性测试,Euler函数。
[0020]最大公约数模块:最大公约数,最小公倍数。
[°021 ]特殊数模块:二项式系数,斐波那契数,第一模块Stirl ing数,第二模块Stirl ing数,Catalan 数。
[0022]不定方程模块:二元一次不定方程ax_by = l,二元一次不定方程ax+by = c,三元一次不定方程ax+by+cz = n,勾股数,整系数二元一次方程。
[0023]同余式模块:一个正整数关于另一个正整数的乘法阶,一个正整数关于另一个正整数的乘法逆,一元一次同余方程,一元一次同余方程组。
[0024]尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
【主权项】
1.一种大整数算法的计算机处理装置,其特征在于,包括: 整数寄存单元:用于存储手工或从文件中输入的数据; 预处理单元:用于删除整数寄存单元中存储数据的所有空格以及该存储数据前面多余的“O”和判断该存储数据是不是整数; 计算处理单元,用于对预处理单元处理后的数据进行计算,得到相应的值; 结果处理单元,用于对计算处理单元计算所得的值转换为字符串进行输出; 中央控制单元:分别与整数寄存单元、预处理单元、计算处理单元、结果处理单元连接,并存储整数寄存单元的输入值,预处理单元、计算处理单元、结果处理单元的处理值。2.根据权利要求1所述的一种大整数算法的计算机处理装置,其特征在于:整数寄存单元采用动态分配字符串作为大整数的存储结构。3.根据权利要求1所述的一种大整数算法的计算机处理装置,其特征在于:所述计算处理单元包括基本运算模块、乘方与开方模块、阶乘与因子模块、素数模块、最大公约数模块、特殊数模块、不定方程模块、同余式模块。4.根据权利要求1所述的一种大整数算法的计算机处理装置,其特征在于:结果处理单元是用于对其计算结果的输出值的整数部分从后向前每隔一个固定的位数就插入一个空格,对其计算结果的输出值的小数部分从前向后每隔一个固定的位数就插入一个空格。
【文档编号】G06F7/491GK105892986SQ201610277636
【公开日】2016年8月24日
【申请日】2016年4月30日
【发明人】王娟
【申请人】安徽硕尼信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1