алгоритм Штрассена для любого входа - PullRequest
2 голосов
/ 02 апреля 2011

Как мы можем изменить алгоритм Штрассена , чтобы он работал для матрицы любого размера (например, для n = 5)?

1 Ответ

3 голосов
/ 02 апреля 2011

Все, что вам нужно сделать, - это заполнить матрицы строками и столбцами, равными 0, до тех пор, пока они не станут квадратными матрицами, размер которых равен степени 2. Или, говоря по-другому:

Поместите матрицы для умножения в верхние левые углы двух 2 ^ n x 2 ^ n матриц. Установите для всех неиспользуемых элементов значение 0. Затем просто запустите алгоритм, и нужный результат будет в верхнем левом углу матрицы результатов.

...