Tại sao p AND NOT p luôn luôn bằng 0, còn p OR NOT p luôn luôn bằng 1? (Tin học 10)

Trả lời nhanh

Vì NOT p luôn mang giá trị ngược với p: nếu p = 1 thì NOT p = 0, nếu p = 0 thì NOT p = 1. Như vậy trong cặp (p, NOT p) luôn có đúng một giá trị 1 và một giá trị 0. Phép AND chỉ cho 1 khi cả hai đều bằng 1, nên p AND NOT p luôn bằng 0 (1 AND 0 = 0, 0 AND 1 = 0). Phép OR cho 1 khi có ít nhất một giá trị bằng 1, nên p OR NOT p luôn bằng 1 (1 OR 0 = 1, 0 OR 1 = 1).

Câu hỏi nằm ở đâu và cần trả lời gì?

Đây là câu Luyện tập 2 trang 27 trong Bài 5 “Dữ liệu lôgic”, Tin học 10 (Kết nối tri thức). Đề hỏi: tại sao p AND NOT p luôn luôn bằng 0, còn p OR NOT p luôn luôn bằng 1?

Để trả lời chặt chẽ, em chỉ cần làm hai việc: nhớ lại định nghĩa của các phép toán AND, OR, NOT, rồi xét tất cả các giá trị mà p có thể nhận. Vì p là một biến lôgic, p chỉ có hai khả năng: 1 (đúng) hoặc 0 (sai). Xét hết hai trường hợp này là đã chứng minh xong cho mọi p.

Nhắc lại các phép toán lôgic cơ bản

Trong đại số lôgic, giá trị “Đúng” được biểu diễn bằng 1 và “Sai” bằng 0. Chỉ cần 1 bit để lưu một giá trị lôgic. Bảng dưới đây tổng hợp bốn phép toán được học trong bài:

p q p AND q p OR q p XOR q NOT p
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 0 1
  • AND (phép nhân lôgic): chỉ đúng khi cả hai vế đều đúng.
  • OR (phép cộng lôgic): đúng khi ít nhất một vế đúng; chỉ sai khi cả hai đều sai.
  • XOR (cộng loại trừ): đúng khi hai vế có giá trị khác nhau.
  • NOT (phủ định): đảo giá trị, 1 thành 0 và 0 thành 1.

Chứng minh p AND NOT p luôn bằng 0

Lập bảng chân trị với cột p, cột NOT p và cột kết quả:

p NOT p p AND NOT p
1 0 1 AND 0 = 0
0 1 0 AND 1 = 0

Cả hai dòng đều cho kết quả 0. Lí do: muốn AND bằng 1 thì p và NOT p phải cùng bằng 1, nhưng điều đó không bao giờ xảy ra vì NOT p luôn trái giá trị với p. Một biểu thức luôn sai với mọi giá trị của biến như vậy gọi là mâu thuẫn (hằng sai).

Ví dụ bằng lời: gọi p là “Hôm nay trời mưa”. Khi đó p AND NOT p là “Hôm nay trời mưa và hôm nay trời không mưa”. Câu này không thể đúng trong bất kì ngày nào.

Chứng minh p OR NOT p luôn bằng 1

p NOT p p OR NOT p
1 0 1 OR 0 = 1
0 1 0 OR 1 = 1

Cả hai dòng đều cho 1. Lí do: OR chỉ bằng 0 khi cả hai vế cùng bằng 0, tức là p = 0 và NOT p = 0 cùng lúc, điều không thể xảy ra. Trong mọi trường hợp luôn có đúng một vế bằng 1, nên kết quả luôn là 1. Biểu thức luôn đúng như vậy gọi là hằng đúng.

Ví dụ bằng lời: “Hôm nay trời mưa hoặc hôm nay trời không mưa” luôn đúng, dù thời tiết thế nào.

Kiểm tra lại bằng Python

Trong Python, giá trị lôgic là True và False, các phép toán viết là and, or, not. Em có thể chạy đoạn lệnh sau để tự kiểm chứng:

for p in (True, False): print(p, p and not p, p or not p)

Kết quả in ra hai dòng: “True False True” và “False False True”. Cột thứ hai luôn là False (tức 0), cột thứ ba luôn là True (tức 1), khớp với hai bảng chân trị ở trên.

Ứng dụng thực tế: nếu trong chương trình em viết điều kiện kiểu x > 5 and not (x > 5), khối lệnh bên trong sẽ không bao giờ chạy; còn điều kiện x > 5 or not (x > 5) thì luôn chạy. Nhận ra các biểu thức hằng sai, hằng đúng giúp em phát hiện lỗi logic trong chương trình.

Mở rộng: các đẳng thức lôgic liên quan

Biểu thức Giá trị Giải thích ngắn
p AND NOT p 0 Không thể cùng đúng và cùng sai
p OR NOT p 1 Luôn có một vế đúng
p XOR NOT p 1 Hai vế luôn khác nhau
p XOR p 0 Hai vế luôn giống nhau
NOT (NOT p) p Phủ định hai lần trở về ban đầu
NOT (p AND q) (NOT p) OR (NOT q) Luật De Morgan
NOT (p OR q) (NOT p) AND (NOT q) Luật De Morgan

Hai kết quả của bài chính là hai quy luật cơ bản của tư duy lôgic: luật không mâu thuẫn (một mệnh đề không thể vừa đúng vừa sai) và luật bài trung (một mệnh đề hoặc đúng hoặc sai, không có khả năng thứ ba). Trong mạch điện tử số, nếu nối một tín hiệu p và tín hiệu đảo của nó vào cổng AND, đầu ra luôn ở mức 0; vào cổng OR, đầu ra luôn ở mức 1.

Bài tập vận dụng (có đáp án)

  1. Rút gọn biểu thức (p AND NOT p) OR q.
    Đáp án: p AND NOT p = 0, mà 0 OR q = q. Vậy biểu thức bằng q.
  2. Rút gọn biểu thức (p OR NOT p) AND q.
    Đáp án: p OR NOT p = 1, mà 1 AND q = q. Vậy biểu thức bằng q.
  3. Với p = 1, q = 0, tính NOT (p AND q) và (NOT p) OR (NOT q).
    Đáp án: p AND q = 0 nên NOT (p AND q) = 1. NOT p = 0, NOT q = 1, nên (NOT p) OR (NOT q) = 1. Hai kết quả bằng nhau, đúng với luật De Morgan.
  4. Biểu thức p XOR NOT p luôn bằng bao nhiêu? Giải thích.
    Đáp án: Luôn bằng 1, vì p và NOT p luôn khác giá trị, mà XOR cho 1 khi hai vế khác nhau.
  5. Gọi p là “Hùng là học sinh lớp 10”. Hãy phát biểu mệnh đề p OR NOT p và cho biết giá trị của nó.
    Đáp án: “Hùng là học sinh lớp 10 hoặc Hùng không là học sinh lớp 10”, mệnh đề này luôn đúng (bằng 1).

Những lỗi hay mắc khi làm bài

  • Chỉ thử một trường hợp (ví dụ p = 1) rồi kết luận “luôn luôn”. Phải xét đủ cả p = 1 và p = 0 thì lập luận mới đầy đủ.
  • Nhầm AND với OR: AND giống phép nhân (1 × 0 = 0), OR giống “có ít nhất một” chứ không phải phép cộng thông thường, vì 1 OR 1 vẫn bằng 1.
  • Viết NOT p như một biến độc lập với p. NOT p luôn phụ thuộc vào p, nên bảng chân trị của p AND NOT p chỉ có 2 dòng chứ không phải 4 dòng như p AND q.

Câu hỏi thường gặp

Vì sao NOT p luôn trái giá trị với p?

Phép NOT đảo giá trị lôgic: nếu p = 1 thì NOT p = 0, nếu p = 0 thì NOT p = 1.

p AND NOT p được gọi là gì?

Đó là một biểu thức mâu thuẫn (hằng sai), vì nó bằng 0 với mọi giá trị của p.

p OR NOT p được gọi là gì?

Đó là một biểu thức hằng đúng, vì nó bằng 1 với mọi giá trị của p. Nó thể hiện luật bài trung.

p XOR NOT p bằng bao nhiêu?

Luôn bằng 1, vì p và NOT p luôn khác nhau mà XOR cho kết quả 1 khi hai giá trị khác nhau.

Câu hỏi này thuộc bài nào trong Tin học 10?

Đây là Luyện tập 2 trang 27, Bài 5 Dữ liệu lôgic, Tin học 10 sách Kết nối tri thức.