Bảng giá trị cho các phép toán bool

Luật Boolean quy định một kiểu dữ liệu chỉ có thể nhận một trong hai giá trị như đúng/sai nhằm đại diện cho hai giá trị thật của logic và đại số Boolean. Cùng FUNiX tìm hiểu Luật Boolean như thế nào? Cách áp dụng luật để rút gọn biểu thức.

\>> Khóa học Kiến thức toán học ứng dụng trong CNTT

\>> Khóa học lập trình cơ bản

Định nghĩa

Luật Boolean nghiên cứu các phép toán thực hiện trên 2 trạng thái true/false (hoặc yes/no), hay các biến chỉ có 2 giá trị 0/1.

Xây dựng luật Boolean dựa trên những vấn đề cơ bản sau:

  • Domain là tập hợp bao gồm các phần tử.
  • Các phép toán được thực hiện được trên miền.
  • Các định đề được công nhận không cần qua chứng minh.
  • Tập các hệ quả được suy ra từ định đề, định lý, định luật…
    Bảng giá trị cho các phép toán bool
    Luật Boolean

Nguyên tắc cơ bản khi sử dụng luật Boolean

  • Sử dụng hệ cơ số nhị phân.
  • Sử dụng các phép toán: Phép cộng lý luận (Logical addition): (+) hay (OR). Phép nhân lý luận (Logical multiplication): (.) hay ( AND ). Phép bù: ( NOT )
  • Độ ưu tiên của các phép toán
  • Tính đóng: tồn tại một miền có ít nhất 2 phần tử phân biệt và 2 phép toán (+) và (.) sao cho nếu x và y là các phần tử thuộc miền đó thì (x + y), (x.y) cũng là 1 phần tử thuộc miền đó.

Độ ưu tiên của các phép toán

  • Biểu thức sẽ được tính từ trái sang phải.
  • Đánh giá biểu thức trong dấu ngoặc đơn trước.
  • Ưu tiên tiếp theo là các phép bù (NOT).
  • Tiếp đến là các phép toán (.), (AND).
  • Cuối cùng là các phép toán (+), (OR).
    Bảng giá trị cho các phép toán bool
    Hệ cơ số nhị phân

Các định đề của luật Boolean

Định đề 1:

  • A = 0 khi và chỉ khi giá trị A không bằng 1
  • A = 1 khi và chỉ khi giá trị A không bằng 0

Định đề 2: Phần tử đồng nhất

  • x + 0 = x
  • x . 1 = x

Định đề 3: Tính giao hoán

  • x + y = y + x
  • x . y = y . x

Định đề 4: Tính kết hợp

  • (x + y) + z = x + (y + z)
  • x .(y . z) = (x . y). z

Định đề 5: Tính phân phối

  • x .(y +z) = x . y + x . z
  • x + y . z = (x + y).(x + z)

Định đề 6: Tính bù

  • x + x \= 1
  • x.x \= 0

Các định lý của đại số Boolean

Định lí 1 (Luật lũy đẳng)

  • x + x = x
  • x . x = x

Định lí 2 (Định luật nuốt)

  • x + 1 = 1
  • x . 0 = 0

Định lí 3 (Định luật hấp thu)

  • x + x . y = x
  • x .(x + y) = x

Định lí 4 (Định luật bù kép)

Định lý 5

  • (a) x . ( x + y) = x . y
  • (b) x + x . y = x + y

Định lí 6 (Định luật De Morgan)

  • (a) x +y \= x . y
  • (b) x + x . y = x + y

Áp dụng luật Boolean để rút gọn biểu thức

  • Áp dụng luật Boolean để rút gọn biểu thức nghĩa là tối ưu hóa số lượng phần tử và số hạng để tạo ra một mạch với số lượng phần tử ít hơn.
  • Phương pháp: sử dụng phương pháp đại số, áp dụng các định lý, định đề, các luật,… cắt và thử nhiều lần để rút gọn biểu thức tới mức thấp nhất.

Ví dụ:

  1. x + x . y

\= (x + x).(x + y) theo định đề 5(b)

\= 1 .(x + y) theo định đề 6(a)

\= (x + y) .1 theo định đề 3(b)

\= x + y theo định đề 2(b)

  1. x . (x + y)

\= (x . x) + (x . y) theo định đề 5(a)

\= 0 + (x . y) theo định đề 6(b)

\= (x . y) + 0 theo định đề 3(a)

\= x . y theo định đề 2(a)

Ví dụ: Hãy rút gọn biểu thức sau:

x . y + x . z + y . z

\= x . y + x . z + y . z . 1

\= x . y + x . z + y . z .(x + x)

\= x . y + x . z + y . z . x + y . z . x

\= x . y + x . z + x . y . z + x . y . z

\= x . y . 1 + x . z + x . y . z + x . y .z

\= x . y . 1 + x . y . z + x . z + x . y . z

\= x . y .(1 + z) + x . z .(1 + y)

\= x . y .(z + 1) + x . z .(y +1)

\= x . y . 1 + x . z . 1

\= x . y + x .z

Hiện nay luật Boolean được sử dụng rất nhiều trong cấu trúc của các ngôn ngữ lập trình phổ biến. Hy vọng bài viết này của FUNiX đã cung cấp cho các bạn những kiến thức bổ ích, giúp các bạn hiểu rõ