回分類題庫
d049: 3.三分密碼
關鍵字: 100年彰雲嘉區複賽

測資點 : 2 | Time Limit : 1000 ms | Memory Limit : 32000 KB
Accepted : 68 Times / 66 Users | Submit : 91 Times / 67 Users | Accepted rate : 99%
題目加入時間 : 2012-07-06 14:47

Content: 简体中文

三分密碼由Felix Delastelle發明。三分密碼加密的動作說明如下:給定一組以3個3×3矩陣所代表的替代密碼表,允許使用的字元包括26個英文字母和符號 /。每一個英文字(26字母與符號 / )均對應到一個三維坐標,以(*,*,*)的字串來表示,其中*的可能之值為1, 2或3。然後,針對所要加密的字母,寫出要加密的字母的代表座標。字母的坐標以直行順序方式填入轉換表,再以橫列順序取出三個數字一組,再將這三個數字當成坐標,找出此座標在替代密碼表中對應的字母,便得到密文。

以下範例以加密HELLOWORLD來說明三分密碼的加密法。假設給定的替代密碼表固定為下表:

查表後,每一字母的三維座標以行向量的方式填入轉換表中,其中H位於第二個矩陣的第二列第二行,故編碼為(2, 2, 2)。E位於第一個矩陣第一列第二行,故編碼為(1, 1, 2)。

再將以上的轉換表逐列以三個數字一組讀出,即(2,1,1), (1,1,2), (1,2,1), (3,2,1), (1,1,1), …。再依序將這些座標查詢替代密碼表中所代表的文字依序輸出變成加密後的密文。例如(2,1,1)查出於替代密碼表中第二個矩陣第一列第一行,對應字母為N,例如(1,1,2)查密碼表中第一個矩陣第一列第二行,對應字母為E。整個字串加密後的密文如下表:

設計一個程式,由檔案輸入一些字串,將每一個字串利用三分密碼加密後的字串輸出。

Input:

測試資料第一列有一正整數N (2<N<=10)表示測試資料組數,
接下來有N組資料,每一組資料為一長度小於250字的字串。

Output:

針對每一組資料,輸出其轉換後的字串,每一組資料一列。

Sample Input:help

若題目沒有特別說明,則應該以多測資的方式讀取,若不知如何讀取請參考 a001 的範例程式。
2
HELLOWORLD
GOODMORNING

Sample Output :

NECKLDENPD
NYJHLNLRVYD

Hint :

Author :

100年彰雲嘉區複賽 (管理員:sagit)

  Solve it!   Status Forum