- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告填写说明
每门实验课程均应按本格式完成实验报告。
实验报告要求双面打印。
学生应在做完实验后指定时间内完成实验报告,交指导教师评阅。
学生必须依据实验指导书,提前预习实验目的、实验基本原理、实验内容及方法。
教师将在实验过程中抽查学生预习情况。
在课程全部实验项目完成后,分班级按学生学号将各实验项目报告装订成册,并附实验课程成绩汇总表,交课程承担单位(实验中心或实验室)保管存档。
信息安全中的数学方法与技术课程实验报告
学号
姓名
专业班级
实验题目
欧几里德算法
实验类型
□演示型 □验证型 eq \o\ac(□,√)设计型 □综合型
实验目的
1.掌握欧几里德算法,并会运用其求出两数的最大公约数;
2.掌握求解同余方程的方法会对其求解;
3.分别会对其进行c语言进行编程。
实验内容
使用VC++编程语言设计实现一个算法程序,要求包括以下部分:
1)欧几里德算法求的最大公因数和满足的整数 和;当时,求出相应的及,.
2)求解同余方程 其中. 当 ,求出.
实验原理
欧几里得算法求最大公约数
欧几里德算法又称 辗转相除法,用于计算两个整数a,b的 最大公约数。其计算原理依赖于下面的定理:
定理1:gcd(a,b) = gcd(b,a mod b)
定理2:假设 a,b 且 a b. 由除法原理我们知存在 h0,r0 使得
a = bh0 + r0,其中 r0 b.
若 r0 0,则存在 h1,r1 使得b = r0h1 + r1,其中r1 r0.
若 r1 0,则存在 h2,r2 使得r0 = r1h2 + r2,其中r2 r1
若 r1 0,则存在 h2,r2 使得r0 = r1h2 + r2,其中r2 r1
如此继续下去直到 rn = 0 为止. 若 n = 0 (即 r0 = 0),则 gcd(a,b) = b. 若 n1,则 gcd(a,b) = rn - 1.
\o
源代码
1.求最大公约数及s和t
实验代码:
#includestdio.h
#includestdlib.h
#includestring.h
int GCD = 0;
void main()
{
// 求整数a和b的最大公因子
int a = 0;
int b = 0;
printf(请输入整数a的值: \n);
scanf(%d,a);
printf(请输入整数b的值: \n);
scanf(%d,b);
if(a 0)
a = -a;
if(b 0)
b = -b;
if(a == 0||b == 0)
{
if(a + b == 0)
{
printf(整数a和b无最大公因子!\n);
exit(0);
}
else if(a == 0b != 0)
{
printf(最大公因子(a,b) = %d\n,b);
GCD = b;
}
else if(a != 0b == 0)
{
printf(最大公因子(a,b) = %d\n,a);
GCD = a;
}
}
源代码
{
printf(最大公因子(a,b) = %d\n,a);
GCD = a;
}
}
else
{
int x0 = a;
int x1 = b;
int x2 = x0 % x1;
while(x2 0)
{
x0 = x1;
x1 = x2;
x2 = x0 % x1;
}
printf(最大公因子(a,b) = %d\n,x1);
GCD = x1;
}
// 求整数s和t使得sa + tb = (a,b)
int r0;
int r1;
if(a b)
{
r0 = a;
r1 = b;
}
else if(a = b)
{
r0 = b;
r1 = a;
}
int s0 = 1;
int s1 = 0;
int t0 = 0;
int t1 = 1;
int s2 = s0;
int t2 = t0;
int s,t,a1,r2;
while(r1 != 0)
源代码
int s0 = 1;
int s1 = 0;
int t0 = 0;
int t1 = 1;
int s2 = s0;
int t2 = t0;
int s,t,a1,r2;
while(r1 != 0)
{
a1 = r0/r1;
r2 = r0 - a1*r1;
s2 = s0 - a1*s1;
t2 = t0 - a1*t1;
s = s1;
您可能关注的文档
最近下载
- 2024年在专题学习恪守“六大纪律”筑牢思想根基研讨交流发言材(10篇).docx
- 《稻草人》读书课、指导课、欣赏课、汇报课教学设计.pdf
- 部编版道德与法治二年级上册假期有收获(精品课件).ppt
- 2024全国交管12123驾驶证学法减分(学法免分)考试题库与参考答案.docx VIP
- 第2课 在线信息的搜索 教学设计 苏科版信息科技三年级上册.pdf
- 2024年乡镇平安建设实施方案范文(精选9篇).docx VIP
- GBT 1.1-2020 标准化文件的结构和起草规则 授课讲解文件资料.pdf
- 双频大张角射灯天线产品规格书.pdf
- 宇通客车营运能力分析.docx
- 红色大气简约风红色经典故事PPT模板.pptx VIP
文档评论(0)