Ce défi est en partie un défi d'algorithmes, en partie un défi d'optimisation et en partie simplement un défi de code le plus rapide.
La matrice AT est entièrement spécifiée par sa première ligne r
et sa première colonne c
. Chaque élément restant de la matrice n'est qu'une copie de l'élément en diagonale vers le haut et vers la gauche. C'est ça M[i,j] = M[i-1,j-1]
. Nous autoriserons des matrices T qui ne sont pas carrées. Nous supposons cependant toujours que le nombre de lignes n'est pas supérieur au nombre de colonnes. Par exemple, considérons la matrice 3 x 5 T suivante.
10111
11011
11101
Nous disons qu'une matrice a la propriété X si elle contient deux ensembles de colonnes non vides avec des indices non identiques qui ont la même somme (vectorielle). La somme vectorielle d'une ou plusieurs colonnes est simplement une somme par élément de leurs colonnes. C'est la somme de deux colonnes ou plus contenant des x
éléments, chacune étant une autre colonne contenant des x
éléments. La somme d'une colonne est trivialement la colonne elle-même.
La matrice ci-dessus a trivialement la propriété X car les première et dernière colonnes sont les mêmes. La matrice d'identité n'a jamais la propriété X.
Si nous supprimons simplement la dernière colonne de la matrice ci-dessus, nous obtenons un exemple qui n'a pas la propriété X et donnerait un score de 4/3.
1011
1101
1110
La tâche
La tâche consiste à écrire du code pour trouver la matrice T ayant le score le plus élevé avec des entrées binaires et qui n'a pas la propriété X. Pour plus de clarté, une matrice avec des entrées binaires a la propriété que chacune de ses entrées est soit 0 soit 1.
But
Votre score sera le nombre de colonnes divisé par le nombre de lignes de votre matrice de meilleur score.
Tie break
Si deux réponses ont le même score, celle soumise en premier l'emporte.
Dans le cas (très) peu probable où quelqu'un trouverait une méthode pour obtenir des scores illimités, la première preuve valable d'une telle solution sera acceptée. Dans le cas encore plus improbable où vous pouvez trouver une preuve d'optimalité d'une matrice finie, j'attribuerai bien sûr également la victoire.
Allusion
Toutes les réponses à la matrice Trouver le score le plus élevé sans propriété X sont valables ici, mais elles ne sont pas optimales. Il existe des matrices T sans propriété X qui ne sont pas cycliques.
Par exemple, il existe une matrice 7 x 12 T sans propriété X mais aucune matrice cyclique de ce type.
Le 21/11 battrait toutes les réponses actuelles de cela et du défi précédent.
Langues et bibliothèques
Vous pouvez utiliser n'importe quelle langue disposant d'un compilateur / interprète / etc disponible gratuitement. pour Linux et toutes les bibliothèques qui sont également disponibles gratuitement pour Linux.
Bonus La première réponse avec un score supérieur à 2 obtient une récompense immédiate de 200 points . Ton Hospel a maintenant atteint cet objectif!
Tableau actuel des leaders
- C ++ . Score 31/15 par Ton Hospel
- Java . Score 36/19 par Peter Taylor
- Haskell . Score 14/8 par alexander-brett