设万维读者为首页 广告服务 技术服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
讨论锁和钥匙问题
送交者: zhf 2020年10月02日12:51:45 于 [灵机一动] 发送悄悄话

锁和钥匙问题

A盒子里有n把锁。每个锁都有产品号。B盒子里有m个钱包,每个钱包里最多有一把钥匙。每个钥匙都有产品号。现在定义命题S

对于A盒子里的任意一把锁,在B盒子里,都存在一个钱包,当这个钱包里有钥匙且钥匙产品号大于这把锁的产品号时,钥匙能开这把锁。

这样S为真。请定义的逆命题。自然语言,逻辑语言均可。

解:

 Li表示A盒子里的第i把锁,Li.#表示锁头产品号,pj表示B盒子里的第j个钱包,pj.e表示该钱包里没有钥匙,pj.k表示该钱包里有钥匙,pj.k.#表示该钥匙在的产品号,pj.k[Li]表示该钥匙能打开第i把锁,->表示推出。


先写出 “对于第i把锁,在B盒子里的钱包j, 当这个钱包里有钥匙且钥匙产品号大于这把锁的产品号时,钥匙能开这把锁的逻辑表达式:


(pj.k)(pj.k.#>Li.#)-> pj.k[Li]                    (1)


再写出对于第i把锁,在B盒子里,都存在一个钱包,当这个钱包里有钥匙且钥匙产品号大于这把锁的产品号时,钥匙能开这把锁的逻辑表达式:


OR(j=1,m)[(pj.k)(pj.k.#>Li.#)-> pj.k[Li]]         (2)

这是在(1)的基础上对下标jOROR的意思是只要一个变量为真,整体就为真。


现在写出对于A盒子里的任意一把锁,在B盒子里,都存在一个钱包,当这个钱包里有钥匙且钥匙产品号大于这把锁的产品号时,钥匙能开这把锁的逻辑表达式:


S= AND(i =1,n)[OR(j=1,m)[(pj.k)(pj.k.#>Li.#)-> pj.k[Li]]]        (3


这是在(2)的基础上对下标ANDAND的意思是所有变量为真,整体才为真。

S求逆

NOT(S)= OR(i =1,n)[AND(j=1,m) NOT [(pj.k)(pj.k.#>Li.#)-> pj.k[Li]]] =

OR(i =1,n)[AND(j=1,m)[(pj.k)(pj.k.#>Li.#) NOT(pj.k[Li])]]

用自然语言叙述就是:

A盒子里,存在一把锁,对于B盒子里的所有钱包,虽然这个钱包里有钥匙且钥匙产品号大于这把锁的产品号,但这钥匙仍然不能打开这把锁。


0%(0)
0%(0)
标 题 (必选项):
内 容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖
历史上的今天:回复热帖
2015: 要放上已经打好的数学公式(Google Doc