|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
Есть матрица из [100000][100000] как лучше ее представить в голове компьютера)02.07.2013, 16:29. Показов 6433. Ответов 45
Метки нет (Все метки)
Всем добрый день. Решил коллективно подумать))) есть матрица из [100000][100000] в ней у меня значения 0 или 1
я представил её как char матрицу допустим если 0 это А если 1 это В занимает она в памяти 10 гигов, как сделать более компактней. Ещё осложняет ситуацию что мне к этим значениям нужно обращаться как [x][x]. Может как то можно сделать в битовом представлении такую матрицу и сжать до 8 раз или более? Кто что подскажет? пожалуйста выскажитесь по этому поводу. Добавлено через 14 минут Есть ещё мысль создать таблицу всех вариантов типа [0] = "AAAAAAAAAAAAAAAAAAAA" [1] = "AAAAAAAAAAAAAAAAAAAB" ....
0
|
|
| 02.07.2013, 16:29 | |
|
Ответы с готовыми решениями:
45
Какова конфигурация РС лучше (до 100000 рублей)?
Отгадывание числа от 0 до 100000 |
|
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 минут Добавлено через 5 минут так то в класс к объекту запихнуть vector< bool > verified( 100000000, false ); и всё будет отлично, только как они это сделали в векторе теперь интересно
0
|
||
| 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
|
|
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|||
| 02.07.2013, 20:45 [ТС] | |||
|
Ребята всё задача решена, конкретно была задача сделать компактней массив 01010, всем спасибо.
Добавлено через 34 секунды Добавлено через 1 минуту
0
|
|||
|
Заблокирован
|
|
| 02.07.2013, 23:20 | |
|
Вообще - если некритично время заполнения проще взять свой класс с базовым не сжатием, а malloc'ом, у него memmap будет массив в битовом виде как минималка, по ней проверять заполненность, если 0 - возвращаем 0 на гет метод, если не 0 - значение, но это достаточный бред во ВСЕХ видах если элемент массива - 8 бит, оверхед превысит это дело.
Аналогично полный бред брать boolean - он будет минимум байт, а может и весь регистр битности приложения в зависимости от опций компилятора.
0
|
|
|
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
|
|
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
||
| 03.07.2013, 00:10 [ТС] | ||
|
Добавлено через 3 минуты Ребята я уже всё проверил и получилось "то что доктор прописал" ))))
0
|
||
|
Заблокирован
|
||
| 03.07.2013, 01:02 | ||
|
Как говорил один мой знакомый(не покойный ещё) писатель time critical вещей, лучшая функция - её отсутствие, и это факт, будет как минимум call-ret задержка с таким переходником в основном цикле позже, а уж если с pushf/popf - так вообще приличная...
1
|
||
|
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
|
|
| 03.07.2013, 03:54 | |
|
Про bitset вспоминали?
1
|
|
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
||
| 03.07.2013, 13:02 [ТС] | ||
|
0
|
||
|
|
|||
| 03.07.2013, 14:13 | |||
|
На счёт представить - юзай bitset http://www.cplusplus.com/reference/bitset/bitset/ и битовые операции
0
|
|||
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
| 03.07.2013, 23:29 [ТС] | |
|
0
|
|
| 03.07.2013, 23:44 | |
|
0
|
|
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
||
| 03.07.2013, 23:49 [ТС] | ||
|
0
|
||
|
Антикодер
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
|
||||||
| 04.07.2013, 00:01 | ||||||
|
лучше бы рассказали зачем вам это нужно, и не морочили себе и людям голову )
Просто из вашего вопроса уже очевидно, что вы совершенно не в ту степь зашли. Добавлено через 6 минут Я конечно особо не работал с матрицами, но я сильно сомневаюсь, что вам потребуется матрица больше чем 10 на 10 элементов. Добавлено через 5 минут инициализация такими цифрами уже запутывает код
массивы(матрицы) больше 255 должны настараживать разработчика.
0
|
||||||
|
|
|||
| 04.07.2013, 00:06 | |||
|
100000*100000 = 1010*8 ~ 1011 ~100 Гб какие 12? замеряю скорость, если упадёт хотя бы на 20% придётся отказаться от вектора - откажись лучше от неправильного механизма хранения данных, при котором думаю ещё и их потеря идёт.
0
|
|||
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
| 04.07.2013, 00:06 [ТС] | |
|
Есть вопрос + есть ответ, смысл выяснять зачем требуются такие большие матрицы? на вопрос ответил чётко уважаемый форумчанин Tulosba и его подход меня удовлетворил.
0
|
|
| 04.07.2013, 00:07 | |
|
0
|
|
|
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
|
|
| 04.07.2013, 00:11 | |
|
Подбор конфигурации ПК до 100000 р Сборка игрового ПК бюджет 100000 PHP-Разработчик з/п от 40000-100000 Тряска объектов на 100000 координатах Моделирование выполнения 100000 заданий Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|