Ex4-22 單射函數問題
« 問題描述:
設函數f將點集S = {0,1, , n -1}映射為f (S) = { f (i) | iÎ S} Í S 。單射函數問題要
從S中選取最大子集X Í S 使f (X )是單射函數。
例如,當n=7, f (S) = {1,0,0,2,2,3,6} Í S 時, X = {0,1,6} Í S 是所求的最大子集。
« 編程任務:
對于給定的點集S = {0,1, , n -1}上函數f,試用抽象數據類型隊列,設計一個O(n)時
間算法,計算f的最大單射子集。
« 數據輸入:
由文件input.txt 提供輸入數據。文件的第1 行有1 個正整數n,表示給定的點集
S = {0,1, , n -1}。第2 行是f (i)的值,0 £ i < n。
« 結果輸出:
程序運行結束時,將計算出的f的最大單射子集的大小輸出到output.txt中。
輸入文件示例 輸出文件示例
input.txt
7
1 0 0 2 2 3 6
output.txt
3
標簽:
Iacute
61516
laquo
Icirc
上傳時間:
2016-05-28
上傳用戶:tyler
一、RSA基本原理
對明文分組M和密文分組C,加密與解密過程如下:
C = POW (M , e) mod n
M = POW(C , d) mod n = POW(POW( M ,e), d) mod n=POW( M,e*d)
其中POW是指數函數,mod是求余數函數。
其中收發雙方均已知n,發送放已知e,只有接受方已知d,因此公鑰加密算法的公鑰為
KU={ e , n},私鑰為KR={d , n}。該算法要能用做公鑰加密,必須滿足下列條件:
1. 可以找到e ,d和n,使得對所有M<n ,POW(M ,e*d)=M mod n .
2. 對所有 M<n,計算POW (M , e)和POW(C , d)是比較容易的。
3. 由e 和n確定d是不可行的
標簽:
RSA
分組
上傳時間:
2014-08-04
上傳用戶:sevenbestfei