Thử thách
Cho một T
tập hợp các tập hợp con của một tập hữu hạn S={1,2,3,...,n}
, xác định xem có phải T
là một cấu trúc liên kết hay không.
Giải trình
Các Powerset P(S)
của một số bộ S
là tập hợp của tất cả các tập con của S
. Vài ví dụ:
S = {}, P(S) = {{}}
S = {1}, P(S) = {{}, {1}}
S = {1,2}, P(S) = {{}, {1}, {2}, {1,2}}
S = {1,2,3}, P(S) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}
Một cấu trúc liên kết T
trên tập hợp S
là một tập hợp con P(S)
có các thuộc tính sau:
{}
đang ởT
vàS
đang ởT
- Nếu
A
vàB
đang ởT
thì giao điểm của chúng cũng vậyA ∩ B
- Nếu
A
vàB
đang ởT
thì liên minh của họ cũng vậyA ∪ B
*
* Định nghĩa này không hoàn toàn chính xác, nhưng nó đúng với các tập hữu hạn, đủ cho mục đích của thử thách này. Tiên đề thực tế cũng sẽ cho phép các hiệp hội vô hạn, nhưng điều đó không liên quan trong trường hợp hữu hạn.
Chi tiết
- Bạn có thể giả sử rằng
S = {1,2,...,n}
(hoặc cách khácS = {0,1,...,n}
) trong đón
số nguyên lớn nhất xuất hiện trong các bộT
. - Định dạng đầu vào rất linh hoạt: Bạn có thể sử dụng một chuỗi, danh sách danh sách hoặc bộ danh sách hoặc bất kỳ định dạng tương tự nào mà ngôn ngữ của bạn có thể xử lý. Bạn cũng có thể sử dụng các bộ như
S = {0,1,...,n}
nếu nó thuận tiện hơn. - Đầu ra phải là Truthey hoặc falsey.
- Bạn được phép lấy
n
(hoặc thay thến+1
hoặcn-1
) làm đầu vào bổ sung. - Nếu bạn làm việc với các danh sách được sắp xếp, bạn có thể giả sử rằng các số trong một bộ được sắp xếp. Bạn cũng có thể giả định rằng danh sách này có một thứ tự nhất định (ví dụ: từ điển.
- Khi chúng tôi biểu diễn các bộ, bạn có thể giả sử rằng không có hai mục nào trong biểu diễn danh sách của chúng bằng nhau.
Ví dụ
Cấu trúc liên kết
{{}} over {}
{{},{1}} over {1}
P(S) over S (see in the explanation)
{{},{1},{1,2}} over {1,2}
{{},{1},{2,3},{1,2,3}} over {1,2,3}
{{1}, {1,2,3}, {1,4,5,6}, {1,2,3,4,5,6}, {}, {2,3}, {4,5,6}, {2,3,4,5,6}}
{{}, {1}, {2,3}, {2}, {4,5,6}, {5,6}, {5}, {2,5,6}, {2,5}, {1,5}, {1,2,3,4,5,6}, {1,2,3}, {1,2}, {1,4,5,6}, {1,5,6}, {1,2,5,6}, {2,3,4,5,6}, {2,3,5,6}, {2,3,5}, {1,2,3,5}, {2,4,5,6}, {1,2,5}, {1,2,3,5,6}, {1,2,4,5,6}}
{{}, {1}, {1,2}, {1,2,3}, {1,2,3,4}, {1,2,3,4,5}, {1,2,3,4,5,6}, {1,2,3,4,5,6,7}, {1,2,3,4,5,6,7,8}, {1,2,3,4,5,6,7,8,9}}
{{}, {1}, {1,2,3}, {1,2,3,4,5}, {1,2,3,4,5,6,7}, {1,2,3,4,5,6,7,8,9}}
phi cấu trúc
{{1}} because {} is not contained
{{},{2}} because {1,2} is not contained
{{},{1,2},{2,3}} because the union {1,2,3} is not contained
{{},{1},{1,2},{2,3},{1,2,3}} because the intersection of {1,2} and {2,3} is not contained
{{},{1},{2},{3},{1,2},{2,3},{1,2,3}} because the union of {1} and {3} is not contained
{{}, {1}, {2,3}, {2}, {4,5,6}, {5,6}, {5}, {2,5,6}, {2,5}, {1,5}, {1,2,3,4,5,6}, {1,2,3}, {1,2}, {1,4,5,6}, {1,5,6}, {1,2,5,6}, {2,3,4,5,6}, {2,3,5,6}, {2,3,5}, {2,4,5,6}, {1,2,5}, {1,2,3,5,6}, {1,2,4,5,6}} because {1,2,3,5} is missing
{{}, {1}, {2}, {1,2,3}, {1,2,3,4,5}, {1,2,3,4,5,6,7}, {1,2,3,4,5,6,7,8,9}} because {1,2} is missing
T
là một tập hợp, tôi nghĩ thật hợp lý khi cho rằng không có tập hợp con nào trong đầu vào được lặp lại (nghĩa {{}, {1,2}, {1,2}}
là đầu vào không hợp lệ). Bạn có thể làm rõ rằng trong thử thách, khẳng định hay phủ định?