遺傳算法入門(連載之三)

最近在學習有關遺傳算法和神經網絡方面的知識,網上查看了很多這方面的祕笈,只怪小生天生愚鈍、才疏學淺,不能很好的領悟祕笈中的真諦,往往被弄得暈頭轉向、不知所措快哭了委屈。直到有一天無意中看到了博主zzwu寫的有關這方面的文章,初讀之,如溫舊習;漸深入,覺甚好;遂一氣呵成,猶如撥雲見日、茅塞頓開。餘甚怕在茫茫Internet中再無機會拜讀之,遂收藏於此,以便衆人觀之,絕無其他不良用途。在此對博主再次深表感謝。博文轉自:http://blog.csdn.net/zzwu/article/details/561617



.

(連載之三)
.
扎自<遊戲編程中的人工智能技術>第三章

清華大學出版社

(本章由zzwu譯)


3.2.二進制數速成(A Quick Lesson in Binary Numbers)

    當進入更深層的學習之前,我必需確保你對二進制記數系統的理解。如果你已經知道二進制記數的工作原理,可以跳過這一小節。如果你還不瞭解,就讓我來啓發你...  

   我認爲了解二進制數(基爲2的數)的最容易的方法,就是首先查看一下十進制數:你爲什麼使用十進制數字(基爲十的數)和怎樣使用十進制計數?  

   人們通常相信,人類之所以採用基數爲十的記數法來計數,是因爲我們的雙手共有十個手指的緣故。設想我們的一個祖先,不妨稱他爲Ug,幾十萬年前在計算一個猛獁羣中猛獁的數目。Ug利用2個拳頭來開始計算,當他每看到一個猛獁,就伸出一個手指;這樣1個、2個地繼續下去,直到他所有的手指都被用上爲止;這樣他就知道他已經算到10個猛獁。但因猛獁羣中包含的猛獁遠遠超過10個,Ug不得不再想一種方法來計算更大的數目。他狠抓了一下他的腦袋,就產生了一個想法:叫他的一個朋友Frak來幫忙。Ug想到用Frak的一個手指來代表他計算到的那10個猛獁,然後他自己的手指就得到解脫,可重新開始用來計算第11、12、13個猛獁,等等,直到20,這時就需要使用Frak的另一個手指。你能看出,採用這樣的過程,Ug和Frak最多可以計算到110個猛獁(那真是一樁了不起的奇觀,不是嗎?),但爲了統計出更多的猛獁數目,他們就不得不去招募另一位朋友了。  

   當人們最終學會了怎麼寫出數字時,就是使用類似方法來完成的。爲了表示基數爲10的數字,你創建一系列的列(columns),每一列代表人的一雙手,例如:  

1000位 100位 10位 個位
       

   因此,要計數到15,你先在個位(列)由0開始不斷遞增,直到9,然後,因個位已不能再增,你就在10位記1,並從新在個位由0開始不斷增加,直到如下結束:  

1000位 100位 10位 個位
    1 5

   數字15由一個十位和5個個位組成。(我知道,你聽到這些會感到非常顯然,但是這種詳細的分析是必要的。)你能看到,二進制數系(或不管哪一種進制數系)都用同樣的方式工作。但二進制計數時不用10個數字,而只用2個[譯註:原文誤爲1個],其中一個是0,另一個是1。這樣,當你在寫2進制數時,表示數的列(在2進制數人們稱作‘bit')的形式應爲:

16 8 4 2 個位
         

   現在你就可以來計算15。首先,你在個位(列)加1,得:

16 8 4 2 個位
        1

 

   這時,因爲你已經沒有更大的數字可以用了(請記住,2進制數中最大的數是1),你必須增加個位左邊的那個列,並將個位數從新變爲0,因此數字2的形式如下:

16 8 4 2 個位
      1 0

數字3的形式爲:

16 8 4 2 個位
      1 1

數字4的形式爲:

16 8 4 2 個位
    1 0 0

 

等等,直到數字15:

16 8 4 2 個位
  1 1 1 1

 

   這就是計算15所要做的全部過程了。至此,你應該能夠轉換十進制數爲二進制,或反過來,把二進制轉換爲十進制了。我同時必須指出,二進制數字也常常寫成一組有固定長度的位,特別當它與計算機聯繫起來討論時如此。這就是爲什麼處理器常被說成是8位、I6位、32位、或64位的原因。這意味,如果你要把15寫成8位的二進制,則你就要寫成下面這樣的形式,其中高位都是0,但也要在前面寫出來,以使整個長度達到8:

   00001111

   爲了確保你理解這一概念,作爲一個練習,在你繼續進入下一節以前,試回答下列問題(答案附在本章最後):  

   1.把十進制27轉換爲二進制。  

   2.把二進制數10101轉換爲十進制。  

   3.把十進制數135表示成爲一個8位的二進制數。  

   不難吧?既然你對二進制數有了一個初步概念,下面就讓我們來討論令人更加激動的內容吧!

 -連載3完-


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章