Desafio
Dado um conjunto T
de subconjuntos de um conjunto finito S={1,2,3,...,n}
, determine se T
é uma topologia ou não.
Explicação
O conjunto P(S)
de poderes de um conjunto S
é o conjunto de todos os subconjuntos de S
. Alguns exemplos:
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}}
Uma topologia T
no conjunto S
é um subconjunto P(S)
com as seguintes propriedades:
{}
está dentroT
eS
está dentroT
- Se
A
eB
estão,T
então é a sua interseçãoA ∩ B
- Se
A
eB
estão,T
então é a união delesA ∪ B
*
* Essa definição não é muito correta, mas é verdadeira para conjuntos finitos, o que é suficiente para os propósitos deste desafio. O axioma real também permitiria uniões infinitas, mas isso é irrelevante no caso finito.
Detalhes
- Você pode assumir que
S = {1,2,...,n}
(ou alternativamenteS = {0,1,...,n}
) onden
está o maior número inteiro que aparece nos conjuntos deT
. - O formato de entrada é flexível: você pode usar uma string, uma lista de listas ou um conjunto de listas ou qualquer formato semelhante que o seu idioma possa manipular. Você também pode usar conjuntos como
S = {0,1,...,n}
se for mais conveniente. - A saída deve ser verdade ou falsey.
- Você tem permissão para tomar
n
(ou alternativamenten+1
oun-1
) como uma entrada adicional. - Se você trabalha com listas ordenadas, pode assumir que os números em um conjunto são classificados. Você também pode assumir que a lista tem uma determinada ordem (por exemplo, lexicográfica.
- Como representamos conjuntos, você pode assumir que não há duas entradas de sua representação de lista iguais.
Exemplos
Topologias
{{}} 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}}
não-topologias
{{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
é um conjunto, acho razoável supor que nenhum subconjunto na entrada seja repetido (ou {{}, {1,2}, {1,2}}
seja, não é uma entrada válida). Você pode esclarecer isso no desafio, afirmativamente ou negativamente?