【编程之美】袋中有200个球,黑白各100只,每次取出两个,如果同色,放入一个黑球,否则,放入一个白球,最后剩下什么球

探讨了通过异或逻辑解决球颜色问题的三种思路,包括简单枚举、具体计算过程及异或运算的应用,揭示了异或运算在解决特定问题上的独特优势。

思路1

简单应试思路:有2个白球和2个黑球。
在这里插入图片描述
枚举后会发现最后只剩下一个黑球。
理思路想一下。

思路2

取出2个黑球,需要放入1个黑球 = 取出1个黑球
取出…
在这里插入图片描述
取出2个黑球,需要放入1个黑球 = 取出1个黑球,放入0个白球 = - 1 + 0= 取出1个球
取出2个白球,需要放入1个黑球 = 放入1个黑球,取出2个白球 = + 1 - 2= 取出1个球
取出白、黑球,需要放入1个白球 = 取出1个黑球,放入0个白球= - 1 + 0 = 取出1个球
然后规律是?
在这里插入图片描述
白球都是成对成对的取出,所以最后剩下一个球肯定是黑球。

思路3

相同为黑,不同为白,怎么这个逻辑如此眼熟呢?
在这里插入图片描述
这简直就是异或。
所以令黑色为0,白色为1,取出两个数字做异或,结果继续丢进桶里。
在这里插入图片描述
因为异或是满足结合律和交换律的,所以也可以忽略取出顺序,就是简单的异或,直到剩下一个结果。
100个1和100个0做异或,最后结果为0=黑球。

一、项目目标 ◆ 熟悉一阶谓词逻辑产生式表示法 ◆ 掌握产生式系统的运行机制 ◆ 掌握基于规则推理的基本方法 ◆ 熟悉利用编程实现基于产生式的小型智能推理系统的方法 二、项目原理 产生式系统用来描述若干个不的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件操作对。 在产生式系统中,论域的知识分为两部分:(1)用事实表示静态知识;(2)用产生式规则表示推理过程行为。 三、项目内容 建立一个动物识别系统的规则库,用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等7种动物,其中规则如下。此时,如果初始综合数据库包含的事实有:动物有暗斑点,有长脖子,有长腿,有奶,有蹄,请问推理出的结果是什么动物?(长颈鹿) 为了识别这些动物,可以根据动物识别的特征,建立包含下述规则的规则库: R1:if 动物有毛发 then 动物是哺乳动物 R2:if 动物有奶 then 动物是哺乳动物 R3:if 动物有羽毛 then 动物是鸟 R4:if 动物会飞 and 会生蛋 then 动物是鸟 R5:if 动物吃肉 then 动物是食肉动物 R6:if 动物有犀利牙齿 and 有爪 and 眼向前方 then 动物是食肉动物 R7:if 动物是哺乳动物and有蹄then动物是有蹄类动物 R8:if 动物是哺乳动物and反刍then动物是有蹄类动物 R9:if 动物是哺乳动物and是食肉动物and有黄褐 and 有暗斑点 then 动物是豹 R10:if 动物是哺乳动物 and是食肉动物and有黄褐 and 有黑条纹 then 动物是虎 R11:if动物是有蹄类动物 and 有长脖子and有长腿and有暗斑点 then 动物是长颈鹿 R12:if 动物是有蹄类动物 and有黑条纹 then 动物是斑马 R13:if 动物是鸟and不会飞 and有长脖子and有长腿 and有黑白 then 动物是鸵鸟 R14:if 动物是鸟 and不会飞 and会游泳 and有黑白 then 动物是企鹅 R15:if 动物是鸟 and善飞 then 动物是信天翁 1、系统的推理过程 (1)先从规则库中取出第一条规则r1,检查其前提是否可与综合数据库中的已知事实相匹配。 r1的前提是“有毛发”,但事实库中无此事实,故匹配失败。然后取r2,该前提可与已知事实“有奶”相匹配,r2被执行,并将其结论“该动物是哺乳动物”作为新的事实加入到综合数据库中。此时,综合数据库的内容变为: 动物有暗斑,有长脖子,有长腿,有奶,有蹄,是哺乳动物。 (2)再从规则库中取r3、r4、r5、r6进行匹配,均失败。接着取r7,该前提与已知事实“是哺乳动物”相匹配,r7被执行,并将其结论“该动物是有蹄类动物” 作为新的事实加入到综合数据库中。此时,综合数据库的内容变为:动物有暗斑,有长脖子,有长腿,有奶,有蹄,是哺乳动物,是有蹄类动物。 (3)此后,r8,r9,r10均匹配失败。接着取r11,该前提 “该动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑” 与已知事实相匹配,r11被执行,并推出“该动物是长颈鹿”。由于“长颈鹿”已是目标集合中的一个结论,即已推出最终结果,故问题求解过程结束。 2、产生式系统的问题求解基本过程 (1)初始化综合数据库,即把欲解决问题的已知事实送入综合数据库中; (2)检查规则库中是否有未使用过的规则,若无转(7); (3)检查规则库的未使用规则中是否有其前提可与综合数据库中已知事实相匹配的规则,若有,形成当前可用规则集;否则转(6); (4)按照冲突消解策略,从当前可用规则集中选择一个规则执行,并对该规则作上标记。把执行该规则后所得到的结论作为新的事实放入综合数据库;如果该规则的结论是一些操作,则执行这些操作; (5)检查综合数据库中是否包含了该问题的解,若已包含,说明解已求出,问题求解过程结束;否则,转(2); (6)当规则库中还有未使用规则,但均不能与综合数据库中的已有事实相匹配时,要求用户进一步提供关于该问题的已知事实,若能提供,则转(2);否则,执行下一步; (7)若知识库中不再有未使用规则,也说明该问题无解,终止问题求解过程。 说明:从第(3)步到第(5)步的循环过程实际上就是一个搜索过程。 【项目步骤】 (1)系统设置,包括设置系统名称系统谓词,给出谓词名及其含义。 (2)编辑知识库,通过输入规则或修改规则等,完成整个规则库的建立。 (3)建立事实库(综合数据库),输入多条事实或结论。 (4)运行推理,包括正向推理反向推理,给出相应的推理过程、事实区规则区。
10-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值