Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1

Как можно в памяти уместить больше данных ?Большой массив или список маленьких массивов ?

17.07.2012, 12:25. Показов 1842. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сабж выше
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.07.2012, 12:25
Ответы с готовыми решениями:

Уместить как можно больше блоков
Знаем ширину блока, в этот блок необходимо разместить как можно больше дочерних блоков. Ширина дочернего блока не должна быть меньше 170 и...

Запрос данных из БД. Один большой запрос или много маленьких?
Есть основная форма, на которой расположен TreeView, содержащий щас 30 ветвей. По щелчке на ветке открываются дочерние формы, на каждой в...

1 большой сайт или много маленьких
Хочу сделать один большой сайт или множество маленких. для заработка на продаже ссылок и контекстной рекламе. Что посоветуете? Какое...

11
 Аватар для Mиxaил
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
17.07.2012, 12:31
Можно попробовать бинарный файл.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.07.2012, 12:39
Всякий список хранит данные и указатели на них, под указатели расходуется память, и как минимум один указатель должен быть при каждом элементе + ещё 1 на весь список. У тебя элементами будут массивы. Значит месте для данных останется меньше и тем меньше, чем меньше сами массивы.
0
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
17.07.2012, 12:52  [ТС]
Не совсем понял про бинарный файл ,не сталкивался с таким его использованием ,можно подробней ?
***
Если я правильно понимаю ,размер динамического массива ,например , short int ,буде 4 байта для указателя + 2 байта за каждый участок памяти с числом ,верно ?Нужно делать массивы с целевыми данными такой длины ,чтобы на х байт памяти под целевые данные приходилось приемлемое число байт вспомогательной информации .Но мне ,похоже , способ со списком не подходит.

***
Еще про бинарник ,т е я смогу работать с файлом произвольного размера ,ограниченного лишь ресурсами машины ?
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
17.07.2012, 12:56
zek921, расскажи подробнее, что именно ты пытаешься сделать и что не получается. А то непонятно пока, что означает "больше данных" и почему текущее решение (наверняка ты как-то организовал данные, так ведь?) не устраивает?
0
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
17.07.2012, 12:58  [ТС]
для общего развития хочу написать длинную арифметику .С ООООООЧЕНЬ большими числами .
Пока не начинал и только думаю как лучше сделать .
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38179 / 21114 / 4307
Регистрация: 12.02.2012
Сообщений: 34,721
Записей в блоге: 14
17.07.2012, 13:37
Для длинной арифметики рекомендую использовать динамически создаваемые массивы.
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
17.07.2012, 13:45
Цитата Сообщение от zek921 Посмотреть сообщение
для общего развития хочу написать длинную арифметику .С ООООООЧЕНЬ большими числами .
А, ну вот теперь понятно. Согласен с Catstail - нужно использовать динамические массивы, применительно к C++ это vector. Ну, а дальше - обычная поразрядная обработка, как в школе - "в столбик". Сложение/вычитание и сдвиги реализуются влет, умножение/деление немного посложнее.
0
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
17.07.2012, 14:31  [ТС]
массив попробовал .При unsigned long размер массива не будет больше миллиарда .Система счисления миллиард ,макс число большое будет ,но хочу еще больше

Добавлено через 19 минут
и возвращаясь к исходному вопросу ,потеряю ли я в длине числа используя список массивов ?
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
17.07.2012, 14:32
Ну, дык, в чем проблема?

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

Следующий шаг - хранить "число" где-нибудь в Инете на дисковом сервере. А возможно, и не на одном :-) Там размер числа лехко можно сделать в терабайты, петабайты.... и так далее, на сколько фантазии хватит.

Не по теме:

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



Придумай хоть какую-нибудь прикладную задачу, для которой могут понадобиться такие суперогромные числа...
0
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
17.07.2012, 14:41  [ТС]
такие суперогромные числа только для собственного удовольствия и повышения чсв .Где можно почитать про своп ?

Добавлено через 3 минуты
next stage
разделить число на меньшие и отдать их на растерзание сети компьютеров .Но это уже совсем изврат .
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
17.07.2012, 14:42
О "длине числа": да, потеряешь. Накладные расходы на организацию списка массивов составят аж катастрофическую величину - где-то на уровне 0.00001% от длины числа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.07.2012, 14:42
Помогаю со студенческими работами здесь

1 большой запрос или много маленьких в цыкле
Всем привет вопрос возможно дилетантский, но все же: Что лучше 1 запрос, с указанием длинного условия который выдаст список нужных...

Один большой класс или много маленьких?
Здравствуйте. В программе есть N функций, которые необходимо выполнять друг за другом, но в неизвестной заранее последовательности....

Чтовыгоднее один большой сайт или много маленьких
Вот скажите новичку что выгоднее будет предположим один сайт раскрученный под много запросов и 300 посетителей в день, или в той же...

Как в C# можно рабить массив на несколько массивов с сохранением всех данных?
Добрый вечер. Мне необходимо разбить массив на несколько с сохранением всех данных. К примеру в массиве ArrayList содержится 1103...

В какой тип данных можно уместить 25-и значное целочисленное число?
Я пишу на С++ Builder 6


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru