Esse desafio é parcialmente um desafio de algoritmos, parcialmente um desafio de otimização e parcialmente um desafio de código mais rápido.
A matriz AT é totalmente especificada por sua primeira linha r
e primeira coluna c
. Cada elemento restante da matriz é apenas uma cópia do elemento que está na diagonal para cima e para a esquerda. Essa é M[i,j] = M[i-1,j-1]
. Permitiremos matrizes T que não são quadradas. No entanto, sempre assumimos que o número de linhas não passa do número de colunas. Por exemplo, considere a seguinte matriz de 3 por 5 T.
10111
11011
11101
Dizemos que uma matriz tem propriedade X se contiver dois conjuntos de colunas não vazios com índices não idênticos que tenham a mesma soma (vetor). A soma vetorial de uma ou mais colunas é simplesmente um somatório elemento-elemento de suas colunas. Essa é a soma de duas ou mais colunas contendo x
elementos, cada uma com outra coluna contendo x
elementos. A soma de uma coluna é trivialmente a própria coluna.
A matriz acima trivialmente possui a propriedade X, pois a primeira e a última coluna são as mesmas. A matriz de identidade nunca tem propriedade X.
Se removermos a última coluna da matriz acima, obteremos um exemplo que não possui a propriedade X e daria uma pontuação de 4/3.
1011
1101
1110
A tarefa
A tarefa é escrever código para encontrar a matriz T de maior pontuação com entradas binárias e que não possui a propriedade X. Para maior clareza, uma matriz com entradas binárias possui a propriedade de que cada uma de suas entradas seja 0 ou 1.
Ponto
Sua pontuação serão as colunas numéricas divididas pelo número de linhas em sua matriz de melhor pontuação.
Desempate
Se duas respostas tiverem a mesma pontuação, a primeira submetida vence.
No caso (muito) improvável de alguém encontrar um método para obter pontuações ilimitadas, a primeira prova válida de tal solução será aceita. No caso ainda mais improvável de encontrar uma prova de otimização de uma matriz finita, é claro que também premiaremos a vitória.
Sugestão
Todas as respostas em Encontrar matriz de pontuação mais alta sem a propriedade X são válidas aqui, mas não são ideais. Existem matrizes T sem propriedade X que não são cíclicas.
Por exemplo, existe uma matriz 7 por 12 T sem propriedade X, mas não existe uma matriz cíclica.
O 21/11 superaria todas as respostas atuais deste e do desafio anterior.
Línguas e bibliotecas
Você pode usar qualquer idioma que tenha um compilador / intérprete disponível gratuitamente / etc. para Linux e quaisquer bibliotecas que também estão disponíveis gratuitamente para Linux.
Bônus A primeira resposta com uma pontuação maior que 2 recebe um prêmio imediato de recompensa de 200 pontos . Ton Hospel já conseguiu isso!
Quadro de líderes atual
- C ++ . Pontuação 31/15 de Ton Hospel
- Java . Pontuação 36/19 de Peter Taylor
- Haskell . Pontuação 14/8 de alexander-brett