Todas as combinações – binário

Código em Python, para gerar todas as combinações em binário de um certo número de dígitos.

Para transformar um número em binário, a função binary_repr do numpy é uma alternativa.

Basta percorrer todos os números num range de 0 a 2^Ndigitos.

import numpy as np

ndig = 3

binComb =[np.binary_repr(c,ndig) for c in range(2**ndig)]

print(binComb)

Resultado:

[‘000’, ‘001’, ‘010’, ‘011’, ‘100’, ‘101’, ‘110’, ‘111’]

Permutações

O Python tem um pacote muito útil para gerar permutações.

import itertools

permutacoes = list(itertools.permutations([0,1,2]))
print(permutacoes)

O resultado é uma lista. Cada tuplas é uma permutação.

[(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]

Note que são 3! permutações.

Em Python, math.factorial(3) = 6.

Ou seja, a cautela aqui é que o número pode crescer exponencialmente.

Por exemplo, 10! = 3.628.800

Veja também: