最近在读<<数学之美>>这本书,书中讲述了计算机领域所用到的基础数学原理,那些曾认为没什么用的数学原理倒是构成计算机的基础。做者吴军,是一位曾在谷歌工做的科学家。服务器
平时用惯了百度,谷歌等搜索引擎,总以为这些东西背后的原理多是高深的不得了,本书的第八章用简洁的语言描述了搜索引擎的数学基础 - 布尔代数。网络
布尔代数包括两部分,一是二进制的计数系统,而是二进制的运算规则。二进制在平常生活中并不经常使用,用的最到的固然是十进制了。二进制的元素只有两个0和1,给这两个元素赋上生活中的含义,如将0表示假,1表示真,这就将数学中的数字和现实中的生活联系了起来。至于二进制的运算规则则是与/或/非三种运算。简单的0和1如何和搜索引擎联系起来呢?搜索引擎
搜索引擎主要有三部分,一是尽量的下载互联网中的网页,二是为网页创建关键字的索引,三是用一套排名规则给搜出来的页面排序。如何下载网页那就是网络爬虫的事了,建索引是为了更快的搜出给定关键字的结果。网络爬虫每时每刻在互联网上爬取网页并下载到服务器中,网页的数量达到百亿,千亿乃至更大的数量级别,当用户提交了一个关键字不可能实时的从百亿个网页中一个个的去搜索网页中有没有这个词语,因此须要提早构造一个关键字的列表。假设已经下载了一个亿的网页,一个关键在那些网页里面出现,构造一个很是长的二进制串,第一个网页在,二进制的第一位就是1,再也不就是0。一直这样排下去,一亿位的二进制串就能表示这个关键字在哪些网页里面了。搜索引擎事先给经常使用的几十万个词语进行搜索获得,每一个词语就有个二进制串。这些词语和对应的二进制串就是一张很是大的索引表。排序