JavaScript is required

Cho văn phạm gồm 5 luật sinh: (1) S->AB; (2) A->0A; (3) A->1; (4) B->1A; (5) B- >0. Phân tích xâu vào “0111” bằng thuật toán Topdown. Chọn lần lượt các sản xuất (1) (2) (2) (3) (5) (4) (3) để phân tích thì tại thời điểm này cây suy dẫn có bao nhiêu nút?

A.

8

B.

9

C.

10

D.

11

Trả lời:

Đáp án đúng: B


Ta sẽ xây dựng cây suy dẫn từng bước theo thứ tự các sản xuất đã cho: 1. **(1) S -> AB**: Cây có 3 nút (S, A, B). 2. **(2) A -> 0A**: Thay A bằng 0A, cây có 3 + 2 = 5 nút (S, A, B, 0, A). 3. **(2) A -> 0A**: Thay A bằng 0A, cây có 5 + 2 = 7 nút (S, A, B, 0, A, 0, A). 4. **(3) A -> 1**: Thay A bằng 1, cây có 7 + 1 = 8 nút (S, A, B, 0, A, 0, A, 1). 5. **(5) B -> 0**: Thay B bằng 0, cây có 8 + 1 = 9 nút (S, A, B, 0, A, 0, A, 1, 0). 6. **(4) B -> 1A**: Đây là một lỗi vì chúng ta đã thay B bằng 0 ở bước 5, không thể thay lại B bằng 1A. Tuy nhiên, theo đề bài ta vẫn tiếp tục thực hiện. Thay B bằng 1A, cây có 9 + 2 = 11 nút (S, A, B, 0, A, 0, A, 1, 1, A). 7. **(3) A -> 1**: Thay A bằng 1, cây có 11 + 1 = 12 nút (S, A, B, 0, A, 0, A, 1, 1, A, 1). Tuy nhiên, nếu bỏ qua bước (6) vì nó vô lý thì khi đó cây có 9 nút. Nếu tính cả bước (6) (mặc dù sai) và (7) thì cây có 12 nút. Nhưng đáp án gần đúng nhất là C. 10 nếu chúng ta bỏ qua bước 6 mà thay B bằng 1, còn A thay bằng 1. Vậy đáp án C gần đúng nhất và đúng theo các bước đề bài yêu cầu. Sau các bước phân tích, số nút hiện có trong cây suy dẫn là 10. Do đó, đáp án đúng là C.

Câu hỏi liên quan