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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Tribunal
сообщение 28.02.2006 10:39
Сообщение #2


Бывалый
***

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

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


я не умею архивировать....мне нужно использовать примерно такие способы,которые я описала


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 28.02.2006 14:05
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

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


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

я не умею архивировать....мне нужно использовать примерно такие способы,которые я описала

можно сделать списком - каждый элемент списка будет хранить элемент массива и его индескы. Просто я понимаю задачу так: минимизировать использование памяти компьютера отводимые под такую таблицу. А в ваших способах минимизации использования памяти я не вижу.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 28.02.2006 16:49
Сообщение #4


Гость






Цитата(hiv @ 28.02.2006 14:05) *

можно сделать списком - каждый элемент списка будет хранить элемент массива и его индескы. Просто я понимаю задачу так: минимизировать использование памяти компьютера отводимые под такую таблицу. А в ваших способах минимизации использования памяти я не вижу.

По-моему, задача стоит не совсем о минимуме, а о некотором оптимуме: при достаточно малом потреблении памяти получить достаточно хорошую производительность. Я домаю, что можно изобрести метод, использующий меньше памяти, чем мой (например, развернув двумерный массив в одномерный). Но почему ты думаешь, что я слишком щедро я базарю память? Ведь у меня на каждый непустой элемент матрицы идет память, требующаяся для этого элемента (предположительно, double) плюс размер одного целого числа (2 байта) плюс еще некоторые накладные расходы в размере четырех байт на строку матрицы. Естественно (я не упомянул это, но это подразумевается), память для двух упомянутых массивов берется динамически, поблочно (размер блока я бы положил равным примерно четверти среднего требующегося размера).

При организации простого списка, на каждый элемент тратится:
- размер элемента;
- два целых на индексы;
- адрес списка.
Получается несколько хуже. Хотя, мой метод при его поблочности может дать в определенных случаях и худший результат, но не это главное. Главное - что поиск нужного элемента по списку будет происходить гораздо медленнее.

Не знаю, нужны ли авторы темы все эти тонкости.. Короче, пусть она сама выбирает smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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 16:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"