|
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 6
|
|
Экономия памяти26.03.2018, 20:55. Показов 2250. Ответов 20
Метки нет (Все метки)
Здравствуйте, уважаемые программисты!
Как разместить информацию о числах из массива, используя как можно меньше памяти?
0
|
|
| 26.03.2018, 20:55 | |
|
Ответы с готовыми решениями:
20
Экономия памяти
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 26.03.2018, 23:24 | |
|
Подробнее опишите проблему.
0
|
|
|
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
|
|
| 27.03.2018, 04:58 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 6
|
|
| 27.03.2018, 05:38 [ТС] | |
|
Задан упорядоченный массив целых чисел длины N>>1000. Значения элементов массива находятся в числовом интервале [0, 17].
Нужно написать функцию, которая размещает информацию о числах из массива, используя как можно меньше памяти.
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 27.03.2018, 12:15 | |
|
olivia11, что такое >> ?
0
|
|
|
|
|
| 27.03.2018, 12:45 | |
|
QuakerRUS, много больше, блин! Что непонятного?
А по теме Сожми по хаффману.
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 27.03.2018, 12:50 | |
|
Если массив упорядочен, то его можно представить массивом целых x[18]
x[0] - Количество чисел равных 0 x[1] - Количество чисел равных 1 и так далее до 17 ....
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 27.03.2018, 13:00 | |
|
Kuzia domovenok, у меня было подозрение, но в C++ этот знак используется для других целей, поэтому решил уточнить.
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 6
|
|
| 27.03.2018, 13:59 [ТС] | |
|
Я не совсем поняла, как это сделать, если заранее количество чисел неизвестно.
Просто, мне кажется, такая упаковка данных займёт куда больше памяти (целых 18 массивов), вместо 1 динамического.
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,920
|
||||||
| 27.03.2018, 14:27 | ||||||
|
Байт, это не сохранит порядок
olivia11, мы не знаем какую информацию вы хотите потом из сжатого массива получить. А то можно просто упаковать в структуры
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 6
|
|
| 27.03.2018, 14:31 [ТС] | |
|
Потом мне нужно будет распаковать данные из массива, то есть т.е. по информации, полученной в этом задании, восстанавить исходное состояние массива.
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 27.03.2018, 14:34 | |
|
COKPOWEHEU, только занимать в памяти будет такая структура число байтов, равное разрядности int. Надо тогда уж 10 значений по 5 бит использовать при 32-разрядном int.
Немного оптимальнее по размеру в восемнадцатеричной системе хранить данные в блоках по 36 байт (при 32-разрядном int), но их будет сложнее извлекать и записывать, чем используя битовые поля.
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,920
|
||||||
| 27.03.2018, 15:00 | ||||||
0
|
||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||
| 27.03.2018, 15:40 | |||
|
Вот задание Упаковывается по моему предложению он так: 3 2 0 1 1 2 0 0 0 ... 0 2 Восстановить исходный массив не составит труда 3 нолика, 2 единички, 1 тройку ... Может быть условие надо читать как-то иначе, но мне на это ума не хватает
2
|
|||
| 27.03.2018, 15:52 | |
|
Не по теме: :D Байт оказался самым внимательным из нас. А мы тут уже почти ракету построили, а надо было молоток.
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||||||
| 27.03.2018, 15:59 | ||||||
|
Тут нужно применить подход из sparse matrix в scipy.
Кстати, такой упаковкой мы ещё добились константной вставки в массив!
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 6
|
|
| 27.03.2018, 16:05 [ТС] | |
|
Извините, я не понимаю, как такая упаковка займёт меньше места.. Ведь так получается целых 18 массивов, вместо одного динамического.
Добавлено через 52 секунды А можно где-то подробнее об этом почитать? Не совсем пока понимаю, что тут у вас происходит.
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 27.03.2018, 16:05 | |
|
olivia11, у вас упорядоченный массив. Вам нужен один массив со счетчиками на 18 элементов. Смотрите сообщение от Байт.
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 27.03.2018, 16:13 | ||
|
Посмотрите внимательно на пост 14. Там приведен правильный пример массива? Если нет, то вы неправильно сформулировали задачу.
0
|
||
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|||||||
| 27.03.2018, 16:16 | |||||||
|
И даже более навороченный вариант:
0
|
|||||||
| 27.03.2018, 16:16 | |
|
Помогаю со студенческими работами здесь
20
Экономия памяти или борьба с точками. (что-то типа массива ссылок хотелось бы иметь) Экономия по времени Экономия трафика при передачи последовательности изображений в сети за счет эффективного кодирования Выделить в памяти 1024 ячейки по 8 байт и вывести их адреса(МИНИ менеджер памяти)) Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|