测试一下 CSDN的博客是否支持MarkDown
## 五房子问题
抽象逻辑表达式
自定义运算符,为了便于识别,设计成2位字符;
**自定义运算**
| 规则名称 | 运算符 | 说明 |
| -------- | :-----: | ------------- |
| 同房子 | == | 在同一间房子; <br/> 例如: "英国人住红色房子" 表达式为:"英国==红色" |
| 第N间房子 | == | "==N" N为数字;<br/>例如 "白色房子在第四幢" 表达式为:"白色==4" |
| 中间房子 | == | "==中间",表示中间房子;<br/> 例如“住在中间房子的人喝牛奶” 表达式为: "牛奶==中间"(该规则取消,用"==N"替代) |
| 邻居,隔壁 | <> |"A<>B" 表示A与B相互为邻居; <br/> 例如:“挪威人住蓝色房子隔壁”表达式为:"挪威<>蓝色" |
| 左边隔壁 | => | "A=>B" 表示A在B的左边隔壁;<br>例如“绿色房子在白色房子左隔壁" ,表达式为:"绿色=>白色" |
| 右边隔壁 | <= | "A<=B" 表示A在B的右边隔壁;<br>例如:“绿色房子在白色房子右隔壁" ,表达式为:"绿色<=白色" |
| 在左边 | \>> | "A>>B" 表示A在B的左边,但不一定是隔壁;<br>例如“绿色房子在白色房子左边" ,表达式为:"绿色>>白色" |
| 在右边 | << | "A << B" 表示A在B的右边,但不一定是隔壁;<br>例如“绿色房子在白色房子右边" ,表达式为:"绿色<<白色"|
规则名称 | 运算符 | 说明 |
---|---|---|
同房子 | == | 在同一间房子; 例如: "英国人住红色房子" 表达式为:"英国==红色" |
第N间房子 | == | "==N" N为数字; 例如 "白色房子在第四幢" 表达式为:"白色==4" |
中间房子 | == | "==中间",表示中间房子; 例如“住在中间房子的人喝牛奶” 表达式为: "牛奶==中间"(该规则取消,用"==N"替代) |
邻居,隔壁 | <> | "A<>B" 表示A与B相互为邻居; 例如:“挪威人住蓝色房子隔壁”表达式为:"挪威<>蓝色" |
左边隔壁 | => | "A=>B" 表示A在B的左边隔壁; 例如“绿色房子在白色房子左隔壁" ,表达式为:"绿色=>白色" |
右边隔壁 | <= | "A<=B" 表示A在B的右边隔壁; 例如:“绿色房子在白色房子右隔壁" ,表达式为:"绿色<=白色" |
在左边 | >> | "A>>B" 表示A在B的左边,但不一定是隔壁; 例如“绿色房子在白色房子左边" ,表达式为:"绿色>>白色" |
在右边 | << | "A << B" 表示A在B的右边,但不一定是隔壁; 例如“绿色房子在白色房子右边" ,表达式为:"绿色<<白色" |
将规则转换为表达式:
1、英国人住红色房子 英国==红色
2、瑞典人养狗 瑞典==小狗
3、丹麦人喝茶 丹麦==红茶
4、绿色房子在白色房子左面 绿色>>白色
5、绿色房子主人喝咖啡 绿色==咖啡
6、抽pallmall香烟的人养鸟 pallmall==鸟
7、黄色房子主人抽dunhill香烟 黄色==dunhill
8、住在中间房子的人喝牛奶 牛奶==3 或者 牛奶==中间
9、挪威人住第一间房 挪威==1
10、抽blends香烟的人住在养猫人隔壁 blends<>猫
11、养马的人住抽dunhill香烟的人隔壁 马<>dunhill
12、抽bluemaster的人喝啤酒 bluemaster==啤酒
13、德国人抽prince香烟 德国==prince
14、挪威人住蓝色房子隔壁 挪威<>蓝色
15、抽blends香烟的人有—个喝水的邻居 blends<>水