高精度计算

✍ dations ◷ 2025-12-08 09:37:01 #高精度计算

高精度计算是一种程序设计的算法。由于中央处理器的字长限制,如32位CPU中一个整数最大只能取值4,294,967,295(=232-1)。因此在进行更大范围的数值计算中,往往要采取模拟手段。通常通过分离字符的方法通过数字数组进行输入、通过数组倒序输出、通过模拟竖式计算进行计算。一般而言,主要模拟的是按位运算,可以用不同的进位制达成不同的目的。

有许多程序库支持高精度计算,最著名的是GNU多重精度运算库。另外,Java,Python和Pascal也有本地的高精度运算支持。

高精度计算的一个常见应用是公开密钥加密,这些算法经常对长度上百位的整数进行运算。高精度计算的另一个应用是在需要没有人为限制位数和没有算术溢出的情况下使用。在检查固定精度计算的结果以及确定公式中系数的精确值或近似值时,高精度计算也很有用。比如,在高斯求积中,我们需要确定 1 / 3 {displaystyle {sqrt {1/3}}} 的值。

高精度加法是信息学的一种重要算法。这种算法使用多个存储单位进行计算,因此它的计算范围超过一般使用一个存储单位的算法。也是一些信息学竞赛的常考题目。

以358934760892734899+38960302975237462为例:

1、计算结果的位数

358934760892734899共18位

38960302975237462 共17位

故结果不会超过19位。

2、将要计算的数字分割成多段,按照顺序排列(这里以0-32767作为每一存储单位存储的数的限制):

(为提高空间利用效率,可以一个存储单位存储多位数。)

3、将两数相加。

4、输出结果。

从高位到低位依次输出。除最高位以外,其他低位上不足4位的要在前面补上0。

pascal:

var  a,b,c:array of integer;   n:string;   lena,lenb,lenc,i,x:integer; begin  readln(n);   lena:=length(n);   for i:=1 to lena do a:=ord(n)-ord('0');   readln(n);   lenb:=length(n);   for i:=1 to lenb do b:=ord(n)-ord('0');   i:=1; x:=0;   while (i<=lena) or(i<=lenb) do  begin    c:=a+b+x;     x := c div 10;      c := c mod 10;      i := i + 1;   end;   if x>0 then  begin    lenc:=i;     c:=x;   end  else lenc:=i-1;   for i:=lenc downto 1 do write(c); end.

c++:

相关

  • 肾脏癌肾癌(英语:Kidney cancer or renal cancer)是一种由肾脏细胞癌变引发的癌症。两种最普遍的肾癌分别是肾细胞癌(英语:renal cell carcinoma)(renal cell carcinoma, 缩写为RCC)和发于
  • 皮下气肿皮下气肿(英语:Subcutaneous emphysema),亦被称为组织气肿,是指因空气或气体积存于皮下组织而形成的气肿。皮下气肿中的皮下是指位于皮肤表面下的组织,而气肿则是指积存在皮下组织
  • 5d1 6s22, 8, 18, 18, 9, 2蒸气压第一:538.1 kJ·mol−1 第二:1067 kJ·mol−1 第三:1850.3 kJ·mol主条目:镧的同位素镧,是一种化学元素,元素符号为La,原子序数为57。是一种柔
  • 伊斯兰国度伊斯兰民族(英语:Nation of Islam, NOI),又译“伊斯兰国度”,是美国非洲裔人的新宗教运动伊斯兰主义组织。1930年成立。1930年7月华莱士·穆罕默德创立伊斯兰民族于底特律。该组
  • 可可树可可(学名:)是热带常绿植物,锦葵科,原产于南美,现在广泛在非洲、东南亚和拉丁美洲种植。用种子、枝条或树苗栽培。可可树最高可达15米,叶片宽阔,花直接簇生于枝干上,白色,花萼为粉色,直
  • 势阱势阱(英语:Potential well)是一个包围着势能局部极小点的邻域。被势阱捕获的能量无法转化为其它形式的能量(例如能量从重力势阱中逃脱转化为动能),因为它被势阱的局部极低点捕获。
  • 格里戈里·阿布拉莫维奇·沙因格里戈里·阿布拉莫维奇·沙因(俄语:Григорий Абрамович Шайн;1892年4月19日-1956年8月4日),是一位苏联及俄罗斯天文学家。他是俄罗斯天文学家“佩拉格娅
  • 薇塔与弗吉尼亚《薇塔与弗吉尼亚》(英语:)是一部于2018年上映的英国传记爱情电影,由钱娅·波顿执导,艾琳·阿特金斯(英语:Eileen Atkins)编剧,杰玛·阿特登、伊丽莎白·戴比基和伊莎贝拉·罗塞里尼
  • 马熔锡机构马熔锡机构有限公司,简称马熔锡机构(英语:Malaysia Smelting Corporation Berhad,SGX:NC9),在1900年在马来西亚建立,并在1902年运作。主要业务在马来西亚经营熔锡和采锡。总部位于B-
  • 贝瑞·拉金贝瑞·路易斯·拉金(英语:Barry Louis Larkin,1964年4月28日-),为美国职棒大联盟的游击手。他整个职业生涯全都效力于红人队。他于1990年帮助红人拿下近期最后一座世界大赛冠军,而他最后在2012年入选名人堂。在登上大联盟的前两年,拉金都在和另一名新秀Kurt Stillwell争夺先发游击手的位置。而拉金最后获得青睐,Stillwell也在1988年球季被交易。1988年,拉金整年588个打数只吞下24次三振,为该年大联盟被三振数最低的纪录。1990年,红人队顺利闯进世界大赛。拉金