Une boucle est une structure algébrique assez simple. Il est un tuple (G, +) où G est un ensemble et + est un opérateur binaire G × G → G . C'est-à-dire + prend deux éléments de G et retourne un nouvel élément. L'opérateur doit également remplir deux propriétés
Annulation: pour chaque a et b dans G, il existe des x et y uniques dans G tels que
a + x = b y + a = b
Identité: il y a un e dans G tel que pour chaque a dans G
e + a = a a + e = a
Si vous connaissez le concept de groupe, vous remarquerez peut-être qu'une boucle n'est qu'un groupe qui n'a pas de propriété associative.
Les boucles sont assez simples, donc les gens aiment ajouter plus de règles pour rendre les nouvelles structures plus intéressantes. Une telle structure est une boucle de Moufang qui est une boucle qui satisfait également les quatre identités suivantes pour tous les x , y et z dans G
z + (x + (z + y)) = ((z + x) + z) + y
((y + z) + x) + z = y + (z + (x + z))
(z + x) + (y + z) = (z + (x + y)) + z
(z + x) + (y + z) = z + ((x + y) + z)
Par exemple, le tableau Cayley suivant représente une boucle de Moufang:
0 1 2 3
1 0 3 2
2 3 0 1
3 2 1 0
(Si vous n'êtes pas familier, une table Cayley est une matrice carrée M où M i, j est égal à i + j . C'est un moyen pratique pour représenter les opérateurs binaires sur un ensemble.)
On peut montrer qu'il y a une identité assez facilement 0
. L'annulation est un peu plus difficile à montrer, mais une approche par force brute donne ce tableau
b a → 0 1 2 3
↓
0 0 1 2 3
1 1 0 3 2
2 2 3 0 1
3 3 2 1 0
Où nos éléments sont les solutions pour
a + x = b = x + a
(Vous remarquerez peut-être que ce tableau est identique à notre tableau Cayley. Je vais laisser un exercice au lecteur pour comprendre pourquoi c'est le cas pour cette boucle Moufang)
Maintenant, nous devons vérifier les identités Moufang pour notre structure. Il y a deux façons de le faire pour la structure particulière, la première consiste à réaliser qu'elle est associative et remplit donc automatiquement les critères, mais cela ne fonctionnera pas en général, nous préférons donc le résultat brutalement. Il y a 3 variables libres chacune avec un potentiel de 4 valeurs dans chaque expression ici. Cela signifie que nous devons effectuer 7 * 4 3 ou 448 calculs. Je laisserai de côté les calculs bruts mais voici quelques Haskell que vous pouvez utiliser pour vérifier cela .
Tâche
Étant donné un entier positif n comme sortie d'entrée, le nombre de boucles de Moufang qui ont l'ordre n . (l'ordre d'un groupe est la taille de l'ensemble)
Il s'agit de code-golf, donc les réponses seront notées en octets, moins d'octets seront meilleurs.
Cas de test
Voici le nombre de boucles Moufang pour les 71 premières entrées
1,1,1,2,1,2,1,5,2,2,1,6,1,2,1,19,1,5,1,6,2,2,1,20,2,2,5,5,1,4,1,122,1,2,1,18,1,2,2,19,1,7,1,5,2,2,1,103,2,5,1,6,1,17,2,17,2,2,1,18,1,2,4,4529,1,4,1,6,1,4,1
12
pas le cas 11
. J'aurais dû m'en rendre compte parce que 11
c'est le nombre premier.