最近在讀<<數學之美>>這本書,書中講述了計算機領域所用到的基礎數學原理,那些曾認爲沒什麼用的數學原理倒是構成計算機的基礎。做者吳軍,是一位曾在谷歌工做的科學家。服務器
平時用慣了百度,谷歌等搜索引擎,總以爲這些東西背後的原理多是高深的不得了,本書的第八章用簡潔的語言描述了搜索引擎的數學基礎 - 布爾代數。網絡
布爾代數包括兩部分,一是二進制的計數系統,而是二進制的運算規則。二進制在平常生活中並不經常使用,用的最到的固然是十進制了。二進制的元素只有兩個0和1,給這兩個元素賦上生活中的含義,如將0表示假,1表示真,這就將數學中的數字和現實中的生活聯繫了起來。至於二進制的運算規則則是與/或/非三種運算。簡單的0和1如何和搜索引擎聯繫起來呢?搜索引擎
搜索引擎主要有三部分,一是儘量的下載互聯網中的網頁,二是爲網頁創建關鍵字的索引,三是用一套排名規則給搜出來的頁面排序。如何下載網頁那就是網絡爬蟲的事了,建索引是爲了更快的搜出給定關鍵字的結果。網絡爬蟲每時每刻在互聯網上爬取網頁並下載到服務器中,網頁的數量達到百億,千億乃至更大的數量級別,當用戶提交了一個關鍵字不可能實時的從百億個網頁中一個個的去搜索網頁中有沒有這個詞語,因此須要提早構造一個關鍵字的列表。假設已經下載了一個億的網頁,一個關鍵在那些網頁裏面出現,構造一個很是長的二進制串,第一個網頁在,二進制的第一位就是1,再也不就是0。一直這樣排下去,一億位的二進制串就能表示這個關鍵字在哪些網頁裏面了。搜索引擎事先給經常使用的幾十萬個詞語進行搜索獲得,每一個詞語就有個二進制串。這些詞語和對應的二進制串就是一張很是大的索引表。排序