基本参考阮一峰大大文章,传送门:
http://www.ruanyifeng.com/blog/2016/08/boolean-algebra.html?20161219102423#comment-last
人类的逻辑推导可以表示为集合论,
比如a是b,即a完全属于b,如果a存在某些部分不属于b那么不能说a是b,所以可以表示为a∈b,或者a∩b=a,经典的哲学三段论是:
人都是会死的,(人集合为a,会死的集合为h)
苏格拉底是人,(苏格拉底为s)
所以苏格拉底也是会死的。
处理起来就是:s∩a∩h=s,
一个比较隐式的逻辑是a∩h=s∪-s(非s,原集合为a∩h),也就是会死的人可能不止有苏格拉底。
当然还有其他的逻辑表达式,比如-(aUb)=-a∩-b等,
上述表达了文字逻辑的数理运算,在布尔代数中,一件事属于一个集合为1,否则为0,
那么假设一名顾客走进宠物店,对店员说:"我想要一只公猫,白色或黄色均可;或者一只母猫,除了白色,其他颜色均可;或者只要是黑猫,我也要。"
想要的猫就是:公猫∩(黄色∪绿色)∪母猫∩(-白色)∪黑色
请问灰公猫是不是合要求?(如果只给定灰猫会怎么样?部分逻辑无法判断,可能需要先把需求逻辑处理清楚,然后再看是否有公猫的集合细分,否则会出现无法判断的情况,现实工作中这也是个挺实用的方法)
灰色公猫代入需求表达式(换成0,1)就是:1∩(0∪0)∪0∩(1)∪0
也就是0∪0∪0,所以灰色公猫不满足需求.