![]() |
Прежде чем задать вопрос, смотрите 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 Репутация: ![]() ![]() ![]() |
я не умею архивировать....мне нужно использовать примерно такие способы,которые я описала
-------------------- irreparabilium felix olivio rerum
|
hiv |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
я не умею архивировать....мне нужно использовать примерно такие способы,которые я описала можно сделать списком - каждый элемент списка будет хранить элемент массива и его индескы. Просто я понимаю задачу так: минимизировать использование памяти компьютера отводимые под такую таблицу. А в ваших способах минимизации использования памяти я не вижу. -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Гость |
![]()
Сообщение
#4
|
Гость ![]() |
можно сделать списком - каждый элемент списка будет хранить элемент массива и его индескы. Просто я понимаю задачу так: минимизировать использование памяти компьютера отводимые под такую таблицу. А в ваших способах минимизации использования памяти я не вижу. По-моему, задача стоит не совсем о минимуме, а о некотором оптимуме: при достаточно малом потреблении памяти получить достаточно хорошую производительность. Я домаю, что можно изобрести метод, использующий меньше памяти, чем мой (например, развернув двумерный массив в одномерный). Но почему ты думаешь, что я слишком щедро я базарю память? Ведь у меня на каждый непустой элемент матрицы идет память, требующаяся для этого элемента (предположительно, double) плюс размер одного целого числа (2 байта) плюс еще некоторые накладные расходы в размере четырех байт на строку матрицы. Естественно (я не упомянул это, но это подразумевается), память для двух упомянутых массивов берется динамически, поблочно (размер блока я бы положил равным примерно четверти среднего требующегося размера). При организации простого списка, на каждый элемент тратится: - размер элемента; - два целых на индексы; - адрес списка. Получается несколько хуже. Хотя, мой метод при его поблочности может дать в определенных случаях и худший результат, но не это главное. Главное - что поиск нужного элемента по списку будет происходить гораздо медленнее. Не знаю, нужны ли авторы темы все эти тонкости.. Короче, пусть она сама выбирает ![]() |
![]() ![]() |
![]() |
Текстовая версия | 14.07.2025 16:30 |