Теоретический материал
Некоторые обозначения и определения
Матрицей размера n×m называется прямоугольная таблица n×m, составленная из чисел.
Обычно матрицы обозначают заглавными латинскими буквами. Элемент i-й строки j-го столбца матрицы A обозначают через aij или a[i, j] (соответствующая маленькая латинская буква с индексами).
Произведением двух матриц
и
называется матрица такая
, что
В этом случае пишут: C = AB.
D в степени k (Dk), при условии, что D -- квадратная (т. е. n = m) определяется следующим образом:
- D0 = E (единичная матрица), где
E =На диагонали у нее стоят единицы, в остальных клетках -- нули. Она не зря называется единичной -- при умножении на нее матрица не изменяется: AE = EA = A.
.
- Di = Di - 1D, i > 0.
В приводимом коде будет использоваться функция bit(x,i), возвращающая единицу или ноль -- i-й бит в двоичной записи числа x (нумерация битов с нуля).
// возвращает i-й бит числа x, нумерация с нуля function bit(x, i : integer) : integer; begin if (i < 0) then bit := 0 else if (x and (1 shl i) = 0) then bit := 0 else bit := 1; end;