【算法导论】【第二周】
来源:互联网 发布:linux 开源 编辑:程序博客网 时间:2024/04/27 23:37
1. 资料阅读。 (20分钟)
查阅 百度百科(http://baike.baidu.com/ )中“RSA”、“数字签名”、“公钥”、“DES”等4个名词的解释。理解 公钥加密 与 数字签名 之间的联系与区别,能够用自己的话阐述两者的概念。
答:http://bbs.csdn.net/topics/80025718阐述与理解:
公钥加密的公钥是对任何人公开的,但是公钥加密的信息必须用私钥来解密,用私钥签名的数据只能用公钥验证。
数字签名可以由公钥构成,接收方可以通过验证数字签名与发送方的数据和公钥来验证信息。认为数字签名要比公钥加密广泛。但是数字签名中的公钥却是每个人都可以验证,这是不保密的。
数字签名通过哈希算法对信息进行摘要产生唯一又紧凑的信息,并用自己的私钥产生数字签名,保密信息。
=======================================================================================
判断一个正整数是否为质数的算法。函数签名如下
int isPrime(long a)
输入:一个长整数a
输出:返回1(为质数),返回0(非质数)
----------------------------------------------------------------
- public int main() {
- Scanner in=new Scanner(System.in);
- System.out.print("请输入一个正整数: ");
- int n = in.nextInt();
- int b=0;
- for(int i=2;i<Math.sqrt(n);i++){
- if(n%i==0)
- return b;
- else
- b=1;
- }
- return b;
- }
==========================================================================================================================
随机生成一个n bit位的长整数。函数签名如下
long createRndInteger(int n)
输入:随机数bit位的长度为n(解释:3bit位,则最大为111,最小为100;n bit位,则该数字二进制长度为n)
输出:返回该随机数
--------------------------------------------------------------
- package createRndInteger;
- import java.util.Random;
- import java.util.Scanner;
- public class CreateRndInteger {
- public static void main(String[] args) {
- System.out.print("请输入随机生成 n bit的长整数的 n : ");
- Scanner scan=new Scanner(System.in);
- int n=scan.nextInt();
- String rnd=createRndInteger(n);
- System.out.println("随机生成 "+n+" bit的长整数是: "+rnd);
- }
- public static String createRndInteger(int n){
- /*
- StringBuilder sb = new StringBuilder(digCount);
- for(int i=0; i < digCount; i++)
- sb.append((char)('0' + rnd.nextInt(10)));
- return sb.toString();
- */
- Random rnd=new Random();
- StringBuilder sb=new StringBuilder(n);
- for(int i=0;i<n;i++)
- sb.append((char)('1'+rnd.nextInt(n)));
- return sb.toString();
- }
- }
================================================================================
随机生成一个n bit位的长质数。函数前面如下
long createRndPrime(int n)
输入:随机质数的bit位长度为n
输出:nbit位长度的质数
关键为使用随机化算法判断一个长整数是否为素数(P33)
---------------------------------------------------------------------------
通过完成前面两题,第三题可以将前面两题结合起来解决?
0 0
- 【算法导论】【第二周】
- 大数据算法导论第二周
- 算法导论第二章
- 算法导论第二章
- 算法导论 第二章
- 算法导论 第二章
- 算法导论第二集
- 算法导论-第二章
- 《算法导论》第二天
- 算法导论 第二部分
- 算法导论第二章
- 算法导论 第二章InsertSort
- 算法导论 第二章MergeSort
- 《算法导论》第二章 入门
- 算法导论第二章心得
- 算法导论:第二章总结
- 算法导论 第二章作业
- 算法导论第二章笔记
- 一维加噪信号的平滑处理(3)
- 通过分析 JDK 源代码研究 Hash 存储机制
- Codeforces Round #236 (Div. 2)------A,B
- 用objective-c 实现常用算法(冒泡、选择、快速、插入)
- Tomcat学习之一:tomcat 启动错误与警告
- 【算法导论】【第二周】
- HDU 2601 An easy problem 因式分解
- 编程
- 某成教管理CMS系统数据库连接信息泄露
- 微信公众平台开发之开发语言
- tmux 配置
- 多线程私有资源和共享资源
- 类成员声明与定义前加inline的区别(C++ inline 函数)
- UITableView 实现异步加载图片之改进