高精度计算

✍ dations ◷ 2025-07-09 15:34:59 #高精度计算

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

相关

  • 放射型城市放射型城市亦称为中心型城市,通常与组团式城市、线形城市相对。其重要特征为城市往往由一个中心地区作为城市核心构成,其他道路与街道和设施以圆环状或方形环状环绕城市中心辐
  • 清华大学经济管理学院清华大学经济管理学院,简称经管学院,是清华大学下属学院,正式成立于1984年。该学院是中国经济学年会理事单位之一。经管学院的历史可以追溯到1926年清华大学经济系的创立。1928
  • 中国大陆报纸列表本条目是在中国发行的报纸的列表。中国境内共有日报816家,非日报1344家。“国家级报纸”,也作“全国性报纸”。以下列出在中国境内全国发行的付费报刊,以字典序排列。 表示该
  • 弗兰斯·米歇尔·彭宁弗兰斯·米歇尔·彭宁(荷兰语:Frans Michel Penning;1894年9月12日-1953年12月6日) 是荷兰籍的实验物理学家。 他于1923年在莱顿大学取得了博士学位,之后在Eindhoven的飞利浦实验
  • 生长曲线 (天文)天文学中,生长曲线(英语:Curve of growth)表示天体谱线的等效宽度关于参与吸收的粒子的柱密度的函数。它描述不同光深下谱线的轮廓与饱和程度。
  • 黄水镇 (成都市)黄水镇,是中华人民共和国四川省成都市双流区下辖的一个乡镇级行政单位。2019年12月,撤销胜利镇,将其所属行政区域划归黄水镇管辖,黄水镇人民政府驻顺河上街1号。黄水镇下辖以下
  • 庄真由美庄真由美(日语:荘 真由美,1965年2月5日-),日本女性实业家、前演员、前配音员。出身于东京都。身高156cm。B型血。本名难波真由美(なんば まゆみ)(旧姓:庄),丈夫为配音员难波圭一。以前经
  • 伊斯梅尔·罗德里格斯伊斯梅尔·罗德里格斯(1917年10月19日出生于墨西哥城 - 2004年8月7日于墨西哥城)是墨西哥著名电影编导,被誉为墨西哥人民电影艺术家。罗德里格斯出生在墨西哥城的一个普通家庭
  • 米塔格山 (哥达山)坐标:46°29′47″N 8°23′07″E / 46.496456°N 8.385359°E / 46.496456; 8.385359米塔格山(Mittaghorn),是瑞士的山峰,位于该国西南部,由瓦莱州负责管辖,属于勒蓬廷山中哥达山
  • 笙演奏家列表本列表列出了较为知名的笙演奏家,依其出身地作分类。胡天泉(1934年-)、阎海登(1930年-2004年)均为今山西省忻州市人,故被研究者归类为“晋派”。其中,胡天泉在中华人民共和国建政后以《凤凰展翅》首开笙独奏风气者,被称为“现代笙之父”。王慧中是秦皇岛人,一级演员。1970年代以杨大明“三十二簧加键方笙”为基础设计“三十六簧加键扩音方笙”,截至2010年代仍为国乐团基本配备。吴彤是马友友等丝路之旅演奏团中的团员。胡建兵Hu Jianbing