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

> ВНИМАНИЕ!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

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


Бывалый
***

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

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


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

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

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

ИЛИ

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

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

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

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

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


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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 14:10
hiv   Может проще заархивировать твою матрицу, а перед и…   28.02.2006 14:31
Tribunal   я не умею архивировать....мне нужно использовать п…   28.02.2006 14:39
hiv   я не умею архивировать....мне нужно использовать …   28.02.2006 18:05
Гость   можно сделать списком - каждый элемент списка буд…   28.02.2006 20:49
lapp   ну это я предполагаю можно сделать так: CIP: Инде…   28.02.2006 15:55
volvo   Tribunal, твой метод, случаем, не отсюда: Представ…   28.02.2006 19:32
lapp   Последнее сообщение - мое. Извиняюсь. Никак не мо…   28.02.2006 20:53
Tribunal   ну вообще-то первый метод предложил преподаватель …   1.03.2006 10:04
lapp   ну вообще-то первый метод предложил преподаватель…   1.03.2006 11:08
Atos   В Дельфи уже есть списки - см. класс TList А от…   1.03.2006 11:17
Tribunal   lapp, а вот если пользоваться твоим способом...(че…   1.03.2006 11:37
Tribunal   или объясните,пожалуйста,мне поподробнее,по какому…   1.03.2006 11:52
volvo   Tribunal, вопросы задаются, чтобы на них отвечали,…   1.03.2006 16:10
Tribunal   я сказала,что этот алгоритм мне предложил преподав…   1.03.2006 16:27
Tribunal   я хочу разобраться с тем,как премножать двет разре…   14.03.2006 13:24


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

 





- Текстовая версия 11.09.2025 7:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name