JavaScript is required

Dãy bit tiếp sau của dãy 10010011 trong thuật toán liệt kê tất cả các xâu nhị phân có độ dài 8 bằng phương pháp sinh.

A.

10010100

B.

10011000

C.

10110011

D.
10010111
Trả lời:

Đáp án đúng: D


Thuật toán sinh xâu nhị phân độ dài n hoạt động bằng cách bắt đầu từ xâu "00...0" (n số 0) và lặp lại các bước sau cho đến khi đạt đến xâu "11...1" (n số 1): 1. **Tìm vị trí bit 0 cuối cùng**: Duyệt xâu từ phải sang trái, tìm vị trí `i` đầu tiên mà bit tại vị trí đó là 0. 2. **Đổi bit 0 thành 1**: Đặt bit tại vị trí `i` thành 1. 3. **Đặt các bit sau vị trí i thành 0**: Tất cả các bit từ vị trí `i+1` đến cuối xâu đều được đặt thành 0. Áp dụng vào bài toán: Dãy bit hiện tại là 10010011. 1. Tìm vị trí bit 0 cuối cùng: Duyệt từ phải sang trái, ta thấy vị trí bit 0 cuối cùng là vị trí thứ 2 từ phải sang (tức là vị trí thứ 7 từ trái sang). 2. Đổi bit 0 thành 1: Dãy bit trở thành 10010111. 3. Đặt các bit sau vị trí i thành 0: Không có bit nào sau vị trí i. Vậy, dãy bit tiếp theo là 10010100 (A).

Câu hỏi liên quan