导航:首页 > 源码编译 > 算法设计与分析期末试卷

算法设计与分析期末试卷

发布时间:2022-10-02 20:12:00

Ⅰ 安徽工业大学 算法设计与分析试卷

中华人民共和国教育部 颁发 的 < 国家奖学金荣誉证书> 教育部部长 签章 !!! 另外大学 还用 水晶 做出 奖杯 刻上 人名!!!

Ⅱ 中国海洋大学研一往年算法分析与设计期末考试试题

中国海洋大学相关信息,
可询问学校研究生院。
只要努力付出过,
就会有收获。

Ⅲ 算法设计分析期末考题目,“密码学中的算法”设计实现单表置换密码,能对英文和数字组成的短文进行加密

很久没用C了,写的比较凌乱,呵呵

#include "stdio.h"
#include "conio.h"
#define MAP_SIZE 128
#define CONTENT_SIZE 1000
#define VALID_CHAR_COUNT 62
char map[MAP_SIZE], rmap[MAP_SIZE], keymask[MAP_SIZE];
char input[CONTENT_SIZE], output[CONTENT_SIZE];
void initialize(char *array)
{
int i;
for(i = 0; i < MAP_SIZE; ++i)
{
array[i] = i;
keymask[i] = 0;
}
}
int isvalidchar(char c)
{
/*判断字符是否字母或数字*/
return c >= '0' && c <= '9' || c >= 'a' && c <= 'z' ||c >= 'A' && c <= 'Z';
}
int convertindex(int i)
{
/*将0~61的数字转换到转换表中对应区段的下标
即0~9 => 数字,10~35 => 大写字母,36~61 => 小写字母*/
if(i < 10)
{
return i + '0';
}
i-=10;
if(i < 26)
{
return i + 'A';
}
i-=26;
if(i < 26)
{
return i + 'a';
}
}
void gen_map(char *key)
{
/*生成加密用的置换表*/
int index = 0, i;
initialize(map);
while(*key)
{
/*先将密钥中的字符加入转换表,并做标记*/
if(keymask[*key] == 0)
{
keymask[*key] = 1;
map[convertindex(index++)] = *key;
}
++key;
}
for(i = 0; i < MAP_SIZE; ++i)
{
/*将密钥中未出现的字符依次加入转换表*/
if(keymask[i] == 0 && isvalidchar(i))
{
map[convertindex(index++)] = i;
}
}
}
void gen_rmap(char *key)
{
/*生成解密用的置换表*/
int index = 0, i;
initialize(rmap);
while(*key)
{
/*先将密钥中的字符加入转换表,并做标记*/
if(keymask[*key] == 0)
{
keymask[*key] = 1;
rmap[*key] = convertindex(index++);
}
++key;
}
for(i = 0; i < MAP_SIZE; ++i)
{
/*将密钥中未出现的字符依次加入转换表*/
if(keymask[i] == 0 && isvalidchar(i))
{
rmap[i] = convertindex(index++);
}
}
}
void encrypt(char *key)
{
int i, len = strlen(input);
gen_map(key);
for(i = 0; i < len; ++i)
{
/*对每一个原文中的字符,从置换表中找到对应字符并加入输出缓冲*/
output[i] = map[input[i]];
}
output[len] = 0;
}
void decrypt(char *key)
{
int i, len = strlen(input);
gen_rmap(key);
for(i = 0; i < len; ++i)
{
/*对每一个原文中的字符,从置换表中找到对应字符并加入输出缓冲*/
output[i] = rmap[input[i]];
}
output[len] = 0;
}
int main()
{
char key[CONTENT_SIZE];
int opt;
while(1)
{
do
{
printf("Input 1 to encrypt, 2 to decrypt, or 0 to exit:");
scanf("%d%c", &opt);
}
while(opt != 1 && opt != 2 && opt != 0);
if(opt == 0)
{
return 0;
}
puts("Content:");
gets(input);
puts("Key:");
gets(key);
if(opt == 1)
{
encrypt(key);
}
else
{
decrypt(key);
}
puts(output);
}
}

Ⅳ 《算法设计与分析》。求大神帮帮忙。选择题

这个看上去就是普通的数学题吧,因为x(1)=0,根据条件可知x(2)=5,所以只有选项D符合题意。另外感觉这个题和算法没有太大关系。。。

阅读全文

与算法设计与分析期末试卷相关的资料

热点内容
机械设计手册pdf电子版 浏览:97
为什么网吧服务器会掉盘 浏览:525
文电通pdf套装版4 浏览:326
如何使用百度地图服务器地址 浏览:920
吉林租服务器托管云服务器 浏览:781
中越反击战电影全集 浏览:116
溯源码验证码无效 浏览:354
风月片有酷网站 浏览:687
大尺度电影韩剧 浏览:680
安卓手机怎么联接a 浏览:716
好色小姨 小说 浏览:677
网站的源码怎么使用 浏览:61
我的世界服务器b2怎么玩 浏览:582
付费电影免费看。 浏览:844
白领解压培训 浏览:578
密码加密用在什么地方 浏览:13
python教程100字 浏览:443
pdf小马 浏览:983
马云入股服务器 浏览:935
sdca哪个文件夹最好用 浏览:992