Помощь - Поиск - Пользователи - Календарь
Полная версия: Функии и процедуры
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
_Hanter_
Нехай задана квадратна матриця порядка m та натуральне число n. Треба знайти Аn. Використати алгоритм: якщо n=2k, то Аn= (А2)k. Якщо n=2k+1, то Аn= (А2)kА. Для k далі застосовують той же алгоритм.
Rian
я не очень понимаю А- это матрица? нужно найти матрицу умноженную на число? а кчему формулы и "к"
это алгоритм чего?

ЗЫ ты хотябы не просто скопипасть задание, хоть немного перефразируй как ты понимаешь
_Hanter_
Да! Это матрица в степени n. Но еще нужно использовать алгоритм …
Rian
Цитата(_Hanter_ @ 4.11.2011 11:55) *

Да! Это матрица в степени n. Но еще нужно использовать алгоритм …

где написано что матрицу нужно возводить в степень? зачем?

и например n=2k... и т.д. что это? что такое k?
нафига оно надо то? к чему алгоритм применять?...
IUnknown
Цитата
где написано что матрицу нужно возводить в степень? зачем?

Цитата
нафига оно надо то? к чему алгоритм применять?...
Перевожу:

Если n=2k (в смысле, четное), то An = A2k. Если же n = 2k + 1 (нечетное), то An = A2k*A ... Далее, для k использовать тот же алгоритм.

Это просто рекурсивный алгоритм возведения в степень. Единственное, чего не хватает, чтобы реализовать его на Паскале - это граничных условий для рекурсии: что делать, когда n = 0, и когда n = 1 (в этом случае уже не воспользуешься вышеописанными правилами, потому что тогда рекурсия будет вечной, я бы предложил поведение, аналогичное возведению в степень обычных чисел: в случае n = 0 A0 = E /единичной матрице, аналог 1-цы при умножении чисел/, а A1 = A /исходной матрице/, что логично...)

Остается только реализовать процедуру перемножения матриц, основанную на ней же процедуру возведения матрицы в квадрат, и, собственно, работающую по описанному алгоритму процедуру возведения матрицы в степень n... Все просто...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.