← Quay lại
23/12/2025 24 phút

Chương 6: Logic cùng công tắc

Chân lý là gì? Aristotle cho rằng có thể tìm ra nó bằng logic. Tuyển tập các bài giảng của ông được biết đến với cái tên Organon (thế kỉ thứ tư trước CN) là những bài viết chuyên sâu sớm nhất về đề tài này. Với người Hi Lạp cổ, logic là phương tiện phân tích ngôn ngữ trong quá trình truy tầm chân lý và do đó được xem là một dạng triết học. Nền tảng logic của Aristotle là tam đoạn luận. Tam đoạn luận nổi tiếng nhất (thực tế không được tìm thấy trong công trình của ông) là:

Tất cả mọi người sẽ chết;
Socrates là người;
Do đó, Socrates sẽ chết.

Trong một tam đoạn luận, hai tiền đề được giả định là đúng, rồi từ đó rút ra được kết luận.

Tính khả tử của Socrates có vẻ dễ hiểu, nhưng ngoài kia còn nhiều kiểu tam đoạn luận khác nữa. Ví dụ, xem xét hai tiền đề sau đây, được đề xướng bởi nhà toán học thế kỉ 19 Charles Dogson (còn được biết tới là Lewis Carroll):

Tất cả triết gia đều lý luận logic
Một kẻ vô lý luận thì lúc nào cũng cứng đầu.

Kết luận—Vài kẻ cứng đầu không phải là triết gia—hoàn toàn không dễ nhìn ra. Để ý sự xuất hiện bất ngờ và hơi khó chịu của từ vài này.

Đã hai ngàn năm trôi qua, các nhà toán học đã vật lộn với logic của Aristotle, cố ghém nó lại chỉ với các ký tự và phép toán. Trước thế kỷ mười chín, người duy nhất gần đến đích là Gottfried Wilhelm von Leibniz (1648-1716), người đã thử chơi với logic khi còn trẻ nhưng sau lại chuyển sang thú vui khác (như độc lập phát minh ra giải tích cùng lúc với Isaac Newton).

Và rồi George Boole xuất hiện.


George Boole sinh ra ở Anh vào năm 1815 trong một thế giới mà chắc hẳn ông sẽ khó mà thành đạt. Bởi ông là con của một thợ đóng giày và người hầu gái. Giai tầng cứng nhắc của Anh thường sẽ ngăn Boole gặt hái được bất cứ điều gì khác với tổ tiên của mình. Nhưng nhờ trí tò mò cùng với người cha tận tình (người có đam mê lớn với toán học, khoa học và văn học), chàng George trẻ tuổi tự cho mình kiểu giáo dục đặc quyền của tầng lớp trên; cậu học cả tiếng Latin, Hi Lạp và toán. Quả ngọt từ những bài luận sớm về toán học của Boole là vào năm 1849 ông được chỉ định làm Giáo Sư toán đầu tiên của Queen’s College, ở Cork, Ireland.

Vài nhà toán học giữa thế kỉ 19 đã đang tìm định nghĩa toán học của logic (nổi bật nhất là Augustus De Morgan), nhưng Boole mới là người đầu tiên có bước ngoặt lý thuyết thật sự, đầu tiên là trong cuốn sách ngắn The Mathematical Analysis of Logic, Being an Essay Towards a Calculus of Deductive Reasoning (1847) và sau đó với những con chữ đầy khát vọng trong An Investigation of the Law of Thought on Which Are Founded the Mathematical Theories of Logic and Probabilities (1854), được gọi tiện hơn với cái tên The Laws of Thought. Boole mất năm 1864 lúc 49 tuổi sau khi vội đến lớp dưới trời mưa để rồi bị viêm phổi.

Tựa đề cuốn sách 1854 của Boole đề xuất một bước tiến đầy tham vọng: Boole tin rằng não người dùng logic để suy nghĩ, nếu ta tìm ra cách nào đó đại diện logic bằng toán học thì cũng sẽ tìm ra cách não bộ hoạt động bằng mô tả toán học. Nhưng ta vẫn có thể nghiên cứu toán học của ông mà không cần chấp nhận quan điểm tâm lý thần kinh học này.

Boole phát minh ra một kiểu đại số hoàn toàn khác mà sau này được gọi là đại số Boole để phân biệt với đại số thường. Trong đại số thường, các chữ cái thường được dùng để đại diện số. Chúng được gọi là toán hạng, và được kết hợp theo nhiều cách với toán tử, thường là + và ×. Ví dụ:

A = 3 × (B + 5)

Khi làm toán đại số thường, ta theo các quy luật nhất định. Những quy luật này có lẽ đã thấm nhuần vào đời sống do đó ta không còn nghĩ chúng như quy luật nữa và có khi còn quên mất tên rồi. Nhưng những quy luật lại là nền tảng cho tất cả tính toán của bất kỳ dạng toán học nào.

Quy luật thứ nhất là cộng và nhân có tính giao hoán. Có nghĩa là ta có thể hoán đổi vị trị các ký hiệu giữa toán tử:

A + B = B + A
A × B = B × A

Ngược lại, trừ và chia không có tính giao hoán.

Cộng và nhân còn có tính kết hợp, đó là

A + (B + C) = (A + B) + C
A × (B × C) = (A × B) × C

Và cuối cùng, là nhân phân phối:

A × (B + C) = (A × B) + (A × C)

Một đặc điểm khác của đại số thường là nó luôn dính tới số, như là số táo, số vịt hay khoảng cách mà tàu lửa đi được hay số giây trong ngày. Thiên tài của Boole ở chỗ làm cho đại số trừu tượng hơn bằng cách tách nó ra khỏi các con số. Trong đại số Boolean, toán hạng không ám chỉ các con số nữa mà là các lớp (class). Một lớp là một nhóm vật mà sau này được biết tới là tập hợp (set).

Thử nói về mèo nhé. Mèo có thể là giống đực hoặc cái. Để thuận tiện, ta dùng chữ M để ám chỉ lớp mèo đực (male) và F cho lớp mèo cái (female). Luôn nhớ là hai chữ này không hề ám chỉ tới số lượng mèo. Số lượng mèo có thể thay đổi theo thời gian khi mèo con cứ tiếp tục ra đời và mèo già thì (thật đáng tiếc) cứ tiếp tục qua đời. Chữ cái đại diện cho lớp mèo – mèo với đặc điểm cụ thể. Thay vì nói mèo đực, ta có thể chỉ nói “M”.

Ta cũng có thể dùng chữ cái để đại diện cho màu sắc của mèo: ví dụ, T có thể ám chỉ lớp mèo nâu (tan), B ám chỉ lớp mèo đen (black), W cho lớp mèo trắng (white) và O cho mèo màu “còn lại” (other) – tất cả mèo ngoài class T, B, W.

Cuối cùng (đi xa nhất có thể cho ví dụ này), mèo có thể bị triệt sản hoặc không. Hãy dùng N cho lớp mèo triệt sản (neutered) và U cho lớp còn sinh sản được (unneutered).

Trong đại số thường, toán tử + và × đại diện cho phép cộng và nhân. Trong đại số Boolean, + và × vẫn được dùng, và đây là lúc mọi thứ có vẻ rối tung lên. Mọi người đều biết cộng và nhân trong đại số thường thế cộng và nhân lớp thì sao?

Chà, thật ra thì ta không cộng và nhân trong đại số Boolean. Thay vào đó, + và × mang một nghĩa hoàn toàn khác.

Kí hiệu + trong đại số Boolean mang nghĩa là hợp của hai lớp. Một hợp của hai lớp là mọi thứ trong lớp một hợp với mọi thứ trong lớp hai. Ví dụ, B + W đại diện cho lớp tất cả mèo đen hoặc trắng.

Dấu × trong đại số Boolean mang nghĩa là giao của hai lớp. Một giao của hai lớp là mọi thứ có trong cả lớp đầu lớp thứ hai. Ví dụ, F × T đại diện cho lớp các con mèo cái màu nâu. Như trong đại số, ta có thể viết F × T thành F.T, hoặc gọn hơn là FT (cách mà Boole thích hơn). Bạn có thể nghĩ hai chữ cái như là hai tính từ đi liền nhau: mèo "cái nâu".

Để tránh nhầm lẫn giữa đại số thường và đại số Boolean, đôi khi kí hiệu ∪ và ∩ đại diện cho hợp và giao thay cho + và ×. Nhưng một phần trong sức tư tưởng giải phóng của Boole vào toán học là làm cho toán tử trừu tượng hơn, nên tôi sẽ tuân theo quyết định của ông không giới thiệu thêm các kí hiệu mới này.

Quy tắc giao hoán, kết hợp và phân phối được giữ nguyên trong đại số Boolean. Thêm nữa là, trong Boolean phân phối có thể áp dụng cho dấu + vào tích. Như này là không đúng trong đại số thường:

W + (B × F) = (W + B) × (W + F)

Hợp của mèo trắng với mèo cái đen bằng với giao của hai hợp: hợp mèo trắng và mèo đen, và hợp mèo trắng với mèo cái. Hơi rối một chút nhỉ. Nhưng mà nó đúng đấy.

Có thêm ba kí hiệu nữa để hoàn thành đại số Boolean. Hai trong số chúng trông khá giống với số nhưng lại không phải bởi vì được dùng khác đi. Kí hiệu 1 trong Boolean nghĩa là “toàn thể” – có nghĩa là, mọi thứ ta nói đến. Trong ví dụ này, 1 có nghĩa là “lớp của tất mèo”. Do đó,

M + F = 1

Có nghĩa là hợp của mèo cái và mèo đực là lớp tất cả mèo. Tương tự như vậy cho hợp của lớp mèo nâu, đen, trắng và màu còn lại:

T + B + W + O = 1

Và bạn cũng có được lớp tất cả mèo bằng cách này:

N + U = 1

Kí hiệu 1 có thể được dùng với dấu – để thể hiện toàn thể ngoại trừ gì đó. Ví dụ,

1 – M

là lớp tất cả mèo không phải đực. Bằng với lớp mèo cái

1 – M = F

Kí hiệu khác ta cần là 0, trong Boolean 0 biểu thị cho lớp rỗng – lớp không có gì. Lớp rỗng là kết quả từ việc giao hai lớp không có điểm chung, như giao của mèo đực và mèo cái:

F × M = 0

Chú ý là 1 và 0 hoạt động trong đại số Boolean đôi khi tương tự như trong đại số thường. Ví dụ giao của tất cả mèo và mèo cái là mèo cái:

1 × F = F

Giao của không mèo và mèo cái là không có mèo:

0 x F = 0

Hợp của không mèo và tất cả mèo cái là lớp mèo cái:

0 + F = F

Nhưng đôi khi kết quả lại không giống trong đại số thường lắm. Ví dụ, hợp của tất cả mèo và mèo cái tất cả mèo:

1 + F = 1

Vô nghĩa trong đại số thường.

Vì F là lớp mèo cái, (1 – F) là lớp mèo không phải cái, nên hợp của 2 lớp này là 1:

F + (1 – F) = 1

và giao của 2 lớp là 0:

F × (1 – F) = 0

Về mặt lịch sử, biểu thức này đại diện cho một khái niệm quan trọng trong logic: được gọi là Luật Mâu Thuẫn và biểu thị một vật không thể vừa là nó vừa là đối nghịch với nó.

Boolean khác với đại số nhiều nhất ở chỗ:

F × F = F

Mệnh đề có ý nghĩa trong Boolean. Giao của mèo cái với mèo cái vẫn là lớp mèo cái. Nhưng nếu là số thì chắc hẳn là sai rồi. Boole xem

X2 = X

là mệnh đề đơn làm cho đại số của ông khác với đại số thường. Một mệnh đề Boolean khác trông cũng khá ngộ khi đem so với đại số là:

F + F = F

Hợp của mèo cái với mèo cái vẫn là lớp mèo cái.

Boolean cung cấp một phương pháp toán học để giải quyết tam đoạn luận của Aristotle. Hãy nhìn vào hai câu đầu của tam đoạn luận nổi tiếng một lần nữa, nhưng lần này dùng ngôn ngữ trung lập giới tính:

Tất cả mọi người đều sẽ chết;
Socrates là người
.

Ta dùng P để đại diện cho lớp người (persons), M đại diện cho lớp khả tử (mortal) và S đại diện cho lớp Socrates. Khi nói “tất cả người đều chết” thì là ý gì? Có nghĩa là giao của lớp người với lớp khả tử là lớp người:

P × M = P

Sẽ sai khi nói rằng P x M = M, vì lớp khả tử có cả chó, mèo và cây cối.

Để nói, “Socrates là người” có nghĩa là giao của lớp chứa Socrates và lớp tất cả người là lớp chứa Socrates:

S × P = S

Vì ta biết là P = P × M, nên ta sẽ thế P vào:

S × (P × M) = S

Dùng kết hợp, ta được

(S × P) × M = S

Mà ta lại biết là S × P = S, thế vào

S × M = S

Xong. Biểu thức này cho ta biết là giao của Socrates với lớp khả tử là S, Socrates sẽ chết. Nếu ta tìm ra kết quả (S × M) bằng 0, ta kết luận rằng Socrates bất tử. Nếu bằng M, kết luận phải là mọi thứ khả tử đều là Socrates!

Dùng Boolean để chứng minh lẽ rõ ràng này thì như giết gà dùng dao mổ trâu vậy (cụ thể là để chứng minh Socrates đã chết cách đây 2400 năm), đại số Boolean còn có thể xác định xem thứ gì đó có thoả điều kiện cho trước không.

Một ngày nào đó bạn vào tiệm thú cưng và nói với nhân viên bán hàng là “Tôi muốn một con mèo đực đã thiến, trắng hay nâu đều được; không thì mèo cái đã triệt sản, màu nào cũng được trừ trắng; không có nữa thì tôi sẽ lấy bất cứ con mèo đen nào.” Và nhân viên sẽ nói với bạn “Vậy là bạn muốn một con mèo thuộc lớp được đại diện bởi biểu thức sau:

(M × N × (W + T)) + (F × N × (1 – W)) + B

Phải không?” Bạn đáp, “Chuẩn cơm mẹ nấu!👍”

Để xác minh là nhân viên đó đúng, bạn có thể đại diện khái niệm hợp với giao bằng OR (hoặc) với AND (và). Tôi viết hoa hai chữ này vì nó mang nghĩa bình thường trong tiếng Anh, nhưng chúng cũng có thể đại diện cho các phép toán trong đại số Boolean. Khi bạn hợp hai lớp có nghĩa là bạn thật sự chấp nhận các thứ từ lớp đầu OR lớp sau. Và khi bạn muốn giao hai lớp có nghĩa là bạn chỉ muốn những thứ có cả trong lớp đầu AND lớp sau. Hơn nữa bạn có thể dùng từ NOT (không) khi bạn gặp 1 với dấu trừ theo sau. Tóm lại,

  • Dấu + (hợp) cũng có nghĩa là OR.
  • Dấu × (giao) cũng có nghĩa là AND.
  • 1 – (toàn thể ngoại trừ) có nghĩa là NOT.

Nên biểu thức lúc nãy có thể viết lại là:

(M AND N AND (W OR T)) OR (F AND N AND (NOT W)) OR B

Đã rất gần với những gì bạn muốn. Để ý cách dấu ngoặc thể hiện chủ ý của bạn. Bạn muốn mèo thuộc một trong ba lớp này:

M AND N AND (W OR T))
OR
(F AND N AND (NOT W))
OR
B

Với cách viết biểu thức như này, nhân viên đã có thể thực hiện bài kiểm tra Boolean. Nó liên quan một biến thể khác của đại số Boolean, nơi các ký hiệu ám chỉ thuộc tính hay đặc điểm hay tính chất của mèo, và chúng có thể được gán số 0 hoặc 1. Số 1 có nghĩa là Đúng, con mèo này thoả các tiêu chí. 0 nghĩa là Sai, Trật không phải con mèo này.

Đầu tiên nhân viên đem ra một con mèo đực nâu có thể sinh sản. Đây là biểu thức tìm mèo:

(M × N × (W + T)) + (F × N × (1 – W)) + B

và khi thay 0, 1 vào thành thế này:

(1 x 0 x (0 + 1)) + (0 x 0 x (1 – 0)) + 0

Để ý là kí tự được gán 1 là M và T vì mèo này là đực và nâu.

Giờ ta cần rút gọn biểu thức. Nếu rút về 1 thì đúng mèo, còn 0 thì trật. Khi rút gọn ta phải nhớ trong đầu là không phải ta đang thực hiện cộng hay nhân mặc dù thường thì ta vờ như thế. Đa phần các quy tắc vẫn tương tự khi dùng + cho OR và × cho AND. (Đôi khi trong văn bản hiện đại kí hiệu ∧ và ∨ dùng cho AND với OR thay vì × với +. Nhưng ở đây + với × dễ hiểu hơn, vì quy tắc tương tự với đại số thường.)

Khi dấu × nghĩa là AND, kết quả có thể là

0 × 0 = 0
0 × 1 = 0
1 × 0 = 0
1 × 1 = 1

Nói cách khác, kết quả là 1 chỉ khi cả toán hạng trái AND phải đều là 1. Phép tính này cho kết quả tương tự với phép nhân thông thường, và có thể được tóm tắt lại bằng bảng nhỏ sau. Phép toán được hiện ở góc trên bên trái, và các kết hợp của toán tử nằm ở hàng trên và cột bên trái:

| AND | 0 | 1 |
 ----- --- ---
|  0  | 0 | 0 |
 ----- --- ---
|  1  | 0 | 1 |

Khi dấu + nghĩa là OR, kết quả là

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1

Kết quả là 1 khi toán hạng trái OR phải là 1. Phép toán này cho kết quả rất giống với phép cộng thông thường, trừ trường hợp 1 + 1 = 1. (Nếu mèo là đực hoặc nếu mèo là đực thì là mèo đực.) Phép OR có thể tóm tắt thành bảng:

| OR | 0 | 1 |
 ---- --- ---
|  0 | 0 | 1 |
 ---- --- ---
|  1 | 1 | 1 |

Ta đã sẵn sàng dùng bảng tính để hoàn thành biểu thức

(1 × 0 × 1) + (0 × 0 × 1) + 0 = 0 + 0 + 0 = 0

Kết quả là 0, không phải cậu mèo này rồi.

Tiếp, nhân viên đem ra cô mèo trắng đã triệt sản. Biểu thức gốc là

(M × N × (W + T)) + (F × N × (1 – W)) + B

Thay 0, 1 vô

(0 × 1 × (1 + 0)) + (1 × 1 × (1 – 1)) + 0

rút gọn thành

(0 × 1 × 1) + (1 × 1 × 0) + 0 = 0 + 0 + 0 = 0

Và cô mèo tội nghiệp này đã bị loại.

Lần này nhân viên đem ra một cô mèo xám đã triệt sản. (Màu xám trong lớp màu “còn lại” – không đen, trắng, nâu). Đây là biểu thức:

(0 × 1 × (0 + 0)) + (1 × 1 × (1 – 0) + 0

rút gọn thành

(0 × 1 × 0) + (1 × 1 × 1) + 0 = 0 + 1 + 0 = 1

Cuối cùng đã được 1, vâng, cô mèo con đã tìm thấy tổ ấm mới cho mình. (Và cũng là cô mèo dễ thương nhất!)

Tối muộn, khi cô mèo cuộn tròn trong lòng bạn với giấc ngủ êm ái, bạn tự hỏi liệu mình có thể dùng bóng đèn với công tắc để nối thành mạch điện giúp xác định con mèo nào thoả các tiêu chí không. (Vâng, bạn là một đứa trẻ kì lạ.) Bạn có chút nào cảm nhận là mình sắp tạo ra một đột phá tầm cỡ. Bạn sắp sửa thực hành vài thí nghiệm mà sẽ thống nhất đại số của George Boole với mạch điện và từ đó có được khả năng thiết kế và xây dựng máy tính điện tử. Nhưng cũng đừng để chúng mê hoặc bạn quá nha.

Để bắt đầu thử nghiệm, bạn nối đèn với pin như thường, nhưng dùng hai công tắc thay vì một: (Bạn có thể tương tác với ví dụ này trên website của tác giả)



Công tắc nối như này, một cái tiếp sau cái kia, là mạch nối tiếp. Nếu bạn đóng công tắc trái, không có gì xảy ra:



Tương tự nếu mở công tắc trái và đóng công tắc phải cũng không có gì hết. Bóng đèn chỉ sáng khi cả hai công tắc trái và phải đều đóng, như trong hình.


Từ khoá là . Cả công tắc trái phải phải đóng để dòng điện chạy trong mạch.

Mạch này trình diễn một thực nghiệm nhỏ trong logic. Thực tế bóng đèn đã trả lời cho câu hỏi “Có phải cả hai công tắc đều đóng không?” Ta có thể tóm tắt hoạt động của mạch bằng bảng sau

Công tắc trái | Công tắc phải | Bóng đèn
      Mở      |       Mở      | Không sáng
      Mở      |      Đóng     | Không sáng
     Đóng     |       Mở      | Không sáng
     Đóng     |      Đóng     | Sáng

Nếu bạn xem công tắc và bóng đèn như toán tử Boolean thì những trạng thái này có thể được gán với số 0 và 1. Số 0 có nghĩa là "công tắc mở" số 1 là "công tắc đóng". Một bóng đèn có hai trạng thái; 0 là "bóng đèn tắt" và 1 là "bóng đèn sáng". Giờ hãy viết lại bảng một cách đơn giản:

Công tắc trái | Công tắc phải | Bóng đèn
      0       |       0       |    0
      0       |       1       |    0
      1       |       0       |    0
      1       |       1       |    1

Để ý là nếu ta đổi chỗ hai công tắc thì kết quả vẫn như nhau. Thật ra chẳng cần phân biệt công tắc nào là công tắc nào. Nên ta có thể tái lập lại bảng AND và OR trước đây:

| Công tắc  |   |   |
| nối tiếp  | 0 | 1 |
 ----------- --- ---
|     0     | 0 | 0 |
 ----------- --- ---
|     1     | 0 | 1 |

giống với bảng AND. Kiểm tra thử

| AND | 0 | 1 |
 ----- --- ---
|  0  | 0 | 0 |
 ----- --- ---
|  1  | 0 | 1 |

Mạch giản đơn này thực sự đang biểu diễn một phép tính AND.

Giờ thử nối hai công tắc khác đi một chút:



Công tắc này đang được nối song song. Sự khác nhau giữa mạch này và mạch trước đó là nếu ta đóng công tắc trên thì đèn sẽ sáng:



hay đóng công tắc dưới:



hoặc là cả hai:



Đèn sáng khi công tắc trên hoặc dưới đóng. Từ khoá ở đây là hoặc.

Lần nữa, mạch biểu diễn một thực nghiệm trong logic. Bóng đèn trả lời cho câu hỏi, “Có phải một công tắc nào đó đóng không?” Bảng sau tóm tắt cách hoạt động của mạch:

Công tắc trái | Công tắc phải | Bóng đèn
      Mở      |       Mở      | Không sáng
      Mở      |      Đóng     | Sáng
     Đóng     |       Mở      | Sáng
     Đóng     |      Đóng     | Sáng

0 cho công tắc mở và đèn không sáng, 1 cho công tắc đóng và đèn sáng, có thể viết lại bảng như sau:

Công tắc trái | Công tắc phải | Bóng đèn
      0       |       0       |    0
      0       |       1       |    1
      1       |       0       |    1
      1       |       1       |    1

Không quan trọng thứ tự hai bóng đèn, viết lại bảng:

| Công tắc  |   |   |
| song song | 0 | 1 |
 ----------- --- ---
|     0     | 0 | 1 |
 ----------- --- ---
|     1     | 1 | 1 |

Và có lẽ bạn cũng đoán được là nó giống với bảng OR:

| OR | 0 | 1 |
 ---- --- ---
|  0 | 0 | 1 |
 ---- --- ---
|  1 | 1 | 1 |

Có nghĩa là hai công tắc song song biểu diễn biểu thức OR.

Khi bạn đến tiệm thú cưng và nói với nhân viên là: “Tôi muốn một con mèo đực đã thiến, trắng hay nâu đều được; không thì mèo cái đã triệt sản, màu nào cũng được trừ trắng; không có nữa thì tôi sẽ lấy bất cứ con mèo đen nào”, và nhân viên sẽ đưa ra một biểu thức:

(M × N × (W + T)) + (F × N × (1 – W)) + B

Giờ bạn biết là hai công tắc mắc nối tiếp biểu diễn logic AND (đại diện bởi dấu ×) và logic OR nếu nối song song (đại diện bởi dấu +), bạn có thể nối tám công tắc như sau:



Mỗi công tắc trong mạch được gắn chữ – giống trong biểu thức Boolean. -W có nghĩa là NOT W là cách viết khác của 1 – W. Nếu bạn đi theo mạch điện từ trái sang phải bắt đầu từ trên xuống dưới, bạn sẽ gặp các chữ cái theo thứ tự trong biểu thức. Mỗi dấu × trong biểu thức tương ứng với điểm mà hai công tắc (hay nhóm công tắc) nối nối tiếp. Mỗi dấu + là điểm mà hai công tắc (hay nhóm công tắc) nối song song.

Bạn nhớ lại là nhân viên đem ra một cậu mèo nâu đã thiến. Đóng các công tắc tương ứng:



Mặc dù M, T và NOT W đều đóng, ta chưa được mạch hoàn chỉnh đề thắp sáng đèn. Tiếp theo nhân viên đem ra một cô mèo trắng đã triệt sản:



Một lần nữa, công tắc đúng đã không đóng để đèn sáng. Nhưng sau cùng, nhân viên đem ra một cô mèo xám đã triệt sản:



Vậy là mạch điện đã hoàn thành, thắp sáng bóng đèn vào báo cho bạn biết cô mèo đã đáp ứng được các tiêu chí.

George Boole chưa từng nối mạch như này. Ông chưa bao giờ có được sự phấn khích khi nhìn biểu thức Boolean được biểu diễn bằng công tắc, mạch điện và bóng đèn.  Một điều hiển nhiên đó là mãi 15 năm sau khi Boole ông mất bóng đèn mới được phát minh. Nhưng máy điện báo thì đã ra đời mười năm trước khi cuốn The Laws of Thought được xuất bản – và điều quan trọng của hệ thống điện báo đó là chỉ một thiết bị đơn giản lại có thể thực hiện được các phép toán logic với tốc độ nhanh hơn với công tắc.
Cảm ơn bạn đã đọc bài.
63

Open to Work

Looking for a Fullstack Ruby on Rails developer?

I am open to new remote/hybrid opportunities and contract work.

Thảo luận trên Bluesky

Đi

Đang tải bình luận...

Powered by Bluesky AT Protocol