5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
1 | |
Есть матрица из [100000][100000] как лучше ее представить в голове компьютера)02.07.2013, 16:29. Показов 5052. Ответов 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 рублей)? Оцените, пожалуйста, конфигурацию компьютера (до 100000 рублей) Отгадывание числа от 0 до 100000 Подбор конфигурации ПК до 100000 р |
Заблокирован
|
|
02.07.2013, 16:36 | 3 |
char = 1 байт и следовательно 100000 * 100000 ты меньше чем 10 гигабайт не представишь
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
02.07.2013, 16:37 | 4 |
А у тебя все 10000000000 значений будут одновременно присутствовать? Если нет, то прежде всего посмотри в сторону разреженных матриц. И "сжать" в битовое представление тоже можно - нужно будет всего-навсего написать простенький собственный класс и переопределить в нем operator[]. В общем, задача легко решается. Только нужно подумать над теми вариантами использования твоей матрицы, которых в сообщении ничего не сказано....
1
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
02.07.2013, 16:51 [ТС] | 5 |
производяться расчёты разово и чтоб из 10*000*000*000 000 раз потом не пересчитывать они сохраняются в матрицу потом я беру из неё значения. Вектор нет смысла применять если большое количество расчёт если это програмулинка которая не загружает одно даже ядро в компе то для удобства очень подходит
Добавлено через 1 минуту да разряжено это классно, у меня даже компилятор от intela сам создаёт такую матрицу, я беру ему делаю матрицу она должна занимать 5 гигов в памяти он выделяет 700 килобайтов))) Добавлено через 41 секунду Дак я и хотел чтоб мы подумали как сделать этот класс, может у кого то есть в этом опыт Добавлено через 40 секунд давайте сделаем матрицу 128x128 к примеру Добавлено через 5 минут разделить строчку по 8 значений и записать в битовом выражении я в этом направлении думаю 10101010 11111111 00000000 00100101 ну что то в этом хуже как только потом брать значения нужные
0
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
02.07.2013, 17:22 [ТС] | 8 |
) да разница 4-5 раз дольше по этому жертвуем оперативной памятью
Добавлено через 4 минуты Если бы алгоритм не был оптимизирован задача не могла быть решена пока компьютер находится в этом материально-физическом мире. И пожалуйста в моей ветке не надо употреблять любых названий не связанных с с++) Добавлено через 5 минут Всё таки может кто поможет написать класс с битами?
0
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
02.07.2013, 17:31 [ТС] | 10 |
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
02.07.2013, 17:37 | 12 |
2
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
02.07.2013, 17:46 [ТС] | 14 |
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
02.07.2013, 17:50 | 15 |
Какого примера? Берете vector<char> и vector<bool> и заполняете туеву-хучу элементов, замечая сколько съест памяти тот и другой при одинаковом кол-ве элементов. Это если в реализацию не смотреть.
1
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
02.07.2013, 17:55 [ТС] | 16 |
я выделяю память а не вектора завожу))))
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
02.07.2013, 17:55 | 17 |
Только не должна, а может (23.3.7/3) - "A space-optimized representation of bits is recommended".
1
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
||||||
02.07.2013, 18:01 [ТС] | 18 | |||||
http://www.cplusplus.com/reference/bitset/bitset/
тут интересный пример Добавлено через 1 минуту CheshireCat пожалуйста сделайте пример матрицы Добавлено через 1 минуту vector< vector< bool > > verified( 100000, vector<bool>( 100000, false ) ); вот так генерить? Добавлено через 1 минуту
0
|
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
|
|
02.07.2013, 18:03 [ТС] | 20 |
надо что то там делать чтоб ужалось это дело???)
Добавлено через 24 секунды нормальная реализация, а что там может быть не реально? Добавлено через 1 минуту ну да поджалось в 10 раз где то))))))) но это на первый взгляд, будет пробывать, спасибо всем что помогли)
0
|
02.07.2013, 18:03 | |
02.07.2013, 18:03 | |
Помогаю со студенческими работами здесь
20
Сборка игрового ПК бюджет 100000 PHP-Разработчик з/п от 40000-100000 Тряска объектов на 100000 координатах Моделирование выполнения 100000 заданий Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |