Примитивный элемент конечного поля является образующей мультипликативной группы поля. Другими словами, alphain F(q)называется примитивным элементом, если он является примитивным q−1корнем единства в F(q). Это означает, что все ненулевые элементы F(q)можно записать как alpha^iдля некоторого (положительного) целого числа i.
Все элементы поля F_{2^k}могут быть записаны как полиномы степени не более k-1с коэффициентами, которые либо 1или 0. Чтобы завершить это, вашему коду также нужно вывести неприводимый многочлен степени, kкоторый определяет поле, которое вы используете.
Задача состоит в том, чтобы написать код, который выводит примитивный элемент F_{2^k}по вашему выбору для каждого k = 1 .. 32в порядке.
Ваш вывод должен просто перечислить kкоэффициенты примитивного элемента в любом формате, который вам нравится, а затем в отдельной строке k+1элементы неприводимого полинома. Пожалуйста, разделите выходы для каждого значения, kесли это возможно.
Ваш код может занять столько времени, сколько вы хотите, но вы должны выполнить его до завершения, прежде чем отправлять свой ответ.
Вы не можете использовать любую встроенную или библиотечную функцию, которая возвращает примитивные элементы конечного поля или проверяет, является ли элемент примитивным.
Пример
Для k = 1единственного примитивного элемента есть 1.
Ибо k = 2у нас есть F_4. 4 элемента, {0, 1, x, x + 1}так что есть два примитивных элемента xи x + 1. Таким образом, код может выводить
1 1
1 1 1
в качестве коэффициентов, например, где вторая строка является неприводимым многочленом, который в данном случае x^2+x+1имеет коэффициенты 1 1 1.