Примітивний елемент кінцевого поля є утворює мультипликативной групи поля. Іншими словами, alpha
в 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
.