替代密码的原理是使用替代法进行加密,就是将明文由其它的字母、数字或符合所代替后形成密文。这里每个明文字母对应的密文字母可能是一个,也可能是多个。接收者对密文进行逆向替换即可得到明文。替代密码有五种表现形式:1单表代替即简单替代密码或者称为单字母代替,明文字母表中的一个字符对应密文字母表中的一个字符。这是所有加密中最简单的方法。2多名码代替就是将明文字母表中的字符映射为密文字母表中的多个字符。多名码简单代替早在1401年就由DuchyMantua公司使用。在英文中,元音字母出现频率最高,降低对应密文字母出现频率的一种方法就是使用多名码,如e可能被密文5、13或25替代。3多音码代替就是将多个明文 Read More
posted @ 2013-03-31 00:03 再见,少年 Views(1901) Comments(0) Diggs(0) Edit
问题描述:经典问题的描述如下:在市场上,鸡的售价分别是:公鸡3文钱1只,母鸡2文1只,小鸡1文3只。问拿100文钱想买100只鸡,则公鸡、母鸡和小鸡应各买多少只? 现在要解决的问题是:如果鸡的价格保持不变,有人拿钱若干,想使买到的鸡数与钱数相当,问有哪些解决方案。输入:输入数据包含一个整数N(10<=N<=10000),表示钱数。输出:输出数据需列出满足买到的鸡数与所持钱数相当的所有解,每个解占一行,包含三个整数分别表示要买的公鸡、母鸡和小鸡的数量,用空格分隔。存在多组解的情况下,输出按升序排列(即0 0 1在0 1 0之前)。输入样例:10输出样例:0 4 6一般的代码:#inc Read More
posted @ 2013-03-15 22:30 再见,少年 Views(323) Comments(0) Diggs(0) Edit
首先打开eclipse,在下端工具条处如下图:打开servers后,在其下方空白处右键单机创建一个Tomcat(当然前提是机器提前已经安装)然后打开window->preference,如下图:开始进行设置选中general->workspace,将other选项改为UTF-8,如下图:然后在preferences中的web and xml中,将encoding设置为ISO 10646/Unicode(UTF-8)如下图:最后设置完成。建立工程进行验证,查看配置是否正确:选择路径:file->new->other->web->Dynamic Web Proj Read More
posted @ 2013-03-09 10:24 再见,少年 Views(183) Comments(0) Diggs(0) Edit
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。分析:为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是输入的是单向链表,只有从前往后的指针而没有从后往前的指针。因此我们需要打开我们的思路。既然不能从尾结点开始遍历这个链表,我们还是把思路回到头结点上来。假设整个链表有n个结点,那么倒数第k个结点是从头结点开始的第n-k-1个结点(从0开始计数)。如果我们能够得到链表中结点的个数n,那我们只要从头结点开始往后走n-k-1步就可以了。如何得到结点数n?这个不难,只需要从头开始遍历链表,每经过一个结点,计数器加一就行了。这种思路的时 Read More
posted @ 2013-03-07 21:00 再见,少年 Views(9144) Comments(0) Diggs(0) Edit
邻接表的实现(改进版) 这次代码是在上一次实现邻接表的基础上进行的改进,减少了一个类(用于存储横向结构即直接相邻节点的类),同时在Headlinklist增设了一个Topoint类的end指针用于为每个出发点插入相应的邻接节点,较上次代码来说减少了很多指针,结构上大大简化,降低了思维难度,比较容易想清楚结构。矩阵中存储的图的结构如下:实现代码如下:#include <iostream>#include <string.h>using namespace std;#define WHITE -1;#define GRAY 0;#define BLACK 1;class T Read More
posted @ 2012-12-30 11:47 再见,少年 Views(286) Comments(0) Diggs(0) Edit
邻接矩阵实现:运用了链式结构,其中包括一条用来存储起始节点的链表(纵向),另外一条用来存储与特定的起始点直接相邻的邻接点(横向);有待改进的是对于横向结构链表的存储存在头结点的冗余,因为在纵向结构中为了将其连接起来也为其设置了头结点。代码如下:#include <iostream>#include <string.h>using namespace std;#define WHITE -1;#define GRAY 0;#define BLACK 1;class Topoint{ public: string topointname; int topointweight Read More
posted @ 2012-12-30 10:47 再见,少年 Views(202) Comments(0) Diggs(0) Edit
时间片轮转调度算法实现:#include <iostream>#include <string.h>#include <ctime>#include <windows.h>using namespace std;#define BLOCK -1;#define READY 0;#define RUNING 1;int flag;void Runing();class Node{ public: string pid; //进程ID int priority; ... Read More
posted @ 2012-12-28 17:52 再见,少年 Views(689) Comments(0) Diggs(0) Edit
问题描述: 这是一个比较经典的问题,棋盘上有8x8共64个格子,要求将八个皇后放置到棋盘上,同时满足任意两个皇后不同行,不同列,并且不位于同一斜线上(45度和135度的斜线),这个问题采用的是回溯法解决的,下述代码是经过学习研究别人的代码得到。代码如下:#include <iostream>#include <stdlib.h>#include <math.h>using namespace std;int position[9];char map[9][9];int sum=0;bool Place(int x,int row){ for(int i=1; Read More
posted @ 2012-12-24 21:53 再见,少年 Views(253) Comments(0) Diggs(0) Edit
哦,今天用java做了一下生产者、消费者问题,感觉代码有点脑残,不过希望分享出来起到抛砖引玉的目的,感觉这个程序不太令人满意的地方是:1)生产者必须全部生产完毕(10个)后,消费者才可以消费。2)消费者必须全部消费完毕(10个)后,生产者才可以生产。程序段一:class Q{ String name; int num=0; int size=10;}class Producer implements Runnable{ Q q; Producer(Q q) { this.q = q; this.q.name="producer"; ... Read More
posted @ 2012-12-24 16:46 再见,少年 Views(324) Comments(0) Diggs(0) Edit
问题描述: 生产者进行生产,将生产的产品放入缓冲区;消费者从缓冲区中取出产品进行消费;当缓冲区已经放满产品时,生产者应该暂停生产,等待缓冲区中腾出空间来存放生产出来的产品;当缓冲区为空时,消费者不可以从缓冲区取产品拿来消费,必须等待生产者生产过后才能从缓冲区中取出产品来消费。实现过程中用到了size和n两个变量,size表示缓冲区的大小,n表示当前缓冲区中产品的数目,这段代码实现了互斥访问临界变量,并且生产者不必待消费者消费完缓冲区中全部产品后才进行生产,同时消费者也不必等待生产者放满缓冲区后才进行消费,是对前一次代码的改进。代码实现如下:class Q{ String name; ... Read More
posted @ 2012-12-24 16:43 再见,少年 Views(2119) Comments(0) Diggs(0) Edit