從空格(ASCII碼32)到~(ASCII碼126)。表內的第一行與表頭相同,下面的每一行都與上一行的內容相同,只是字符相左移動了一個位置。這樣,下一行的最后一個字符與上一行的第一個字符相同。
為了進行文本編碼,可以任意選擇一個字符串,稱之為編碼字符串,也就是常說的密鑰。為解釋編碼方法,我們假設密鑰是Walrus,待編碼的文本(即常說的明文)是:
Meet me in St. Louis
我們在待編碼的文本之上重復書寫上述密鑰,使得其長度與待編碼文本相同:
WalrusWalrusWalrusWa
Meet me in St. Louis
從上述兩行文本中按列對應方式依次提取一個字符,可得到多個字符對:WM、ae、le等,這些字符對可用作上表的索引。這樣,依次以這些字符對作為索引可從上表查到一系列字符,這些字符就構成了文本編碼,即常說的密文。例如,第W行第M列隊應得字符是%,因此編碼的第一個字符就是%;第a行第e列對應的字符是G;第l行第e列對應的是R。依次進行上述查找操作,可以得到完整的密文
%Grgua=aVauGLol?eiAU
進行相反的操作就可對該文本解碼。
編寫編碼/解碼程序,可以對文本文件或鍵盤輸入的字符串進行編碼/解碼,在選擇編碼解碼后,需要提示用戶輸入密鑰。
使用到的參數跟談到彈性網絡的那一章里頭所講的是一樣的, ke 則是終止條件。如果 step 被打勾,則程式在每一步之間會暫停 100毫秒(或其他使用者輸入的數值)。如果 Random 被打勾,則程式會以系統時間作為亂數產生器的種子數,否則,就以使用者輸入的數( Random 右邊那一格)為種子數。
你可以利用 load 來載入推銷員問題檔與其最佳解,如此便可比較彈性網絡所找出來的解與最佳解差了多少。
Central, Radius, and Error 這三個參數的前兩個,只影響彈性網絡的起使位置和大小,對求解沒有影響。第三個參數代表城市與網絡點之間的容忍距離,也就是說,如果某城市與某網絡點之間的距離,小于容忍距離,那就把這個城市當成是被該網絡點所拜訪。
按下小 w按鈕會將目前的結果與參數值寫到“en.out”這個檔案。使得我們可以很方便地來比較不同參數的效果。