首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

離散數學:unless 在條件陳述句中的邏輯等價關係

     編輯:程式設計綜合問答

問題

為何 "q unless ~p" 表達與 "if p, then q" 相同條件陳述句?

邏輯分析

  1. unless 含義:`q unless r` ≡ `if not r, then q` ≡ `r ∨ q`。
  2. 代入 `r = ~p` (非 p):
q unless ~p
≡ if not (~p), then q      (unless 定義)
≡ if p, then q             (雙重否定消去)
≡ p → q

真值表驗證

pq~pq unless ~p ( ~(~p) → q )p → q
TTFTT
TFFFF
FTTTT
FFTTT

兩欄完全一致。

自然語言範例

  • "除非明天不下雨,我就不出門" → `q = 我不出門`, `~p = 明天不下雨` (`p = 明天下雨`)。
  • 等價於:"如果明天下雨,我就不出門" (`p → q`)。
  • 邏輯結構:**兩個否定抵銷**,「除非非」=「如果」。

常見混淆

  • `unless` ≠ `if not` (單一否定)。「除非下雨,我就去」= `q unless p` = `~p → q` = "如果不下雨,我就去"。
  • 本題關鍵在 `unless` 後接的是 `~p` (已否定),故雙重否定還原為 `p`。

結論

`q unless ~p` 邏輯等價於 `p → q`,核心是 **unless 定義 (`~r → q`) 配合雙重否定 (`~(~p) ≡ p`)**。自然語言中「除非非 X」即「如果 X」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved