信息安全算法设计实验报告

上传人:世*** 文档编号:175414961 上传时间:2021-03-22 格式:DOC 页数:11 大小:77.50KB
返回 下载 相关 举报
信息安全算法设计实验报告_第1页
第1页 / 共11页
信息安全算法设计实验报告_第2页
第2页 / 共11页
信息安全算法设计实验报告_第3页
第3页 / 共11页
信息安全算法设计实验报告_第4页
第4页 / 共11页
信息安全算法设计实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《信息安全算法设计实验报告》由会员分享,可在线阅读,更多相关《信息安全算法设计实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、实验总成绩: 装 订 线报告份数: 信息安全算法设计实验报告专业班级: 学生姓名: 学号(班内序号): 年 月 日【实验内容】根据题目的要求,编程实现相关信息安全的基本算法,编程语言不限。【实验时间和地点安排】时间:课内上机时间地点:信息安全实验室指导老师: XX【实验题目及要求】(一)DNA序列1.输出附件DNA.txt文件中每种DNA碱基三联体的个数。从AAA到TTT, 一共64种三联体。2.算法代码:#include #include #include int main()int A444 = 0;int d3;char r4 = A, C, G, T;int index;int i,

2、j, k, m;FILE *fp;double start, finish;char ch;int isLEGAL256;/ 对可能出现的ASCII符号判断并求值, 一身二任start = clock();for (i = 0; i -1)dm = index;+m;if (m = 3)+Ad0d1d2;m = 0;ch = fgetc(fp);for(i = 0; i 4; +i)for(j = 0; j 4; +j)for(k = 0; k 4; +k)printf(%c%c%c: %dt, ri, rj, rk, Aijk);fclose(fp);printf(n);finish = c

3、lock();printf(时间: %.3fms, finish - start);return 0;3.实验结果:4实验心得:通过这次实验,我体会到做完测试实验并非不容易成功,遍历算法对实验的影响,处理文件的速度不一样。我曾经用if else if和switch来用来判断,发现if else竟然比switch运行的时间快。所以在判断if else-if和switch的运行速度的时候不能单纯说谁快谁慢。随后听老师用以上的的映射后,其中判断的跳转很简单。这种映射的方法能很快速的解决多路分支的问题。(二)二维求和问题1.设已定义某int型二维向量a,且对其任意元素aij赋值为i*j+j+1,则求部

4、分和sij= 。2.实验代码#include#include#includeusing namespace std;using std:vector;void perfixsum(const vector vector & A, vector vector & S,const int u,const int v)int i;S = A;for(i=0;iu;i+)for(int j=1;jv;j+)Sij += Sij-1;for(i=1;iu;i+)for(int j=0;jv;j+)Sij += Si-1j;void main()int u,v,sum=1;cout请输入矩阵的行列uv;v

5、ector vector a(u);vector vector s(u);for(size_t i=0;iu;i+)ai.resize(v);for(size_t j=0;jv;j+)aij = sum+;perfixsum(a,s,u,v);for( i=0;iu;i+)for(size_t j=0;jv;j+)coutsetw(5)sij;coutendl;3.实验结果4实验心得通过这次实验,我个人得到不少收获,培养综合应用相关知识来解决测试问题的基础理论,培养在实践中研究问题,分析问题和解决问题的能力。因为做的是2维的,只是在一维求和的基础上,把n行的数加上n-1行的数,就得到了,第n行

6、的数据。(三)随机行走1.我们面对一个有许多小瓷砖拼起来的三角形区域,每块是边长为一的等边三角形,K只小虫在此区域内随机行走,小虫可以停留在原来的区域内,也可以走到与原来相邻的三个区域内,即共有四种选择。每次模拟过程中,小虫需要多少步才能把整个区域走完,若能走遍,输出每只小虫到小瓷砖的次数,若不能走遍,说出理由。2.实验代码#include #include #include #includeusing std:vector;using namespace:std;main()int i,j,n,flag=1,p,q;int data;cout请输入阶数n;vector vector mat(

7、n);/2维向量for(i=0;in;i+)mati.resize(2*i+1);for(j=0;j2*i+1;j+)matij=0;mat00 = 1;i=0;j=0;srand(unsigned)time(NULL);/随机数while (flag)data = rand()%4;switch(data)case 0:matij+;break;/在原地case 1:j-; /左移if(j2*i) j-;matij+;break; case 3:if(!(j%2)/j为偶数是上三角形,下移 i+,j+;if(i=n)i-;j-;elsei-,j-;if(i0)i+;j+;matij+;fla

8、g = 0;for(p=0;pn;p+)for(q=0;q2*p+1;q+)if(matpq=0)flag = 1; p = n; q = 2*p;for(i=0;in;i+)for(j=0;j2*i+1;j+)coutsetw(4)matij;coutendl;3.实验结果4.实验心得在做实验前,一定要将课本上的知识吃透,因为这是做好实验的基础,否则就会使实验难度加大,浪费做实验的时间。这次没有考虑算法的时间。这种用时间的为种子的随机数是真正的随机数,在实验中的跳转,没有想到好的映射的方法,所以选用了switch。实验中,小虫碰壁时也就是小虫移动位置在向量外,视为没有移动。最主要是要写出每个

9、数字所对应的下边移动的方向。向量也比用数组方便,和节约资源。(四)幻方1.所谓幻方,就是一个n行n列的正方形,共有n2个格子,将1、2、3、n2这些数字放到这些格子里,使其每行的和、每列的和及两条对角线的和都是一个相同的数S,S称为幻和。找到所有的符合条件的幻方。2.实验代码#include #include #include #include using std:vector;using namespace:std;int n;void permute(vector& a,int k)size_t i; /计数变量int swapTemp;/交换首元素暂时存变量int const sum =

10、 n*(1+n*n)/2;int sum1 =0 ;if( k=a.size() )/到终止条件,则在屏幕上输出某一个排列for(i=0;in;i+)/ 斜向 sum1 += ai*n+i;if(sum != sum1)return;for(i=0;ia.size();i+)coutsetw(3)ai;if(i+1)%n =0)coutendl;coutendl;else/未到终止条件,用轮换首元素的方式继续递归for(i=k;ia.size();i+)/先把首元素ak与后面的元素交换swapTemp=ak;ak=ai;ai=swapTemp;if( (k+1)%n = 0 )/横向for(int i=0;i= n*(n-1)/纵向int m = k-n*(n-1);for(int i=0;in;i+)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号