



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高精度计算利用计算机进行数值计算,有时会遇到这样的问题,有些计算要求精度高,希望计算的数的位数可达几十位甚至几百位,虽然计算机的计算精度也算较高了,但因受到硬件条件的限制,往往达不到实际问题所要求的精度,我们可以利用高精度计算的方法来实现更高精度计算的目的。高精度计算中需要处理好以下几个问题:(1) 数据的接收方法和存贮方法 当输入的数很长时,可采用字符串方式输入,这样可输入数字很长的数,利用字符串函数和操作运算,将每一位数取出,存入数组中;另一种方法是直接用循环数组方法输入数据。(2) 进位、借位的处理加法进位:ai:=ai+bi;ai+1:=ai+1+ai div 10; ai:=ai mod 10;减法借位:if aibi then Begin ai+1:=ai+1-1;ai:=ai+10 end; Ai:=ai-bi;乘法进位:y:=ai*bi+c; c:=y div 10; ai:=y-c*10;一、 高精度加法程序Program p1;Const n=100;Var str1,str2:string; A,b:array1.n of integer; K,len1,len2,len,I,j:integerBegin Readln(str1); Readln(str2); Len1:=length(str1);len2:=length(str2); For i:=1 to len1 do alen1+1-i:=ord(str1i)-ord(0); For i:=1 to len2 do blen2+1-i:=ord(str2i)-ord(0); If len1len2 then len:=len2 else len:=len1; For i:=1 to len do Begin ai:=ai+bi;ai+1:=ai+1+ai div 10; ai:=ai mod 10; end;if alen+10 then inc(len);for i:=len downto 1 do writeln(ai);end;二、 高精度减法程序For i:=1 to len doBegin if ai=10 do Begin len:=len+1; Alen:=alen-1 div 10; Alen-1:=alen-1 mod 10; End;(2)多精度与多精度乘法Program p4;Const n=100;Var a,b:array1.n of integer; C:array1.2*n+1 of integer; Len1,len2,I,j,x,y,w:integer;Begin Readln(str1);readln(str2); Len1:=length(str1);len2:=length(str2); For i:=1 to len1 do alen1+1-i:=ord(str1i)-ord(0); For i:=1 to len2 do blen2+1-i:=ord(str2i)-ord(0); For i:=1 to len1 do For j:=1 to len2 do Begin x:=ai*bj; Y:=x div 10; z:=x mod 10; w:=i+j-1; cw:=cw+z; cw+1:=cw+1+cw div 10+y; cw:=cw mod 10 end; e:=len1+len2; while ce=0 then e:=e-1; for i:=e downto 1 do write(ci);end.当输入str1=123456789,str2=987654321时,结果是:121932631112635269四、加大进制的方法前面所介绍的各种方法都是以十进制为基础的,当数很大时,为了加快速度,可以采用100或10000进制或更大的进制的方法。除了进制有所变化外,算法没有什么变化。例1、 求n!的精确值。分析:n!=1*2*3*.*n,算法如下:(1) 确定位数:len=trunc(1/ln10(lnn+ln(n-1)+.+ln3+ln2+ln1)+1;(2) 每位数占用一个数组单元,每个单元存放四位数,内存可节省到1/4;(3) 进位处理,进位的条件是存储单元的数是否大于9999;(4) 输出处理:将各单元的数顺序输出,但若该单元不是最高位且不足四位数则在需要在前面补0,凑成四位数。Program p6;Const m=200;Var a:array1.m of integer; I,j,y,c,n,k,t:integer; F:real;Begin Read(n); F:=0; For i:=1 to n do f:=f+log(i)log(10); T:=trunk(f)+1; A1:=1;len:=1;k:=1; For i:=1 to n do Begin c:=0; While ak=0 do inc(k); For j:=k to len do Begin y:=ai*i+c; C:=y div 1000; Ai:=y mod 1000 End; If c0 then begin inc(len);alen:=c end; End;For i:=len downto 1 do Begin if i=1 then write(ai) Else begin str(ai,st1); While length(st1)3 do st1:=0+st1; Write(st1); End; End;End.当n=10,10!=3628800;当n=15,15!=1307674368000练习:1、 正月里,鼠妈鼠爸生了12只小鼠,于是大小鼠共有14只,二月里,两 代鼠全部配对,每对鼠又各生了12只小鼠,因此共有鼠98只。如这样下去每月所有的鼠全部配对,每对鼠又各生12只小鼠,十二个月后,鼠的总数是多少呢?2、 用高精度计算出s=1!+2!+3!+.+n!(n=50),输入正整数n,输出计算结果s.3、 正实数加法计算,读入两个100位长的正实数,求出它们的和。4、 设有一个n*m(1=n=50,1=m=50)的街道,如图所示 5 B(9,5) * * * * * * * * * * * 4 * 3 2 1 1 2 3 4 5 6 7 8 9 A(1,1),规定行人从A(1,1)出发,在街道上只能向东或向北方向行走,若在n*m的街道中,设置一个矩形障碍区域(包括围住该区域的街道)不让行人通行,如图中表示的部分。此矩形障碍区域用2对顶点坐标给出,前图中的2对项点坐标为(2,2),(8,4),此时从A出发到B的路径仅有两 条。 程序要求: 任务一:给出n,m后,求出所有从A出发到达B的路径的条数。 任务二:给出n,m,同时再给出此街道中的矩形障碍区域的2对顶点从标(x1,y1),(x2,y2),然后求出此种情况下所有从A出发到达B的路径的条数。5、 麦森数【问题描述】形如2P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。任务:从文件中输入P(1000P3100000),计算2P-1的位数和最后500位数字(用十进制高精度数表示)【输入格式】文件中只包含一个整数P(1000P3100000)【输出格式】第一行:十进制高精度数2P-1的位数。第2-11行:十进制高精度数2P-1的最后500位数字。(每行输出50位,共输出10行,不足500位时高位补0)不必验证2P-1与P是否为素数。【输入样例】1279【输出样例】38600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010407932194664399081925240327364085538615262247266704805319112350403608059673360298012239441732324184842421613954281007791383566248323464908139906605677320762924129509389220345773183349661583550472959
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关安全的施工规范
- 静脉血气操作技巧
- 学校危房加固方案范本
- 临泽硅pu跑道施工方案
- 宁夏葡萄酒与防沙治沙职业技术学院《医学显微形态学(一)》2023-2024学年第一学期期末试卷
- 重庆资源与环境保护职业学院《电脑辅助设计一(AutoCAD)》2023-2024学年第二学期期末试卷
- 新疆轻工职业技术学院《临床医学概要2》2023-2024学年第二学期期末试卷
- 山西卫生健康职业学院《网球》2023-2024学年第二学期期末试卷
- 《全球文化交流盛宴》课件
- 四川师范大学《医学科研方法入门及设计》2023-2024学年第二学期期末试卷
- 骆驼祥子考点单选题100道及答案解析
- 新教科版小学1-6年级科学需做实验目录
- 挖机大中斗油封资料,液压泵资料
- 技术开发部个人技能矩阵图
- 住院患者探视登记表
- 废气处理工程施工方案模板
- 境外所得个税新政解析PPT课件
- 工程网络计划技术概述
- 《不定期船营运管理模拟系统》实验指导书
- 华上集团基本法讲述
- s参数定义、矢量网络分析仪基础知识和s参数测量义讲
评论
0/150
提交评论