jiandan97 发表于 2017-3-21 19:52:19

PHP学习--晨练布尔代数的基本功

PHP学习--晨练布尔代数的基本功都说程序员思维,不是黑就是白,就像之前看过的一个关于“标准的程序员”的一个笑话://一个程序员老婆给老公打电话:“下班回来的路上买十个包子回来,加入看到有卖西瓜的,就买一个回来。”当天晚上,程序员手里只捧着一个包子进了家门……老婆怒道:“你咋就买了一个包子回来?”老公答曰:“因为看到了有卖西瓜的啊。//这个笑话就是说这个程序员已经完全陷入了机器思维,将条件加入了之后根据判断得到最终的一个结果,因为在程序语言中,不会出现多种结果的。(人工智能可能会改变这种现状吧!不过在兄弟连(www/itxdl/cn)中不会出现这样的问题,因为兄弟连里面每个人都是逗比)现在我们还是继续说一下布尔代数这个问题吧。命题可以用集合论表达,那么逻辑推导无非就是一系列集合运算。由于集合运算的结果还是集合,那么通过判断个体是否属于指定集合,就可以判断命题的真伪。 举个栗子:一名顾客走进宠物店,对店员说:"我想要一只公猫,白色或黄色均可;或者一只母猫,除了白色,其他颜色均可;或者只要是黑猫,我也要。"OK ,现在我们用集合论表达一下这名顾客的要求,就是下面的式子。公猫 X (白色 + 黄色) + 母猫 X 非白色 + 黑猫店员拿出一只灰色的公猫,请问是否满足要求? 现在我们用布尔代数解决一下,首先规定:个体属于某个集合用1表示,不属于就用0表示。 灰色的公猫属于公猫集合,就是1,不属于白色集合,就是0。上面的表达式变成下面这样。1 X (0 + 0) + 0 X 1 + 0 = 0因此,灰色的公猫并不满足要求。这就是布尔代数:计算命题真伪的数学方法。 那平时我们使用中布尔代数的运算法则是如何的?其实从理论上讲布尔代数的运算法则与集合论很像。交集的运算法则如下。1 X 1 = 1 1 X 0 = 0 0 X 0 = 0并集的运算法则如下。1 + 1 = 1 1 + 0 = 1 0 + 0 = 0集合论可以描述逻辑推理过程,布尔代数可以判断某个命题是否符合这个过程。人类的推理和判断,因此就变成了数学运算。        但是在实际引用中布尔代数也有一定的局限性。虽然布尔代数可以判断命题真伪,但是无法取代人类的理性思维。原因是它有一个局限。它必须依据一个或几个已经明确知道真伪的命题,才能做出判断。比如,只有知道"所有人都会死"这个命题是真的,才能得出结论"苏格拉底会死"。毕竟理论和判断时死规则,而实际中很多并不只有一个答案。布尔代数只能保证推理过程正确,无法保证推理所依据的前提是否正确。如果前提是错的,正确的推理也会得到错误的结果。而前提的真伪要由科学实验和观察来决定,布尔代数无能为力。 大家对布尔代数理解了吗?虽然这个知识点在兄弟连并不算重点,毕竟老师的思路与理解给大家一点拨就可以了,但是在逻辑思维中,这是一个思维的转变,将我们日常的思维方式贴近机器思维的途径。当然如果想快速掌握PHP编程的所有知识点,可以去兄弟连学习一下(177<1011<6169)。
页: [1]
查看完整版本: PHP学习--晨练布尔代数的基本功