HW03 判斷敘述式
1.notebook
2.YT
3.學習卡與測驗
4.# 定義邏輯運算子函數
def negation(p):
"""否定 ¬P"""
return not p
def conjunction(p, q):
"""連言 P ∧ Q (且)"""
return p and q
def disjunction(p, q):
"""選言 P ∨ Q (或)"""
return p or q
def implication(p, q):
"""蘊含式 P → Q (若 P 則 Q)"""
# 根據真值表:只有當 P 為 True 且 Q 為 False 時為 False,其餘皆為 True[cite: 8, 10]
return (not p) or q
def xor(p, q):
"""異或 P ⊕ Q"""
return p != q
def equivalence(p, q):
"""雙條件 P ↔ Q"""
return p == q
# 示範 1:印出基本的雙變數真值表 (P, Q)
def print_basic_truth_table():
print("=" * 45)
print(f"{'P':<6} | {'Q':<6} | {'P∧Q':<6} | {'P∨Q':<6} | {'P→Q':<6}")
print("-" * 45)
for p in [True, False]:
for q in [True, False]:
p_str = 'T' if p else 'F'
q_str = 'T' if q else 'F'
and_str = 'T' if conjunction(p, q) else 'F'
or_str = 'T' if disjunction(p, q) else 'F'
imp_str = 'T' if implication(p, q) else 'F'
print(f"{p_str:<6} | {q_str:<6} | {and_str:<6} | {or_str:<6} | {imp_str:<6}")
print("=" * 45)
# 示範 2:建構複合命題的真值表 (例如筆記中的例子:(p ∨ ¬q) → (p ∧ q))[cite: 8]
def print_complex_truth_table():
print("\n複合命題真值表:(p ∨ ¬q) → (p ∧ q)")
print("=" * 65)
print(f"{'p':<4} | {'q':<4} | {'¬q':<4} | {'p ∨ ¬q':<8} | {'p ∧ q':<8} | {'(p ∨ ¬q) → (p ∧ q)':<18}")
print("-" * 65)
for p in [True, False]:
for q in [True, False]:
not_q = negation(q)
p_or_not_q = disjunction(p, not_q)
p_and_q = conjunction(p, q)
result = implication(p_or_not_q, p_and_q)
p_s = 'T' if p else 'F'
q_s = 'T' if q else 'F'
nq_s = 'T' if not_q else 'F'
onq_s = 'T' if p_or_not_q else 'F'
paq_s = 'T' if p_and_q else 'F'
res_s = 'T' if result else 'F'
print(f"{p_s:<4} | {q_s:<4} | {nq_s:<4} | {onq_s:<8} | {paq_s:<8} | {res_s:<18}")
print("=" * 65)
if __name__ == "__main__":
print_basic_truth_table()
print_complex_truth_table()








留言
張貼留言