La distance de Hamming entre deux chaînes de longueur égale est le nombre de positions auxquelles les symboles correspondants sont différents.
Soit Pune chaîne binaire de longueur net Tune chaîne binaire de longueur 2n-1. Nous pouvons calculer les ndistances de Hamming entre Pet chaque nsous-chaîne de longueur Tdans l'ordre de gauche à droite et les mettre dans un tableau (ou une liste).
Exemple de séquence de distance de Hamming
Soit P = 101et T = 01100. La séquence des distances de Hamming que vous obtenez de cette paire est 2,2,1.
Tâche
Pour augmenter à npartir de n=1, considérez toutes les paires possibles de chaînes binaires Pde longueur net Tde longueur 2n-1. Il existe de 2**(n+2n-1)telles paires et donc de nombreuses séquences de distances de Hamming. Cependant, bon nombre de ces séquences seront identiques. La tâche consiste à trouver combien sont distincts pour chacun n.
Votre code doit afficher un nombre par valeur de n.
But
Votre score est le plus élevé natteint par votre code sur ma machine en 5 minutes. Le timing est pour le temps de fonctionnement total, pas le temps juste pour cela n.
Qui gagne
La personne avec le score le plus élevé gagne. Si deux personnes ou plus se retrouvent avec le même score, c'est la première réponse qui l'emporte.
Exemples de réponses
Pour nde 1aux 8réponses optimales sont 2, 9, 48, 297, 2040, 15425, 125232, 1070553.
Langues et bibliothèques
Vous pouvez utiliser toutes les langues et bibliothèques disponibles que vous aimez. Dans la mesure du possible, il serait bon de pouvoir exécuter votre code, veuillez donc inclure une explication complète sur la façon d'exécuter / compiler votre code sous Linux si possible.
Ma machine Les horaires seront exécutés sur ma machine 64 bits. Il s'agit d'une installation Ubuntu standard avec 8 Go de RAM, processeur AMD FX-8350 à huit cœurs et Radeon HD 4250. Cela signifie également que je dois pouvoir exécuter votre code.
Réponses principales
- 11 en C ++ par feersum. 25 secondes.
- 11 en C ++ par Andrew Epstein. 176 secondes.
- 10 en Javascript par Neil. 54 secondes.
- 9 à Haskell par nimi. 4 minutes et 59 secondes.
- 8 en Javascript par fəˈnɛtɪk. 10 secondes.
fastest-codelaisse plus d'espace pour les optimisations grâce aux optimisations au niveau du code et à un bon algorithme. Je pense donc que faster-codec'est mieux que faster-algorithm.