Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/26: Рейтинг темы: голосов - 26, средняя оценка - 4.96
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282

Есть матрица из [100000][100000] как лучше ее представить в голове компьютера)

02.07.2013, 16:29. Показов 6327. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день. Решил коллективно подумать))) есть матрица из [100000][100000] в ней у меня значения 0 или 1
я представил её как char матрицу допустим если 0 это А если 1 это В занимает она в памяти 10 гигов, как сделать более компактней. Ещё осложняет ситуацию что мне к этим значениям нужно обращаться как [x][x]. Может как то можно сделать в битовом представлении такую матрицу и сжать до 8 раз или более? Кто что подскажет? пожалуйста выскажитесь по этому поводу.

Добавлено через 14 минут
Есть ещё мысль создать таблицу всех вариантов типа
[0] = "AAAAAAAAAAAAAAAAAAAA"
[1] = "AAAAAAAAAAAAAAAAAAAB"
....
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.07.2013, 16:29
Ответы с готовыми решениями:

Какова конфигурация РС лучше (до 100000 рублей)?
Как лучше собрать ПК за 100000 рублей? Вот моя предполагаемая конфигурация (не влезает в пределы 100000 рублей из-за SSD). Я пока...

Оцените, пожалуйста, конфигурацию компьютера (до 100000 рублей)
Здравствуйте, Город: Санкт-Петербург Магазин: "КЕЙ" (http://key.ru/) Цели: одновременная работа с несколькими программами (например,...

Отгадывание числа от 0 до 100000
Добрый день! Помогите пожалуйста поправить код, для тех, кто знает язык, наверное, сразу будут видны ошибки. скажу сразу, язык знаю...

45
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
02.07.2013, 18:20  [ТС]
Студворк — интернет-сервис помощи студентам
так
vector< vector< bool > > verified( 1000000, vector<bool>( 1000000, false ) );
софтина конечно падает

Добавлено через 1 минуту
Имя модуля с ошибкой: MSVCR110.dll

Добавлено через 5 минут
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


Спасибо не булькает...+1 жать не умеем?

чё там у Вас не булькает ?)

Добавлено через 5 минут
так то в класс к объекту запихнуть
vector< bool > verified( 100000000, false );
и всё будет отлично, только как они это сделали в векторе теперь интересно
0
49 / 23 / 3
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
02.07.2013, 19:44
Здесь явно напрашивается bool.
Bool - тип данных, который может принимать два возможных значения, иногда называемых правдой - true(в вашем случае 1) и ложью -false( соответственно 0).
И пишешь свой массив, где каждая ячейка - это mass[i][j] = true или mass[i][j] = false
0
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
02.07.2013, 20:12
опишите конкретно задачу. готов поспорить, что хранение такого объема данных здесь излишне.
0
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
02.07.2013, 20:45  [ТС]
Ребята всё задача решена, конкретно была задача сделать компактней массив 01010, всем спасибо.

Добавлено через 34 секунды
Цитата Сообщение от salam Посмотреть сообщение
опишите конкретно задачу. готов поспорить, что хранение такого объема данных здесь излишне.
задача была представить массив [100000][100000] как можно компактней в памяти.

Добавлено через 1 минуту
Цитата Сообщение от soican Посмотреть сообщение
Здесь явно напрашивается bool.
Bool - тип данных, который может принимать два возможных значения, иногда называемых правдой - true(в вашем случае 1) и ложью -false( соответственно 0).
И пишешь свой массив, где каждая ячейка - это mass[i][j] = true или mass[i][j] = false
проще прикрепить к каждому объекту по массиву в нужную длину и будет всё работать и занимать мизер по сравнению с предыдущим вариантом.
0
Заблокирован
02.07.2013, 23:20
Вообще - если некритично время заполнения проще взять свой класс с базовым не сжатием, а malloc'ом, у него memmap будет массив в битовом виде как минималка, по ней проверять заполненность, если 0 - возвращаем 0 на гет метод, если не 0 - значение, но это достаточный бред во ВСЕХ видах если элемент массива - 8 бит, оверхед превысит это дело.

Аналогично полный бред брать boolean - он будет минимум байт, а может и весь регистр битности приложения в зависимости от опций компилятора.
0
 Аватар для Ternsip
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
03.07.2013, 00:04
статический массив bool-ей будет занимать по байту на ячейку
vector bool-ей сжимает все восьмёрки ячеек до 1 байта
vector <vector <bool> > из 100000x100000
посчитаем :
10^5 * 10^5 = 10^10
(10^10 / 8 * 1024^3) Гигабайт = 1,16415321826934814453125 GB
И никакие не 10 ГБ
0
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
03.07.2013, 00:10  [ТС]
Цитата Сообщение от Dr_Quake Посмотреть сообщение
Вообще - если некритично время заполнения проще взять свой класс с базовым не сжатием, а malloc'ом, у него memmap будет массив в битовом виде как минималка, по ней проверять заполненность, если 0 - возвращаем 0 на гет метод, если не 0 - значение, но это достаточный бред во ВСЕХ видах если элемент массива - 8 бит, оверхед превысит это дело.

Аналогично полный бред брать boolean - он будет минимум байт, а может и весь регистр битности приложения в зависимости от опций компилятора.
Это в памяти vector< bool > verified( 100000000, false ); должно занимать по вашему 100 мегабайт? но ребята кто делал stl сделали что если правильно как до этого уважаемый форумчанин сказал использовать vector+bool то всё будет ужато в 8 раз до битовых значений, очень кстати супер получилось, вместо 12 гигов в памяти теперь занимает где то 1.25 гига

Добавлено через 3 минуты
Ребята я уже всё проверил и получилось "то что доктор прописал" ))))
0
Заблокирован
03.07.2013, 01:02
Цитата Сообщение от Ternsip Посмотреть сообщение
статический массив bool-ей будет занимать по байту на ячейку
vector bool-ей сжимает все восьмёрки ячеек до 1 байта
vector <vector <bool> > из 100000x100000
посчитаем :
10^5 * 10^5 = 10^10
(10^10 / 8 * 1024^3) Гигабайт = 1,16415321826934814453125 GB
И никакие не 10 ГБ
Ну это и есть битмаска, 1:8 эффективность всего, мало... При том что это ВДОБАВОК к массиву будет использоваться, если массив заполнен хотя бы на 80% - уже предел, очень от ситуации зависит. Плюс переходники if bit==0/1 - они время занимают на активных вычислениях.

Как говорил один мой знакомый(не покойный ещё) писатель time critical вещей, лучшая функция - её отсутствие, и это факт, будет как минимум call-ret задержка с таким переходником в основном цикле позже, а уж если с pushf/popf - так вообще приличная...
1
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
03.07.2013, 03:54
Про bitset вспоминали?
Миниатюры
Есть матрица из [100000][100000] как лучше ее представить в голове компьютера)  
1
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
03.07.2013, 13:02  [ТС]
Цитата Сообщение от Dr_Quake Посмотреть сообщение
Ну это и есть битмаска, 1:8 эффективность всего, мало... При том что это ВДОБАВОК к массиву будет использоваться, если массив заполнен хотя бы на 80% - уже предел, очень от ситуации зависит. Плюс переходники if bit==0/1 - они время занимают на активных вычислениях.

Как говорил один мой знакомый(не покойный ещё) писатель time critical вещей, лучшая функция - её отсутствие, и это факт, будет как минимум call-ret задержка с таким переходником в основном цикле позже, а уж если с pushf/popf - так вообще приличная...
да я тоже в первую очередь задумался о скорости получения результатов из таких массивов, сегодня сделаю думаю реализацию и замерю скорость вычислений и сюда выскажусь
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
03.07.2013, 14:13
Цитата Сообщение от Ko Посмотреть сообщение
Может как то можно сделать в битовом представлении такую матрицу и сжать до 8 раз или более? Кто что подскажет? пожалуйста выскажитесь по этому поводу.
- правильно мыслишь, только bool это не битовое представление.
На счёт представить - юзай bitset http://www.cplusplus.com/reference/bitset/bitset/ и битовые операции
Цитата Сообщение от Ko Посмотреть сообщение
Всё таки может кто поможет написать класс с битами?
- начни а там точно кто то поможет.
0
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
03.07.2013, 23:29  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- правильно мыслишь, только bool это не битовое представление.
На счёт представить - юзай bitset http://www.cplusplus.com/reference/bitset/bitset/ и битовые операции - начни а там точно кто то поможет.
Мне vector<bool> в полне нравиться, думаю нет смысла на это тратить время
0
03.07.2013, 23:44

Не по теме:

Цитата Сообщение от Ko Посмотреть сообщение
Мне vector<bool> в полне нравиться, думаю нет смысла на это тратить время
- если хочешь в 8-мь раз больше места под объект то юзай и vector<bool>

0
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
03.07.2013, 23:49  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- если хочешь в 8-мь раз больше места под объект то юзай и vector<bool>

да на оборот вектор заживает место на 8 раз как надо я выделял в начале по 1 байту руками для булла, а взял вектор и он сживает мои до этого 12 гигов в 1.25 гига памяти, меня устраивает. я сейчас провожу тест насколько это будет быстрей или медленней, замеряю скорость, если упадёт хотя бы на 20% придётся отказаться от вектора
0
Антикодер
Эксперт функциональных языков программирования
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,091
04.07.2013, 00:01
лучше бы рассказали зачем вам это нужно, и не морочили себе и людям голову )
Просто из вашего вопроса уже очевидно, что вы совершенно не в ту степь зашли.

Добавлено через 6 минут
Я конечно особо не работал с матрицами, но я сильно сомневаюсь, что вам потребуется матрица больше чем 10 на 10 элементов.

Добавлено через 5 минут
инициализация такими цифрами уже запутывает код
C++
1
vector< vector< bool > > verified( 1000000, vector<bool>( 1000000, false ) );
1000000 лучше заменять на enum, define и т п
массивы(матрицы) больше 255 должны настараживать разработчика.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
04.07.2013, 00:06
Цитата Сообщение от Ko Посмотреть сообщение
да на оборот вектор заживает место на 8 раз как надо я выделял в начале по 1 байту руками для булла, а взял вектор и он сживает мои до этого 12 гигов в 1.25 гига памяти, меня устраивает. я сейчас провожу тест насколько это будет быстрей или медленней, замеряю скорость, если упадёт хотя бы на 20% придётся отказаться от вектора
- прочти ещё раз себя сам
100000*100000 = 1010*8 ~ 1011 ~100 Гб какие 12?

замеряю скорость, если упадёт хотя бы на 20% придётся отказаться от вектора - откажись лучше от неправильного механизма хранения данных, при котором думаю ещё и их потеря идёт.
Цитата Сообщение от Ko Посмотреть сообщение
Может как то можно сделать в битовом представлении такую матрицу и сжать до 8 раз или более? Кто что подскажет? пожалуйста выскажитесь по этому поводу.
- это была мысль.
0
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
04.07.2013, 00:06  [ТС]
Есть вопрос + есть ответ, смысл выяснять зачем требуются такие большие матрицы? на вопрос ответил чётко уважаемый форумчанин Tulosba и его подход меня удовлетворил.
0
04.07.2013, 00:07

Не по теме:

Цитата Сообщение от XRuZzz Посмотреть сообщение
массивы(матрицы) больше 255 должны настараживать разработчика.
- т.е скриншот экрана 1024х768 должен меня насторожить?

0
Ko
 Аватар для Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
04.07.2013, 00:08  [ТС]
100000*100000 = 10*000*000*000 байт.
0
04.07.2013, 00:11

Не по теме:

Ko вопрос снял, да ты прав.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.07.2013, 00:11

Подбор конфигурации ПК до 100000 р
Всем привет! Буду рад увидеть варианты подборки компа на базе Процессора INTEL Core i9 9900K (но это не панацея, ваши предложения?)....

Сборка игрового ПК бюджет 100000
Продолжение темы https://www.cyberforum.ru/config-game-pc/thread1649436.html Хочу брать сегодня-завтра. Бюджет 105000 рублей, но...

PHP-Разработчик з/п от 40000-100000
Обязанности: Разработка и тестирование нового функционала Выявление и исправление ошибок в работе текущего веб-решения ...

Тряска объектов на 100000 координатах
Сделал игру с открытым космосом, звёздной системой и кораблём, но когда далеко отлетаешь от нулевых координат все чаcти корабля начинают...

Моделирование выполнения 100000 заданий
На двух процессорную вычислительную систему в интервале 10-20 секунд (закон равномерный) поступают задания. Задание выполняется любым...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru