設萬維讀者為首頁 廣告服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:
萬維讀者網 > 靈機一動 > 帖子
討論鎖和鑰匙問題
送交者: 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