IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Разреженные матрицы
Tribunal
сообщение 28.02.2006 10:10
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


У меня появилась задача следующего содержания:

нужно вводить элементы разреженной матрицы и
произвести рациональное хранение этих элементов...

ну это я предполагаю можно сделать так:
CIP: Индекс начала 1-ой строки в массивах PI и YE || Индекс начала 2-ой Строки || ... || Индекс начала N-ой Строки
PI: Номер столбца || Номер столбца || Номер столбца || ... || Номер столбца || 0
YE: Значение || Значение || Значение || ... || Значение

ИЛИ

в массив JA записывать номера столцов,в которых находятся ненулевые эл-ты по порядку;
в массив AN записывать собственно значения этих ненулевых значений;
а в массив IA записывать номера , с которых начинается описание эл-тов в массивах JA и AN(<---вот это мне не очень понятно=/)

но,честно говоря,вся проблема состоит в том,что я не очень представляю,как это должно
выглядеть в делфи...в том числе и визуально-на форме=/

поэтому в этом состоит вся проблема...не очень понимаю,как начать

далее с двумя такими матрицами нужно производить операции сложения и умножения,а так же производить вывод элемента при запросе в виде указания строки и столбца эл-та.

большая просьба помочь=)с делфи пока на вы=(


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 28.02.2006 11:55
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Tribunal @ 28.02.2006 10:10) *

ну это я предполагаю можно сделать так:
CIP: Индекс начала 1-ой строки в массивах PI и YE || Индекс начала 2-ой Строки || ... || Индекс начала N-ой Строки
PI: Номер столбца || Номер столбца || Номер столбца || ... || Номер столбца || 0
YE: Значение || Значение || Значение || ... || Значение

ИЛИ

в массив JA записывать номера столцов,в которых находятся ненулевые эл-ты по порядку;
в массив AN записывать собственно значения этих ненулевых значений;
а в массив IA записывать номера , с которых начинается описание эл-тов в массивах JA и AN(<---вот это мне не очень понятно=/)

но,честно говоря,вся проблема состоит в том,что я не очень представляю,как это должно
выглядеть в делфи...в том числе и визуально-на форме=/

поэтому в этом состоит вся проблема...не очень понимаю,как начать
далее с двумя такими матрицами нужно производить операции сложения и умножения,а так же производить вывод элемента при запросе в виде указания строки и столбца эл-та.

большая просьба помочь=)с делфи пока на вы=(

Я честно пытался разобраться с твоими способами, но ни один не понял до конца. Предлагаю свой - простой и ясный (как мне кажется smile.gif ).

P - массив (из integer) координат позиций, где стоят отличные от нуля элементы (от слова Position).
Устроен так:
Номер столбца С1 (от слова column)
номер строки (то есть элемента в этом столбце) R11 (от row)
номер строки R12
номер строки R13
...........
Ноль (разделитель)
Номер столбца C2
номер строки R21
номер строки R22
........
Ноль
Номер столбца
номер строки
номер строки
........
Ноль
Ноль (в конце два нуля)

Это можно записать проще в строчку:
CRRRRR..R0CRR...R0CRR..R0C.........CRR..R00

И массив самих значений (того типа, который нужен):
A(C1,R11)
A(C1,R12)
....
A(C2,R21)
....
A(Cn,Rnm)

Чтобы достать значение i,j , проходимся по Р, считая номер. Если C=i и R=j (в секции этого C) присутствует - вынимаем значение из А по номеру.

Для ускорения доступа можно иметь маленький массив из позиций С в массиве Р (но это факультативно).

Если тебе мой способ не понравился - скажи, попробую еще раз разобраться в твоих.
Далее, тебе пока не нужно лезть в Дельфи и формы. Это потом приложишь. Пока сделай прогу на паскале, которая осуществляет сжатие матрицы и доступ к ней. Этот код потом вставишь в Дельфи. Все надо делать по очереди.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Tribunal   Разреженные матрицы   28.02.2006 10:10
hiv   Может проще заархивировать твою матрицу, а перед и...   28.02.2006 10:31
Tribunal   я не умею архивировать....мне нужно использовать п...   28.02.2006 10:39
hiv   я не умею архивировать....мне нужно использовать ...   28.02.2006 14:05
Гость   можно сделать списком - каждый элемент списка буд...   28.02.2006 16:49
lapp   ну это я предполагаю можно сделать так: CIP: Инде...   28.02.2006 11:55
volvo   Tribunal, твой метод, случаем, не отсюда: Представ...   28.02.2006 15:32
lapp   Последнее сообщение - мое. Извиняюсь. Никак не мо...   28.02.2006 16:53
Tribunal   ну вообще-то первый метод предложил преподаватель ...   1.03.2006 6:04
lapp   ну вообще-то первый метод предложил преподаватель...   1.03.2006 7:08
Atos   В Дельфи уже есть списки - см. класс TList А от...   1.03.2006 7:17
Tribunal   lapp, а вот если пользоваться твоим способом...(че...   1.03.2006 7:37
Tribunal   или объясните,пожалуйста,мне поподробнее,по какому...   1.03.2006 7:52
volvo   Tribunal, вопросы задаются, чтобы на них отвечали,...   1.03.2006 12:10
Tribunal   я сказала,что этот алгоритм мне предложил преподав...   1.03.2006 12:27
Tribunal   я хочу разобраться с тем,как премножать двет разре...   14.03.2006 9:24


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.07.2025 21:04
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"