Uma ótima dica para encontrar a solução de força bruta para um problema

Essa técnica funciona para problemas em que é solicitado que você encontre um número “X” de itens. Um ótimo exemplo é o problema do degrau da escada. Neste problema, você tem uma escada de comprimento “N” e pode dar passos de comprimento um, comprimento dois ou comprimento três. A ideia é chegar ao número total de combinações de degraus que você pode realizar nessa escada. Ao encontrar uma solução de força bruta para este problema, considere isto …

Usando o problema da escada, você pode facilmente validar se um determinado resultado é um conjunto de etapas válido ou inválido. Tudo o que você precisa fazer é observar a distância entre cada etapa e, em seguida, certificar-se de que a distância máxima entre as etapas é menor que três (para cada etapa ou cada conjunto de etapas).

Se for esse o caso, sua entrada é válida e tudo o que você precisa fazer é usar uma técnica bastante padrão para gerar recursivamente todas as diferentes combinações de etapas possíveis. Isso permite que você obtenha todos os resultados possíveis possíveis e, em seguida, filtre usando a função de validação.

Obviamente, essa não é uma abordagem eficiente para esse problema … mas estamos olhando para a solução de força bruta para o problema da escada neste exemplo, então realmente não importa.

Fonte: https://www.byte-by-byte.com/finding-a-brute-force-solution/