- 1
- 0
- 约3.99千字
- 约 6页
- 2026-03-11 发布于广西
- 举报
PAGE
PAGE1
N进制下的大整数加减法和乘法计算
教学目标
1.知识与技能
复习大整数计算的模拟算法
把大整数高精度计算推广到N进制
2.过程与方法:
学习流程:讲授——模仿——练习
通过课堂练习,巩固课堂内容。
教学重点、难点
【重点】
模拟竖式计算大整数乘法和加减法,把十进制计算推广到N进制。
【难点】
模拟竖式计算大整数乘法
课时安排
课时安排:120分钟
四、上课准备
课程相关ppt、白板、白板笔、积分卡
课前检查电脑、投影仪、网络是否有故障,及时修复。
五、教学活动
活动时长
教学活动
注意事项
课前准备
老师准备学生电脑,保证电脑能正常使用;打开投影仪,打开上课课件,以最饱满的热情迎接学生!
提前10分钟准备
开场白
欢迎各位同学回到吉码信息学课堂。
引入
大整数,意思是超过了计算机硬件能够直接处理和计算范围的整数。要处理大整数,就必须特别设计算法。为什么要处理大整数呢?大整数计算这么复杂,而且我们几乎用不到那么大的整数,那为什么要花功夫去计算呢?其实大整数应用很多,比如说密码学,就利用了大整数难以计算的原理,特别是大整数的分解,当数位到达几百位,大整数分解的时间复杂度可以让现代计算机都计算很长时间。此外,科学计算也需要用到大整数。我们现在处理的大整数计算,用的是最朴素的模拟算法,在实际应用中,会采用更加高效的算法。
学习内容(1)
(一)大整数计算概述
利用计算机进行数值计算,有时会遇到这样的问题:有些计算要求精度高,希望计算的数的位数可达几十位甚至几百位,虽然计算机的计算精度也算较高了,但因受到硬件的限制,往往达不到实际问题所要求的精度。我们可以利用程序设计的方法去实现这样的高精度计算。
高精度计算中需要处理好以下几个问题:
(1)数据的接收方法和存贮方法
数据的接收和存贮:当输入的数很长时,可采用字符串方式输入,这样可输入数字很长的数,利用字符串函数和操作运算,将每一位数取出,存入数组中。另一种方法是直接用循环加数组方法输入数据。
我们一般采用字符串进行输入数字,然后逆序转存到数组中。转存需要把字符转为数字,而且需要逆序存储到数组;为了方便,我们可以将存储数字的数组第0个位置用来存储数字的位数信息,后面从个位开始存储,如果最高位有进位则往数组后方添加数位。最后得到的答案逆序输出即可。
ppt5:大整数的存储。对照示范代码讲解要点。
(2)高精度数位数的确定
位数的确定:接收时往往是用字符串的,所以它的位数就等于字符串的长度。
(3)进位,借位处理
加法进位:c[i]+=a[i]+b[i];
if(c[i]=10){c[i]%=10;++c[i+1];}
或者:c[i]=a[i]+b[i]+x; //第i位相加并加上次的进位
x=c[i]/10; //向高位进位
c[i]%=10;//存储第i位的值
减法借位:if(a[i]b[i]){--a[i+1];a[i]+=10;}
c[i]=a[i]-b[i];
乘法进位:c[i+j-1]=a[i]*b[j]+x+c[i+j-1];
x=c[i+j-1]/10;
c[i+j-1]%=10;
(4)商和余数的求法
商和余数处理:视被除数和除数的位数情况进行处理.
很显然,如果把上面的计算中,关于十进制的部分改为N,就成为N进制的计算式了。这里不再重复强调N进制下的计算方法。大家只要把10换为对应的进制N,即可完成计算。具体原理我们暂时不去关心,证明起来比较耗费篇幅,此处略过。
【提问】关于进位问题,如果按照上面的计算方法,计算第i位的结果能否写成c[i]=a[i]+b[i]然后再处理进位?
【回答】不能。因为这个计算式少加了可能的进位。这个进位的数字依照实际情况而定。
【注意】存储计算结果的数组一定要“干净”。否则,如果数组里存有非零的数字,那么这个数字就会被当做进位累计到结果中。
回顾和复习
(1)高精度加法
输入两个数到两个变量中,然后用赋值语句求它们的和,输出。但是,我们知道,在C++语言中任何数据类型都有一定的表示范围。而当两个被加数很大时,上述算法显然不能求出精确解,因此我们需要寻求另外一种方法。在读小学时,我们做加法都采用竖式方法,如图1。这样,我们方便写出两个整数相加的算法。
高精度加法算法描述:ppt8-11
【提问】单独设立x作为进位有好处吗,直接复用数组存进位会更好吗?
【参考答案】
您可能关注的文档
- python编程11-排列小星星.docx
- python编程11-排列小星星.pptx
- python编程12_三叶风车.docx
- python编程12-初识列表.docx
- python编程13_多叶风车.docx
- python编程13-列表的使用.docx
- python编程14_彩色风车.docx
- python编程14_彩色风车.pptx
- python编程14-元组与集合.docx
- python编程15_半圆风车.docx
- 【2025秋新版】新人教版八上英语期末测试卷.docx
- DB54∕T 0614-2026 既有建筑结构改造技术标准.pdf
- DB42∕T 2499-2026 宜昌毛尖加工技术规程.docx
- DB42∕T 2526-2026 地震预警信息发布规范.pdf
- DB42∕T 2510-2026 湖北省“一村一图”编制技术规范.docx
- DB42∕T 2526-2026 地震预警信息发布规范.docx
- DB42∕T 2495-2026 重金属污染耕地治理与修复技术规范.pdf
- DB42∕T 2506-2026 抹茶生产与加工技术规程.pdf
- 【2025秋新版】七年级上册语文课内重点词语汇总.docx
- T∕WJQMA 01-2026 日光温室厚皮甜瓜一年两季高效优质生产技术规范.pdf
最近下载
- 执法工作中存在的问题和不足.docx VIP
- 分析力学PPT课件.ppt VIP
- 生成式人工智能在高中数学课堂中的应用:激发学生探究兴趣的实证研究教学研究课题报告.docx
- 部编版小学五年级道德与法治下册第二单元第5课《建立良好的公共秩序》第二课时(教案).docx VIP
- 2026年中职学校工作计划.docx VIP
- 排列数的综合运用_课件.pptx VIP
- QGW17991-2025《电力安全工作规程变电部分》.pdf VIP
- 西南科技大学处室文件-西南科技大学研究生院.PDF VIP
- iTrust UL33系列UPS系统20-60kVA用户手册(V1.5).pdf VIP
- 新改版教科版六年级下册科学知识点.doc VIP
原创力文档

文档评论(0)