![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Tribunal |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Пол: Женский Реальное имя: Dasha Репутация: ![]() ![]() ![]() |
У меня появилась задача следующего содержания:
нужно вводить элементы разреженной матрицы и произвести рациональное хранение этих элементов... ну это я предполагаю можно сделать так: CIP: Индекс начала 1-ой строки в массивах PI и YE || Индекс начала 2-ой Строки || ... || Индекс начала N-ой Строки PI: Номер столбца || Номер столбца || Номер столбца || ... || Номер столбца || 0 YE: Значение || Значение || Значение || ... || Значение ИЛИ в массив JA записывать номера столцов,в которых находятся ненулевые эл-ты по порядку; в массив AN записывать собственно значения этих ненулевых значений; а в массив IA записывать номера , с которых начинается описание эл-тов в массивах JA и AN(<---вот это мне не очень понятно=/) но,честно говоря,вся проблема состоит в том,что я не очень представляю,как это должно выглядеть в делфи...в том числе и визуально-на форме=/ поэтому в этом состоит вся проблема...не очень понимаю,как начать далее с двумя такими матрицами нужно производить операции сложения и умножения,а так же производить вывод элемента при запросе в виде указания строки и столбца эл-та. большая просьба помочь=)с делфи пока на вы=( -------------------- irreparabilium felix olivio rerum
|
![]() ![]() |
Tribunal |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Пол: Женский Реальное имя: Dasha Репутация: ![]() ![]() ![]() |
я хочу разобраться с тем,как премножать двет разреженные матрицы.
для начала я хотела бы сделать алгоритм для перемножения матриц, которые заданы довольно простым способом: an,bn-одномерные массивы ненулевых значений разреженных матриц; ia,ib-соотвествующие им строки,так же занесенные в одномерный массив; ja,jb- ---''--- столбцы ---''--- ; k,c-это получившееся кол-во полученных элементов после ввода соотв-но для матриц a и b; так вот,каким алгоритмом предложите воспользоваться? или хотя бы,какие условия нужно задействовать,чтобы производить отбор элементов для произведения; в качестве при мера приведу алгоритм для солжения таких матриц: Код var i,j,x:integer; begin h:=k; for i:=1 to k do begin cn[i]:=an[i]; ic[i]:=ia[i]; jc[i]:=ja[i];end; for i:=1 to c do begin x:=-1; for j:=1 to h do if (ib[i]=ic[j]) and (jb[i]=jc[j]) then x:=j; If x<>-1 then cn[x]:=bn[i]+cn[x] else begin h:=h+1; cn[h]:=bn[i]; ic[h]:=ib[i]; jc[h]:=jb[i];end; end; end; -------------------- irreparabilium felix olivio rerum
|
![]() ![]() |
![]() |
Текстовая версия | 14.07.2025 13:42 |