Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2009, 19:30   #1
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию Новый конкурс им. Парсифаля. Задача крайне высокого уровня сложности

На этот раз задача будет намного более сложной и требующей больше "креативности", чем та, которая связана с н-мерными массивами.

Кстати мое решение из той задачи понадобится для решения этой задачи.
Итак, пользователь вводит с клавиатуры число (N). Программа объявляет N-мерный куб (массив н-мерный со сторонами N). Далее все элементы массива инициализируются значениями (char) <= 10 случайным образом.
Итого наш массив займет пространства на N в степени N байтов.
Ваша задача состоит в том, чтобы тот же самый массив (т.е. все его элементы) сохранить использовав на порядки меньше оперативки.

Т.е. чтобы после этого процесса пользователь мог обратиться к любой ячейке Н-мерного массива и она отображалась правильно, но опять же памяти должно уйти на порядки меньше. Предполагается, что пользователь введет N большее 6.

Собственное решение приведу в воскресенье. Потому что считаю что эту задачу полезно решит всем.
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 08.05.2009, 19:34   #2
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Да и еще, победителем окажется тот, кто сможет сжать съедаемую оперативку в максимальное количество раз.
Победитель будет принят в Приорат Сиона.
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 08.05.2009, 19:42   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Далее все элементы массива инициализируются значениями (char) <= 10 случайным образом.
То есть значение каждого элемента от 0 до 10?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 08.05.2009, 19:44   #4
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Да, правильно. Уже есть идеи?
Если код будет писать сложно кому-нибудь - можно алгоритм хотя бы.
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 08.05.2009, 19:49   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Уже есть идеи?
Пока только отголоски. Для начала переделаю свой класс, чтобы просто N-мерный массив создать. Потом займусь сжатием.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 08.05.2009, 19:54   #6
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

А решение этой задачи не может быть прорывом в технологии экономии оперативки для маломощных компов? (я просто в этом не разбираюсь)
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 08.05.2009, 19:56   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Парсифаль, думаю, что это уже придумали до нас
А вообще, посмотрим. Может, вы действительно сделали прорыв и о вас скоро заговорят (правда, не раньше воскресенья)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 08.05.2009, 20:06   #8
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Для желающих можно усложнить задачу (как же я это люблю) и массив будет заполняться не числами от 0 до 10, а до того числа, который ввел пользователь.
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 08.05.2009, 20:13   #9
Pashan
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 89
По умолчанию

Цитата:
победителем окажется тот, кто сможет сжать съедаемую оперативку в максимальное количество раз.
Победителем окажется WinRar

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

Последний раз редактировалось Pashan; 08.05.2009 в 20:18.
Pashan вне форума Ответить с цитированием
Старый 08.05.2009, 20:15   #10
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Нет, я думаю там другой принцип. Он чистую информацию (как массив) не сожмет. Он сожмет сам программу.
Тем более он жн используемую информацию не сжимает. Наоборот он разархивирует ее во время исполнения.
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конкурс им. Парсифаля - н-мерные массивы. Парсифаль Общие вопросы C/C++ 32 08.05.2009 02:06
Отличие высокого от низкого Shevali Помощь студентам 4 31.03.2009 20:01
Новый конкурс на форуме программистов rpy3uH Свободное общение 113 01.03.2009 16:31
Задача по Паскалю. 1 уровень сложности. Сергей1 Помощь студентам 2 19.11.2007 22:45
конкурс программистов ! (первый конкурс) Alar Свободное общение 129 18.03.2007 00:50