2022年密码学随机全排列生成程序及其应用开发实验一报告 .pdf

上传人:Che****ry 文档编号:35744647 上传时间:2022-08-23 格式:PDF 页数:5 大小:37.46KB
返回 下载 相关 举报
2022年密码学随机全排列生成程序及其应用开发实验一报告 .pdf_第1页
第1页 / 共5页
2022年密码学随机全排列生成程序及其应用开发实验一报告 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年密码学随机全排列生成程序及其应用开发实验一报告 .pdf》由会员分享,可在线阅读,更多相关《2022年密码学随机全排列生成程序及其应用开发实验一报告 .pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实验报告课程:班级:学号:姓名:实验日期:指导老师:实验序号:实验一实验题目:随机全排列生成程序及其应用开发实验成绩:实验评语:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 一实验内容:编制生成0n(n 255)的一个全排列的程序,可选择下列两个方法之一或自行设计另外方法:方法 1: 从一个随机文件读取n+1 字节数据d0,d1,? ,dn。 由预先取定的一个0n 的全排列P(比如, 可为 0n 的自然排列) 开始,依次对i=

2、n,n-1,? ,1,计算:j=di-1+di(mod i)交换 P 的第i 项第 j 项(在此注意我们假定P 从第0 项开始)。方法 2:用一个随机函数产生m(mn)字节数据d1,d2,? ,dm。对d1(mod(n+1), d2(mod(n+1) ,dm(mod(n+1) 依次考察,把后面出现的与前相同者去掉;在最后剩下的数据中,把没有出现的0n 依序补写于后面。二实验设计 :我采用的是另外一种方法,通过构造两个数组,给一个数组赋值,它包含的内容为:ai=i, 0im, m 为我们所需的随机数个数。另外一个数组中包含的是生成随机数主要程序所生成的m 个随机数。通过将srand( (unsi

3、gned)time( NULL ) )和 rand()%m 相结合来产生随机数。然后,运用替换的思想,建立swap函数操作这两个数组,避免了输出随机数有重复的情况。最后输出不重复的随机数m 个随机数。具体代码请见下面实验代码。三实验代码:有两种实验代码1:#include stdio.h #include stdlib.h #include time.h swap(int *pm,int *pn) int temp; temp=*pm; *pm=*pn; *pn=temp; void main() int i; int a256; int n=256; int m; start: printf

4、(n此程序可产生范围在0 到 255 的随机数 n); printf(n请输入你所需使用的随机数个数(不大于256):n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - scanf(%d,&m); if( mn ) printf(n 输入数 %d 比%d大, 请重新输入!n,m,n); goto start; srand( (unsigned)time( NULL ) ); for(i=0; i=0; i-) /* pa=&

5、ai; pb=&arand()%m+0;*/ swap(&ai, &arand()%m+0); /这表示是样为了使产生的随机数中包含0 printf(-n 以下为产生的不重复的随机数:n) ; for(i=0; i=m-1; i+) printf(%dt,ai ); 2. #include stdio.h #include stdlib.h #define N 256 char PN; char dN; char *full_array(int n) int i,j; char filename20; FILE *fp; char temp; start: printf(n请输入随机数据采样文

6、件名:n); scanf(%s,filename); if(fp=fopen(filename,rb)=NULL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - printf(没有找到文件:%sn,filename); goto start; fread(d,n+1,1,fp); fclose(fp); printf(n原文件中的字母序列如下:); for(i=0;i=n;i+) if(i)%8=0) printf(n); p

7、rintf(d%d=%c ,i,di); printf(nn取定自然排列如下:); for(i=0;i0;i-) j=(di-1+di)%i; temp=Pi; Pi=Pj; Pj=temp; return(P); void main() int num,i; printf(输入要进行全排列的字母个数:n); scanf(%d,&num); full_array(num-1); printf(nn随机排列后的新排列为:); for(i=0;inum;i+) if(i)%8=0) printf(n); printf(%d(%c) ,i,dPi); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - */ 四实验调试与分析:五实验总结:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com