Алгоритм BA (Berlecamp’s Algorithm)
Вход: Нормированный, свободный от квадратов полином
Выход: Неприводимые над
Описание реализации:
2. Триангуляция этой матрицы. Привести матрицу Q к треугольному виду, вычислив её ранг n-r и найдя нуль-пространство (т.е. его базис
3. Вычисление сомножителей. Пусть
На шаге 2 этого алгоритма матрица матрица Q приводится к треугольному виду, затрачивается время
Пример. Разложим над GF(13) полином
Решение. Вместо данного полинома рассмотрим нормированный эквивалентный полином
Для начала вычислим обратные элементы ненулевым элементам GF(13) (1,…,12). Это соответственно будут (1,7,9,10,8,11,2,5,3,4,6,12).
Первая строка матрицы Q [4x4] всегда представляет собой (1,0,0,0), соответствуя полиному
Пусть
Эти формулы объясняют вычисление
| | | | |
0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 1 | 0 | 0 | 0 |
4 | 9 | 12 | 11 | 5 |
5 | 2 | 2 | 0 | 6 |
6 | 7 | 11 | 2 | 10 |
7 | 9 | 8 | 9 | 9 |
8 | 11 | 0 | 4 | 6 |
9 | 8 | 6 | 9 | 3 |
10 | 0 | 2 | 0 | 1 |
11 | 2 | 0 | 1 | 0 |
12 | 5 | 12 | 9 | 10 |
13 | 5 | 4 | 0 | 12 |
Нетрудно видеть вторую строку матрицы Q: (12,0,4,5). Аналогично строим для k=26,39 и получаем матрицу
Теперь нужно находить нуль-пространство матрицы Q-I. На основании эквивалентных преобразований матрицы составляется следующий алгоритм NS (Null-Space algorithm):
Вход: Матрица размера n
Выход: Линейно независимые вектора
Реализация:
2. Для h от 0 до n-1 : если найдётся столбец с номером h и
j-тый столбец матрицы M умножаем на
если
если
в противном случае.
При
Второй элемент в первом столбце 12 – означает