# Công cụ tạo bảng chân trị

> Truth table of a Boolean expression in up to 6 variables, with the canonical sum of products, product of sums, minterms and maxterms.

Phiên bản tương tác: https://www.calcopenly.com/vi/math/truth-table-generator
Chủ đề: Máy tính toán học

A truth table lists the value of a Boolean expression for every combination of its inputs: 2ⁿ rows for n variables, so 8 rows for A, B and C. Each row where the expression is 1 is a minterm, and the OR of those minterms is the canonical sum of products; each row where it is 0 is a maxterm, and the AND of the maxterms is the canonical product of sums. Both describe the same function.

Digital logic and computer science students use it to check circuit designs, simplify conditions and verify logic laws. The default, (A and B) or not C, is true in 5 of 8 rows, minterms 0, 2, 4, 6 and 7, and false in rows 1, 3 and 5.

Up to 6 variables (64 rows) are accepted. Precedence runs not, and/nand, xor, or/nor, implies (grouped from the right), then iff; symbols such as !, &, | and ^ also work. An expression true in every row is a tautology, and one false in every row is a contradiction.

## Dữ liệu đầu vào

- **Boolean expression**: Operators: not (! ~ ¬ or a trailing '), and (& ·), nand, xor (^ ⊕), or (| +), nor, implies (->), iff (<->). Constants 0 and 1.

## Kết quả

- Canonical sum of products — kết quả chính
- Canonical product of sums
- Minterms (rows that are 1)
- Maxterms (rows that are 0)
- Rows that are true
- Classification

## Công thức

$$
\begin{aligned} F &= \sum_{F(m)=1} m \quad \text{(sum of minterms)} \\[4pt] &= \prod_{F(M)=0} M \quad \text{(product of maxterms)} \end{aligned}
$$

## Ví dụ có lời giải

### A and B

- Boolean expression: A and B
- **Canonical sum of products: A·B**
- **Minterms (rows that are 1): Σm(3)**
- **Rows that are true: 1**
- **Classification: Contingent**
- Nguồn đối chiếu: Python itertools.product over (A, B): only A=1, B=1 is true

### A xor B

- Boolean expression: A xor B
- **Canonical sum of products: A'·B + A·B'**
- **Minterms (rows that are 1): Σm(1, 2)**
- **Canonical product of sums: (A + B)·(A' + B')**
- Nguồn đối chiếu: Python itertools.product with a != b

### A implies B

- Boolean expression: A -> B
- **Minterms (rows that are 1): Σm(0, 1, 3)**
- **Maxterms (rows that are 0): ΠM(2)**
- **Canonical product of sums: (A' + B)**
- Nguồn đối chiếu: Python itertools.product with (not a) or b

### Tautology: A or not A (edge case)

- Boolean expression: A or not A
- **Classification: Tautology**
- **Canonical product of sums: 1**
- **Rows that are true: 2**
- Nguồn đối chiếu: Law of excluded middle; Python check over A in (0, 1)

### (A and B) or not C

- Boolean expression: (A and B) or not C
- **Minterms (rows that are 1): Σm(0, 2, 4, 6, 7)**
- **Maxterms (rows that are 0): ΠM(1, 3, 5)**
- **Rows that are true: 5**
- Nguồn đối chiếu: Python itertools.product over (A, B, C) with (a and b) or not c

### nand binds tighter than nor

- Boolean expression: A nand B nor C
- **Minterms (rows that are 1): Σm(6)**
- **Canonical sum of products: A·B·C'**
- Nguồn đối chiếu: Python: not ((not (a and b)) or c) over itertools.product

## Câu hỏi

### How do you make a truth table?

List every combination of the inputs by counting in binary: 2 variables give 4 rows, 3 give 8, and 6 give 64. Then evaluate the expression in each row, working from the innermost operation outward. For (A and B) or not C, the row A = 1, B = 1, C = 1 gives (1 and 1) or 0 = 1, while A = 0, B = 0, C = 1 gives 0 or 0 = 0.

### What are minterms and maxterms?

A minterm is an AND of every variable, each plain or negated, that is 1 in exactly one row; a maxterm is an OR of every variable that is 0 in exactly one row. Row numbers index them: for A, B and C, minterm 6 is A·B·C′ and maxterm 1 is (A + B + C′). A function is the OR of its minterms and, equally, the AND of its maxterms.

### What is the difference between sum of products and product of sums?

A sum of products (SOP) ORs together AND terms, one for each row where the function is 1; a product of sums (POS) ANDs together OR terms, one for each row where it is 0. A xor B is A′·B + A·B′ as a sum of products and (A + B)·(A′ + B′) as a product of sums. Both are complete; the shorter one is whichever has fewer rows to cover.

### What is a tautology in logic?

An expression that is true in every row of its truth table, whatever the inputs. A or not A, the law of excluded middle, is the simplest; (A → B) or (B → A) is another. The opposite, false in every row, is a contradiction, such as A and not A, and anything true in some rows but not others is called contingent.

### When is A implies B true?

A → B is false only when A is true and B is false; in the other three rows it is true. Its truth table therefore has minterms 0, 1 and 3 and a single maxterm, 2, and it is equivalent to not A or B and to its contrapositive, not B → not A. A chain such as A → B → C groups from the right, as A → (B → C).

### “Công cụ tạo bảng chân trị” chính xác đến mức nào?

Độ chính xác phụ thuộc vào dữ liệu nhập và giả định của phương pháp. Phép tính thập phân dùng 50 chữ số có nghĩa, nhưng ước lượng, phương pháp số và dữ liệu nguồn có thể kém chính xác hơn; làm tròn khi hiển thị không loại bỏ các giới hạn đó. Ví dụ có lời giải đã đối chiếu với nguồn độc lập: 8. Ví dụ, “A and B” được kiểm tra bằng Python itertools.product over (A, B): only A=1, B=1 is true.

### Phương pháp này lấy từ đâu?

Wolfram MathWorld — Truth Table; Wikipedia — Canonical normal form (minterms and maxterms).

## Nguồn

- [Wolfram MathWorld — Truth Table](https://mathworld.wolfram.com/TruthTable.html)
- [Wikipedia — Canonical normal form (minterms and maxterms)](https://en.wikipedia.org/wiki/Canonical_normal_form)
