Il s'agit d'un suivi des tableaux de nombre qui créent des ensembles uniques . La différence significative est la définition de l'unicité.
Considérez un tableau A
de longueur n
. Le tableau ne contient que des entiers positifs. Par exemple A = (1,1,2,2)
. Définissons f(A)
comme l'ensemble des sommes de tous les sous-réseaux contigus non vides de A
. Dans ce cas f(A) = {1,2,3,4,5,6}
. Les étapes de production f(A)
sont les suivantes:
Les sous-réseaux de A
sont (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
. Leurs sommes respectives sont 1,1,2,2,2,3,4,4,5,6
. L'ensemble que vous obtenez de cette liste est donc {1,2,3,4,5,6}
.
Nous appelons un tableau A
unique s'il n'y a pas d'autre tableau B
de la même longueur tel que f(A) = f(B)
, à l'exception du tableau A
inversé. Par exemple, f((1,2,3)) = f((3,2,1)) = {1,2,3,5,6}
mais aucun autre tableau de longueur 3
ne produit le même ensemble de sommes.
Tâche
La tâche, pour une donnée n
et s
est de compter le nombre de tableaux uniques de cette longueur. Vous pouvez supposer que s
c'est entre 1
et 9
. Il vous suffit de compter les tableaux dont les éléments sont soit un entier donné, s
soit s+1
. Par exemple, si s=1
les tableaux que vous comptez contiennent uniquement 1
et 2
. Cependant, la définition de l'unicité s'applique à tout autre tableau de même longueur. Un exemple concret [1, 2, 2, 2]
n'est pas unique car il donne le même ensemble de sommes que [1, 1, 2, 3]
.
Vous devez compter l'inverse d'un tableau ainsi que le tableau lui-même (tant que le tableau n'est pas un palindrome bien sûr).
Exemples
s = 1
, les réponses pour n = 2,3,4,5,6,7,8,9 sont:
4, 3, 3, 4, 4, 5, 5, 6
Pour s = 1
, les tableaux uniques de longueur 4 sont
(1, 1, 1, 1)
(2, 1, 1, 2)
(2, 2, 2, 2)
s = 2
, les réponses pour n = 2,3,4,5,6,7,8,9 sont:
4, 8, 16, 32, 46, 69, 121, 177
Un exemple d'un tableau qui n'est pas unique avec s = 2
est:
(3, 2, 2, 3, 3, 3).
Cela a le même ensemble de sommes que: (3, 2, 2, 2, 4, 3)
et (3, 2, 2, 4, 2, 3)
.
s = 8
, les réponses pour n = 2,3,4,5,6,7,8,9 sont:
4, 8, 16, 32, 64, 120, 244, 472
But
Pour une donnée n
, votre code devrait afficher la réponse pour toutes les valeurs de s
à 1
à 9
. Votre score est la valeur la plus élevée n
pour laquelle cela se termine en une minute.
Essai
Je devrai exécuter votre code sur ma machine Ubuntu, veuillez donc inclure des instructions aussi détaillées que possible sur la façon de compiler et d'exécuter votre code.
Classement
- n = 13 par Christian Sievers à Haskell (42 secondes)
s
? Qu'est-ce que cela représente?