Задать вопрос
@fanihab442

Как запрограммировать построение мультипликативной группы по неприводимому многочлену?

Мне нужно запрограммировать построение мультипликативной группы по неприводимому многочлену, но я не знаю алгоритма, по которому это можно сделать.

Пример входных данных:
2 4
1 0 0 1
Соответствующие выходные данные:
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
0 0 1 1
0 1 1 0
1 1 0 0
1 0 1 1
0 1 0 1
1 0 1 0
0 1 1 1
1 1 1 0
1 1 1 1
1 1 0 1
1 0 0 1
  • Вопрос задан
  • 180 просмотров
Подписаться 1 Средний Комментировать
Ответ пользователя Wataru К ответам на вопрос (2)
wataru
@wataru Куратор тега Математика
Разработчик на С++, экс-олимпиадник.
Научитесь выполнять операции в группе. Перемножение полиномов происходит как обычно, двумя циклами, но надо потом взять по модулю многочлена, образующего группу. Тут надо будет реализовать деление столбиком.

А дальше, чтобы найти мультипликативную группу, придется делать полный перебор. Перебирайте все полиномы (они у вас, видимо, над полем по модулю 2, их 2^n. Можно их перебирать как биты у целого числа). Потом умножайте на текущий полином в цикле, помечая в массиве уже полученные ранее полиномы. Если получили все 2^n элементов - вы нашли нужную группу. Если наткнулись на уже ранее полученный полином раньше времени - текущий кандидат не подходит.
Ответ написан
Комментировать