1 [Hướng dẫn]Biểu diễn mối quan hệ của A với U qua một xâu nhị phân Thu Jun 09, 2011 10:03 pm
Admin
Quản trị viên
Bài toán 1:
Cho tập hợp U. Tập hợp A là tập con của U. Hãy biểu diễn mối quan hệ của A với U qua một xâu nhị phân.
Hướng dẫn:
Ta sử dụng mảng U[ ] và A[ ] lần lượt để biểu diễn tập U và A. Ta sẽ sử dụng mảng B[ ] gồm các số 0, 1 để biểu diễn mối quan hệ của A với U.
Tìm B[ ] như thế nào? Ta duyệt qua các phần tử của U[ ]. Nếu phần tử nào đó của U[ ] mà chứa trong A[ ] thì ta thêm 1 vào B[ ]. Ngược lại, phần tử đó không chứa trong A[ ] thì ta thêm 0 vào B[ ].
Ví dụ: Cho U[ ] = {1, 2, 3, 4, 5}; A = {1, 2, 5}.
Duyệt qua các phần tử của U[ ], thấy:
1 chứa trong A → thêm 1 vào B[ ]
2 chứa trong A → thêm 1 vào B[ ]
3 không chứa trong A → thêm 0 vào B[ ]
4 không chứa trong A → thêm 0 vào B[ ]
5 chứa trong A thêm 1 vào B[ ]
Kết quả được B[ ] = {1, 1, 0, 0, 1}.
Như vậy, số phần tử của mảng B[] luôn luôn bằng số phần tử của mảng U[]. Ứng với mỗi phần tử tại vị trí i trong B[], cho biết phần tử tại vị trí i trong U có xuất hiện trong A hay không.
Bài toán 2:
Cho tập hợp U và dãy nhị phân B[ ] biểu diễn mối quan hệ của một tập hợp A nào đó với U. Cho biết A là tập con của U, hãy ra màn hình tập A.
Hướng dẫn:
Đây là bài toán ngược của Bài toán 1. Ta duyệt qua các phần tử của B[ ]. Nếu phần tử tại vị trí i nào đó của B (phần tử B[i]) có giá trị là 1 thì ta in ra phần tử tại vị trí i của U (phần tử U[i]).
Ví dụ: U[ ] = {1, 2, 3, 4, 5}, B[ ] = {1, 0, 1, 1, 0}.
Duyệt các phần tử của B[ ], ta thấy:
Tại i = 0, B[i] = 1 → in ra U[i] = 1
Tại i = 1, B[i] = 0 → không in ra U[i] = 2
Tại i = 2, B[i] = 1 → in ra U[i] = 3
Tại i = 3, B[i] = 1 → in ra U[i] = 4
Tại i = 4, B[i] = 0 → không in ra U[i] = 5
Kết quả được A[ ] = {1, 3, 4}.
Cho tập hợp U. Tập hợp A là tập con của U. Hãy biểu diễn mối quan hệ của A với U qua một xâu nhị phân.
Hướng dẫn:
Ta sử dụng mảng U[ ] và A[ ] lần lượt để biểu diễn tập U và A. Ta sẽ sử dụng mảng B[ ] gồm các số 0, 1 để biểu diễn mối quan hệ của A với U.
Tìm B[ ] như thế nào? Ta duyệt qua các phần tử của U[ ]. Nếu phần tử nào đó của U[ ] mà chứa trong A[ ] thì ta thêm 1 vào B[ ]. Ngược lại, phần tử đó không chứa trong A[ ] thì ta thêm 0 vào B[ ].
Ví dụ: Cho U[ ] = {1, 2, 3, 4, 5}; A = {1, 2, 5}.
Duyệt qua các phần tử của U[ ], thấy:
1 chứa trong A → thêm 1 vào B[ ]
2 chứa trong A → thêm 1 vào B[ ]
3 không chứa trong A → thêm 0 vào B[ ]
4 không chứa trong A → thêm 0 vào B[ ]
5 chứa trong A thêm 1 vào B[ ]
Kết quả được B[ ] = {1, 1, 0, 0, 1}.
Như vậy, số phần tử của mảng B[] luôn luôn bằng số phần tử của mảng U[]. Ứng với mỗi phần tử tại vị trí i trong B[], cho biết phần tử tại vị trí i trong U có xuất hiện trong A hay không.
Bài toán 2:
Cho tập hợp U và dãy nhị phân B[ ] biểu diễn mối quan hệ của một tập hợp A nào đó với U. Cho biết A là tập con của U, hãy ra màn hình tập A.
Hướng dẫn:
Đây là bài toán ngược của Bài toán 1. Ta duyệt qua các phần tử của B[ ]. Nếu phần tử tại vị trí i nào đó của B (phần tử B[i]) có giá trị là 1 thì ta in ra phần tử tại vị trí i của U (phần tử U[i]).
Ví dụ: U[ ] = {1, 2, 3, 4, 5}, B[ ] = {1, 0, 1, 1, 0}.
Duyệt các phần tử của B[ ], ta thấy:
Tại i = 0, B[i] = 1 → in ra U[i] = 1
Tại i = 1, B[i] = 0 → không in ra U[i] = 2
Tại i = 2, B[i] = 1 → in ra U[i] = 3
Tại i = 3, B[i] = 1 → in ra U[i] = 4
Tại i = 4, B[i] = 0 → không in ra U[i] = 5
Kết quả được A[ ] = {1, 3, 4}.