本文件為用C語言實(shí)現(xiàn)的可實(shí)現(xiàn)廣義異或問題的bp神經(jīng)網(wǎng)絡(luò)算法。該問題是對(duì)標(biāo)準(zhǔn)異或問題的推廣。在標(biāo)準(zhǔn)異或問題中,輸入X1和X2取離散量-1或+1,在廣義異或問題中,輸入(X1,X2)可以在區(qū)間[-1,+1] X [-1, +1]內(nèi)任意取值,而輸出為Y=sign(x1,x2),其中sign()為符號(hào)函數(shù),在區(qū)間[-1,+1] X [-1, +1]內(nèi)隨機(jī)產(chǎn)生500個(gè)訓(xùn)練樣本.本程序用標(biāo)準(zhǔn)BP網(wǎng)實(shí)現(xiàn)該分類問題.
從空格(ASCII碼32)到~(ASCII碼126)。表內(nèi)的第一行與表頭相同,下面的每一行都與上一行的內(nèi)容相同,只是字符相左移動(dòng)了一個(gè)位置。這樣,下一行的最后一個(gè)字符與上一行的第一個(gè)字符相同。
為了進(jìn)行文本編碼,可以任意選擇一個(gè)字符串,稱之為編碼字符串,也就是常說的密鑰。為解釋編碼方法,我們假設(shè)密鑰是Walrus,待編碼的文本(即常說的明文)是:
Meet me in St. Louis
我們?cè)诖幋a的文本之上重復(fù)書寫上述密鑰,使得其長(zhǎng)度與待編碼文本相同:
WalrusWalrusWalrusWa
Meet me in St. Louis
從上述兩行文本中按列對(duì)應(yīng)方式依次提取一個(gè)字符,可得到多個(gè)字符對(duì):WM、ae、le等,這些字符對(duì)可用作上表的索引。這樣,依次以這些字符對(duì)作為索引可從上表查到一系列字符,這些字符就構(gòu)成了文本編碼,即常說的密文。例如,第W行第M列隊(duì)?wèi)?yīng)得字符是%,因此編碼的第一個(gè)字符就是%;第a行第e列對(duì)應(yīng)的字符是G;第l行第e列對(duì)應(yīng)的是R。依次進(jìn)行上述查找操作,可以得到完整的密文
%Grgua=aVauGLol?eiAU
進(jìn)行相反的操作就可對(duì)該文本解碼。
編寫編碼/解碼程序,可以對(duì)文本文件或鍵盤輸入的字符串進(jìn)行編碼/解碼,在選擇編碼解碼后,需要提示用戶輸入密鑰。