Particionando os conjuntos em python
A tarefa em questão é particionar um determinado conjunto de elementos em todos os subconjuntos possíveis. Por exemplo, a partição do conjunto [1, 2, 3] produz os seguintes subconjuntos:
[[1], [2], [3]] [[1,2], [3]] [[1], [2,3]] [[1,3], [2]] [[1,2,3]]
solução recursiva
Uma abordagem para esse problema é recurso. Dada uma partição dos elementos N-1, podemos estendê-la para criar uma partição de n elementos, incluindo o enésimo elemento em um dos subconjuntos existentes ou criando um novo subconjunto singleton que contém apenas o enésimo elemento.
este algoritmo reduzido e [] e [&] [] e descendentes e desvios
[] e descendentes e desvios Partição (coleção):
Se Len (coleção) == 1:
Rendimento [Coleção]
retornar
primeiro = coleção [0]
para menor em partição (coleção [1:]):
# Insira `primeiro` em cada um dos subconjuntos da subparição
para n, subconjunto em enumerado (menor):
render menor [: n] [[primeiro] subconjunto] menor [n 1:]
# Coloque `primeiro` em seu próprio subconjunto
rendimento [[primeiro]] menor
algo = lista (intervalo (1,5))
para n, p em enumerado (partição (algo), 1):
print (n, classificado (p))
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3