Цикл - это довольно простая алгебраическая структура. Это кортеж (G +) , где G представляет собой множество , а + является бинарным оператором G × G → G . То есть + берет два элемента из G и возвращает новый элемент. Оператору также необходимо выполнить два свойства
Отмена: Для каждого a и b в G существуют уникальные x и y в G, такие что
a + x = b y + a = b
Идентичность: в G есть такое e , что для каждого a в G
e + a = a a + e = a
Если вы знакомы с концепцией группы, вы можете заметить, что цикл - это просто группа, которая не имеет ассоциативного свойства.
Циклы довольно просты, поэтому людям нравится добавлять больше правил, чтобы сделать новые структуры более интересными. Одной из таких структур является петля Муфанга, которая также удовлетворяет следующим четырем тождествам для x , y и z в 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)
Например, следующая таблица Кэли представляет цикл Муфанга:
0 1 2 3
1 0 3 2
2 3 0 1
3 2 1 0
(Если вы не знакомы, таблица Кэли - это квадратная матрица M, где M i, j равно i + j . Это удобный способ представления бинарных операторов на множестве.)
Мы можем доказать, что идентичность существует довольно легко 0
. Отмена немного сложнее показать, но подход грубой силы дает эту таблицу
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
Где наши элементы являются решениями для
a + x = b = x + a
(Вы можете заметить, что эта таблица идентична нашей таблице Кейли. Я оставлю это в качестве упражнения для читателя, чтобы выяснить, почему это так для этой петли Муфанга)
Теперь нам нужно проверить тождества Муфанга для нашей структуры. Есть два способа сделать это для конкретной структуры. Первый способ - понять, что она ассоциативна и, таким образом, автоматически удовлетворяет критериям, однако в общем случае это не сработает, поэтому мы бы предпочли грубый результат. Здесь есть 3 свободные переменные с потенциалом 4 значения в каждом выражении. Это означает, что мы должны выполнить 7 * 4 3 или 448 вычислений. Я опущу необработанные вычисления, но вот несколько Haskell, которые вы можете использовать, чтобы проверить это .
задача
Учитывая положительное целое число n в качестве входных данных, количество циклов Муфанга, которые имеют порядок n . (порядок группы равен размеру набора)
Это код-гольф, поэтому ответы будут оцениваться в байтах, причем меньшее количество байтов будет лучше.
Контрольные примеры
Вот количество циклов Муфанга для первых 71 входа
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
не так 11
. Я должен был понять это, потому что 11
это простое число.