Eu tenho um problema combinatório que gostaria de colocar no OEIS - o problema é que não tenho termos suficientes. Esse desafio de código é ajudar-me a calcular mais termos, e o vencedor será o usuário com o envio contendo o maior número de termos.
O problema
Suponha que eu lhe forneça uma matriz triangular de lâmpadas com comprimento lateral :
o
o o
o o o
o o o o
o o o o o
o o o o o o
1 2 ... n
Vou acender três lâmpadas que formam um triângulo equilátero "vertical", como no exemplo a seguir:
o
o x
o o o
o o o o
o x o o x
o o o o o o
Antes de acender as luzes, seu trabalho é remover o maior número possível de lâmpadas da matriz - sem perder a capacidade de deduzir o triângulo de lâmpadas que foram acesas. Para ficar claro, se uma lâmpada foi removida, ela não acende quando sua posição é ligada.
Por exemplo, se você removesse as seguintes lâmpadas (marcadas por .
), você apenas veria as duas luzes seguintes acesas (marcadas por x
), o que é suficiente para deduzir exclusivamente a terceira posição (apagada):
. .
. o . x
. . o . . o
o o o . => o o o .
o o o o . o x o o . <- the third unlit position
o . . . o o o . . . o o
Seja a(n)
o número máximo de lâmpadas que podem ser removidas sem introduzir ambiguidades.
Exemplo
Com um algoritmo ingênuo, verifiquei valores até um triângulo com o comprimento lateral 7, como mostrado abaixo:
.
. . o
. . o o . o
. . . . . o . o o .
. . . . o o o o o . o o . o .
. . . . o o o o . o o o o o . o . o . o o
. . . o o . o o o o . . o o o . . . o o o . o . o o o
a(2) = 3 a(3) = 4 a(4) = 5 a(5) = 7 a(6) = 9 a(7) = 11
Pontuação
A submissão que calcula a sequência [a(2), a(3), ..., a(n)]
para os maiores n ganhos. Se dois envios tiverem seqüências idênticas, o que foi postado anteriormente vence.
Embora não seja necessário para a apresentação, seria instrutivo para mim se você postar uma construção das matrizes triangluar resultantes, como no exemplo acima.