La tâche consiste à calculer OEIS A005434 le plus rapidement possible.
Considérons une chaîne binaire Sde longueur n. L'indexation de 1, nous pouvons déterminer si S[1..i+1]correspond S[n-i..n]exactement à tous idans l'ordre de 0à n-1. Par exemple,
S = 01010
donne
[Y, N, Y, N, Y].
En effet, 0correspond 0, 01ne correspond pas 10, 010correspond 010, 0101ne correspond pas 1010  et correspond finalement à 01010lui-même.
Définissez f(n)comme le nombre de tableaux distincts de Ys et Ns que l'on obtient lors de l'itération sur toutes les 2^ndifférentes chaînes Sde bits possibles de longueur n.
L'observateur remarquera que cette question est une variante plus simple d' une autre question récente . Cependant, je m'attends à ce que des astuces intelligentes puissent rendre cela beaucoup plus rapide et plus facile.
Tâche
Pour augmenter à npartir de 1, votre code devrait sortir n, f(n).
Exemples de réponses
Pour n = 1..24, les bonnes réponses sont:
1, 2, 3, 4, 6, 8, 10, 13, 17, 21, 27, 30, 37, 47, 57, 62, 75, 87, 102, 116, 135, 155, 180, 194
Notation
Votre code doit répéter n = 1la réponse de chacun nà son tour. Je chronométrerai la course entière, en la tuant après deux minutes.  
Votre score est le plus élevé que nvous ayez atteint pendant cette période.
En cas d'égalité, la première réponse l'emporte.
Où mon code sera-t-il testé?
Je vais exécuter votre code sous Virtualbox dans une machine virtuelle invitée Lubuntu (sur mon hôte Windows 7).
Mon ordinateur portable a 8 Go de RAM et un processeur Intel i7 5600U@2,6 GHz (Broadwell) avec 2 cœurs et 4 threads. Le jeu d'instructions comprend SSE4.2, AVX, AVX2, FMA3 et TSX.
Entrées principales par langue
- n = 599 à Rust bu Anders Kaseorg.
 - n = 30 en C par Grimy. La version parallèle passe à 32 lorsqu'elle est exécutée en natif dans cygwin.