数学之美第八章--布尔代数和搜索引擎的阅读感悟:
我们以问达式来逐渐深入这一章吧,这是我喜欢的方式:
先简单介绍一些布尔代数:
布尔代数就是简单的由1和0构成的一种数学,这是我浅显的理解。
布尔代数支持and,or,not,xor等逻辑运算,而布尔代数能支持and和or这样的逻辑运算,这也很好理解,如果两个输入同时能够满足某一种状态则输出为某一状态。。。
1.为什么布尔代数可以和搜索引擎相关:
我们知道0和1可以表示两种状态,那么要想解决问题,就需要把问题往两种状态上面去引导,显然,搜索引擎有用到两种状态的相关表示。
2.怎么把搜索引擎往两种状态的方面引导:
我们可以这样想一下:当你在计算机上搜索某一项东西的时候,你的电脑为你呈现的几乎全都是关于这个东西的网页,可是还有一些与你搜索的关键词没有关系的网页,这个时候他们就不会出现在你的电脑,ok,这就是两种状态,有关和无关,可以用0和1来表示。
3.如何精确的搜索出某一个网页或者文章:
这个问题可以参考一下我们的回答2,一个关键词可以搜索出一堆和这个关键词相关的信息,如果我们把有关这个关键词的信息当成一个集合。那我们可以显而易见的想到具体的某一个文章肯定是不止一个关键词,而是有多个关键词,根据我们刚才的抽象,可以把这个文章理解为多个集合的共同交集。即可以理解为这个文章同时有多个关键词,因此这些关键词满足对他们的存在状态(0为不存在,1为存在)进行与的逻辑运算,得到的得数必为1,所以,当网上搜索含有多个关键词的文章时,就是在检查这些关键词的状态是否同时为1.如果我们再给这些关键词一个排序,甚至加上与你所搜索的文章没有的关键词,可以组成一段二进制数。
给这样一个例子:
假设你的搜索引擎能承受的关键词只有四位,假设你想要搜索的文章里面有“爱”,“勇敢”,分别在关键词排序中为2和4位,那当你搜索这两个关键词就可以搜索出关键词序列为x1x1(x表示任意0和1都可以),如果你再对关键词做出进一步的要求,比如无关键词1和3的文章,这样你能得到的就是关键词序列为0101的文章。这样我们得到具体某一序列,就可以用它来表示有无相应关键词的那个文章,当所有的关键词足够多时,也就是说关键词序列足够长的时候,一个具体的序列必然可以一一对应到一篇具体的文章。
4.进一步的总结:
甚至,我们可以对所有关键词进行限制,得到一个具体的关键词序列,具体的一篇文章,这种搜索可以成为精确搜索;
如果仅对部分关键词进行限制,得到的就是模糊搜索;
进一步抽象:
在搜索引擎中,我们把关键词叫做索引。

代码规范:
参考文献:https://wenku.so.com/d/1650d802c952809e85fb75f06ffb1709?src=ob_zz_juhe360wenku
1.用空格代替tab缩进
2.操作符两端必须有空格键
3.同一个编译单元间(定义,类)应有空行相隔
4.对于循环等控制语句,不管有无主体,都应该加上{}
5.短的语句也要转行写