高精度计算

✍ dations ◷ 2025-12-04 04:56:13 #高精度计算

高精度计算是一种程序设计的算法。由于中央处理器的字长限制,如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++:

相关

  • 乐器乐器,泛指可以发声演奏音乐的工具。根据构造或发声原理,乐器可以细分作多个分类:气鸣乐器、弦鸣乐器、膜鸣乐器和体鸣乐器。打击乐器包括体鸣和膜鸣两大类。不同的键盘乐器虽然
  • Vestibular nuclei前庭核(Nuclei vestibulares)乃投射前庭神经(英语:vestibular nerve)的脑神经神经核(英语:cranial nuclei)。分布于脑干中的桥脑及延髓。前庭神经会由耳蜗内部进入延髓,并经过下大脑
  • 高位宫东川王(209年-248年),高句丽第11任君王,历史或称为东壤王,名忧位居,幼名郊彘,《三国志》称其名为位宫,227年-248年在位。《三国志·魏书》中记载,东川王为太祖王的曾孙。‘其曾祖名宫,生
  • 埃瓦里斯托·卡瓦略埃瓦里斯托·杜·圣埃斯皮里图·卡瓦略(葡萄牙语:Evaristo do Espírito Santo Carvalho;1941年10月22日-),是一名圣多美和普林西比政治人物,独立民主行动(英语:Independent Democrat
  • 乔治·R·R·马丁乔治·雷蒙德·理查德·马丁(George Raymond Richard Martin,1948年9月20日-,常称GRRM、乔治·R·R·马丁),美国作家及编剧,主要创作奇幻、恐怖和科幻等风格的作品。《冰与火之歌》
  • 纽约地铁G线G线跨城线慢车(英语:Crosstown Local),又称纽约地铁G线,是纽约地铁B分部(英语:B Division (New York City Subway))的地铁系统,全长11.4英哩。由于该线使用IND跨城线,因此其路线徽号为
  • 岩馆真理子岩馆真里子(1957年2月8日-),日本漫画家,北海道札幌市出身。1973年作品〈落第します〉刊登于《周刊玛格丽特》秋季增刊号出道。1992年作品《结婚进行曲》获得第16届讲谈社漫画赏少女部门赏。
  • 苏共中央社会主义国家共产党工人党联络部苏共中央社会主义国家共产党工人党联络部(俄语:Отдел ЦК КПСС по связям с коммунистическими и рабочими партиями социалистических стран)是苏联共产党中央委员会于1957年2月21日成立的部门,负责处理苏联共产党与当时社会主义国家执政的共产党或工人党之间的关系,此前相关职能包含在苏联共产党中央委员会国际部之下。该部门于1988年10月被废除。
  • 张九钺张九钺(1721年10月20日-1803年11月3日),字度西,号紫岘,湖南省长沙府湘潭县人,清朝中期官吏、文学家。:401721年10月20日(康熙六十年),张九钺出生在湖南省长沙府湘潭县县城陶园。:4012岁登采石矶太白楼赋诗,袁枚称之为“太白后身”。:401741年(乾隆元年),张九钺成为贡生。:401762年(乾隆二十七年)考中举人。:401764年(乾隆二十九年)出任江西南丰知县,之后任始兴、保昌、海阳等地知县。:401779年(乾隆四十年)辞职,漫游在河南省的嵩山、洛阳、偃师、巩县等地。:40
  • 代数几何与解析几何在数学中,代数几何与解析几何是两个关系密切的学科。代数几何研究代数簇,在复数域上,同时也能以复分析及微分几何的技术研究代数簇。让-皮埃尔·塞尔在1956年的同名论文中比较了这两种观点。在 SGA 第一册附录中,则以概形论的语言重新表述。给定一个 C {\displaystyle \mathbb {C} } 上的局部有限型概形 X {\d