-
古典密碼中,主要的思想為移位算法及置換算法。
1.移位密碼
密鑰K為整數,且取值空間為0到25;加密函數:x = x + k (mod 26);解密函數:x = x - k (mod 26)。當K=3時,為凱撒密碼。
2.仿射密碼
密鑰對由a、b組成,整數a滿足 gcd(a, 26) = 1,整數b的取值空間為0到25;加密函數:x = ax + b(mod 26);解密函數:x = a*y - a*b (mod 26)。當a=1,b=3時,為凱撒密碼。
3.維吉尼亞密碼
首先確定密鑰長度(本例中密鑰只采取個位數字,所以取決于輸入密鑰的長度),然后輸入滿足這個長度的向量;加密:取明文第一個字母并將之移k1位,這里k1=1,第二個字母移k2位,k2=2,一旦到了密鑰末尾,又從頭開始。
4.換位密碼
首先確定密鑰長度,輸入長度為5的0到4的整數序列,將明文分成每5個字母一組,每組字母按照密鑰進行換位。
標簽:
密碼
上傳時間:
2016-02-09
上傳用戶:jqy_china
-
編程題(15_01.c)
結構
struct student
{
long num
char name[20]
int score
struct student *next
}
鏈表練習:
(1).編寫函數struct student * creat(int n),創建一個按學號升序排列的新鏈表,每個鏈表中的結點中
的學號、成績由鍵盤輸入,一共n個節點。
(2).編寫函數void print(struct student *head),輸出鏈表,格式每行一個結點,包括學號,姓名,分數。
(3).編寫函數struct student * merge(struct student *a,struct student *b), 將已知的a,b兩個鏈表
按學號升序合并,若學號相同則保留成績高的結點。
(4).編寫函數struct student * del(struct student *a,struct student *b),從a鏈表中刪除b鏈表中有
相同學號的那些結點。
(5).編寫main函數,調用函數creat建立2個鏈表a,b,用print輸出倆個鏈表;調用函數merge升序合并2個
鏈表,并輸出結果;調用函數del實現a-b,并輸出結果。
a:
20304,xxxx,75,
20311,yyyy,89
20303,zzzz,62
20307,aaaa,87
20320,bbbb,79
b:
20302,dddd,65
20301,cccc,99
20311,yyyy,87
20323,kkkk,88
20307,aaaa,92
20322,pppp,83
標簽:
student
struct
score
long
上傳時間:
2016-04-13
上傳用戶:zxc23456789
-
segment,一個簡單的中文分詞程序,命令行如下:
java -jar segmenter.jar [-b|-g|-8|-s|-t] inputfile.txt
-b Big5, -g GB2312, -8 UTF-8, -s simp. chars, -t trad. chars
Segmented text will be saved to inputfile.txt.seg
標簽:
segment
分
程序
上傳時間:
2014-01-04
上傳用戶:ynzfm
-
本實訓是有關線性表的順序存儲結構的應用,在本實訓的實例程序中,通過C語言中提供的數組來存儲兩個已知的線性表,然后利用數組元素的下標來對線性表進行比較。通過對本實訓的學習,可以理解線性表在順序存儲結構下的操作方法。
在實訓中,我們設A=(a1,a2,…,an)和B=(b1,b2,…,bm)是兩個線性表,其數據元素的類型是整型。若n=m,且ai=bi,則稱A=B 若ai=bi,而aj<bj,則稱A<B;除此以外,均稱A>B。設計一比較大小的程序。
標簽:
線性
順序存儲
上傳時間:
2014-01-14
上傳用戶:www240697738
-
對PL0原編譯器進行了以下的擴充:1.增加以下保留字else(elsesym), for(forsym),to(tosym),downto(downtosym),return(returnsym),[(lmparen),](rmparen)
2.增加了以下的運算符:+=(eplus),-=(eminus),++(dplus),--(dminus)
取址運算符&(radsym),指向運算符@(padsym)
3.修改單詞:修改不等號#為<>
4.擴充語句:(1)增加了else子句
(2)增加了for語句
5.增加運算:(1).++運算 (2).--運算;(3).+=運算 (4).-=運算;(5).&取址運算;
(6).@指向運算;
6.增加類型:(1).增加多維數組a[i1][i2][i3]……[i(n-1)][i(n-2)][in] (2).增加指針類型(任何變量都能存放指針,但不支持指針的指針,如b:=@@a應該改寫為c:=@a,b:=@c)
7.將過程procedure擴展為函數:(1).允許定義過程時在其后加參數(var a, var b,……..,var n) (2)允許通過指針向函數形式參數傳地址;(3)允許返回值;可以用 a:=p(a,b,c….,n) 返回
標簽:
downtosym
returnsym
elsesym
downto
上傳時間:
2016-07-02
上傳用戶:saharawalker
-
Trie樹既可用于一般的字典搜索,也可用于索引查找。對于給定的一個字符串a1,a2,a3,...,an.則采用TRIE樹搜索經過n次搜索即可完成一次查找。不過好像還是沒有B樹的搜索效率高,B樹搜索算法復雜度為logt(n+1/2).當t趨向大,搜索效率變得高效。怪不得DB2的訪問內存設置為虛擬內存的一個PAGE大小,而且幀切換頻率降低,無需經常的PAGE切換。
標簽:
Trie
樹
搜索
上傳時間:
2016-07-06
上傳用戶:sk5201314
-
設平面上分布著n個白點和n個黑點,每個點用一對坐標(x, y)表示。一個黑點b=(xb,yb)支配一個白點w=(xw, yw)當且僅當xb>=xw和yb>=yw。若黑點b支配白點w,則黑點b和白點w可匹配(可形成一個匹配對)。在一個黑點最多只能與一個白點匹配,一個白點最多只能與一個黑點匹配的前提下,求n個白點和n個黑點的最大匹配對數。
標簽:
分布
上傳時間:
2013-12-20
上傳用戶:米卡
-
一元稀疏多項式計算器的基本功能是:
(1)輸入并建立多項式;
(2)輸出多項式,輸出形式為整數序列:n,c1,e1,c2,e2,….,cn,en, 其中n是多項式的項數,ci和ei分別是第I項的系數和指數,序列按照指數降序排列;
(3)多項式a和b相加,建立多項式a+b
(4)多項式a和b相減,建立多項式a-b.
標簽:
多項式
稀疏
計算器
輸入
上傳時間:
2016-10-25
上傳用戶:時代電子小智
-
編寫一個java應用程序。用戶從鍵盤輸入一個1-9999之間的數,程序將判斷這個數是幾位數,并判斷這個數是否回文數。回文數是指將數含有的數字逆序排列后得到的數和原數相同,例如12121,4224,6778776等都是回文數。
1)程序具有判斷用戶的輸入是否為合法整數的功能。對非法輸入(例如含有字母)要進行處理。
2)要判斷輸入數的位數,并輸出相關信息。
3)要判斷是否回文數。
二、二戰期間,英國情報人員獲取德軍的一機密電報,電報的內容為:
bzdz izu sxgzd vs lh ,vpzg woflsh vs vwrh vhlsddlmp glm wrw gzy vsg .gflyz gstfzu bvsg gzsd hdmlp vml lm ,hghzvy wmz hwiry mvvdgvy izd z hzd vivsg ,ltz tmlo tmlO
情報人員已經知道,這段電報的加密方式為:
1. 首先將字符串的順序顛倒。
2. 字母互換的規律為:A->Z, B-Y, C-X...X->C, Y->B, Z-A a->z, b->y, c-x...x->c, y->b, z->a.
3. 非字母字符保持不變。
請編程幫助情報人員破譯這份機密電報。給出注釋良好的源程序和程序運行后的結果。
標簽:
java
9999
編寫
應用程序
上傳時間:
2017-06-02
上傳用戶:dengzb84
-
現在,有兩個正整數A和B,例如A是345,B是478,現在,需要把B插入到A里,
而A有三位,所以有四個位置選擇,所得結果分別是:
478345, 347845, 344785, 345478
我們通過對比可以知道,在這當中最小的一個是344785
這兩個正整數長度不超過100000位,各個位均不包含數字0
現在的目標是,要找出插入后所能得到的最小的整數,輸出這個整數
標簽:
上傳時間:
2014-01-05
上傳用戶:jackgao