Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
#1

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

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

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

Добавлено через 14 минут
Есть ещё мысль создать таблицу всех вариантов типа
[0] = "AAAAAAAAAAAAAAAAAAAA"
[1] = "AAAAAAAAAAAAAAAAAAAB"
....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2013, 16:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Есть матрица из [100000][100000] как лучше ее представить в голове компьютера) (C++):

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

fail sort za 0.5 sek 100000 - C++
#include <conio.h> #include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> struct el { int val; ...

Игра на С++. Как лучше представить дорогу? - C++
Пишу игру,если это так можно назвать) Все алгоритмы вобщем то готовы, но вот некоторые как по мне, не очень. -КАРТА. То что я сделал...

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

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

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

45
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
02.07.2013, 16:35 #2
vector<vector<bool>> для начала. А зачем вообще такая матрица?
1
Ascendancy
Заблокирован
02.07.2013, 16:36 #3
char = 1 байт и следовательно 100000 * 100000 ты меньше чем 10 гигабайт не представишь
0
CheshireCat
Эксперт С++
2903 / 1252 / 81
Регистрация: 27.05.2008
Сообщений: 3,437
02.07.2013, 16:37 #4
А у тебя все 10000000000 значений будут одновременно присутствовать? Если нет, то прежде всего посмотри в сторону разреженных матриц. И "сжать" в битовое представление тоже можно - нужно будет всего-навсего написать простенький собственный класс и переопределить в нем operator[]. В общем, задача легко решается. Только нужно подумать над теми вариантами использования твоей матрицы, которых в сообщении ничего не сказано....
1
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
02.07.2013, 16:51  [ТС] #5
Цитата Сообщение от Tulosba Посмотреть сообщение
vector<vector<bool>> для начала. А зачем вообще такая матрица?
производяться расчёты разово и чтоб из 10*000*000*000 000 раз потом не пересчитывать они сохраняются в матрицу потом я беру из неё значения. Вектор нет смысла применять если большое количество расчёт если это програмулинка которая не загружает одно даже ядро в компе то для удобства очень подходит

Добавлено через 1 минуту
Цитата Сообщение от CheshireCat Посмотреть сообщение
А у тебя все 10000000000 значений будут одновременно присутствовать? Если нет, то прежде всего посмотри в сторону разреженных матриц. И "сжать" в битовое представление тоже можно - нужно будет всего-навсего написать простенький собственный класс и переопределить в нем operator[]. В общем, задача легко решается. Только нужно подумать над теми вариантами использования твоей матрицы, которых в сообщении ничего не сказано....
да разряжено это классно, у меня даже компилятор от intela сам создаёт такую матрицу, я беру ему делаю матрицу она должна занимать 5 гигов в памяти он выделяет 700 килобайтов)))

Добавлено через 41 секунду
Дак я и хотел чтоб мы подумали как сделать этот класс, может у кого то есть в этом опыт

Добавлено через 40 секунд
давайте сделаем матрицу 128x128 к примеру

Добавлено через 5 минут
разделить строчку по 8 значений и записать в битовом выражении я в этом направлении думаю
10101010
11111111
00000000
00100101
ну что то в этом хуже
как только потом брать значения нужные
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
02.07.2013, 17:06 #6
Цитата Сообщение от Ko Посмотреть сообщение
Вектор нет смысла применять если большое количество расчёт если это програмулинка которая не загружает одно даже ядро в компе то для удобства очень подходит
У Вас с пунктуацией проблемка. Ничего не понятно.
А сравнения проводили, что табличный подход работает быстрее, чем повторное вычисление?
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
02.07.2013, 17:09 #7
Ko, вы орудуете супер-компьютером ЦРУ? Тут дофига операций. Просто оптимизируйте алгоритм решения задачи.
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
02.07.2013, 17:22  [ТС] #8
Цитата Сообщение от Tulosba Посмотреть сообщение
У Вас с пунктуацией проблемка. Ничего не понятно.
А сравнения проводили, что табличный подход работает быстрее, чем повторное вычисление?
) да разница 4-5 раз дольше по этому жертвуем оперативной памятью

Добавлено через 4 минуты
Цитата Сообщение от Dani Посмотреть сообщение
Ko, вы орудуете супер-компьютером ЦРУ? Тут дофига операций. Просто оптимизируйте алгоритм решения задачи.
Если бы алгоритм не был оптимизирован задача не могла быть решена пока компьютер находится в этом материально-физическом мире. И пожалуйста в моей ветке не надо употреблять любых названий не связанных с с++)

Добавлено через 5 минут
Всё таки может кто поможет написать класс с битами?
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
02.07.2013, 17:29 #9
Цитата Сообщение от Ko Посмотреть сообщение
Всё таки может кто поможет написать класс с битами?
Я про vector<bool> не просто так сказал. Нормальная реализация должна использовать для хранения элемента как раз один бит.
2
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
02.07.2013, 17:31  [ТС] #10
Цитата Сообщение от Tulosba Посмотреть сообщение
Я про vector<bool> не просто так сказал. Нормальная реализация должна использовать для хранения элемента как раз один бит.
интересно как это bool мне поможет и сделает один бит, может 1 байт?)
0
Dr_Quake
Заблокирован
02.07.2013, 17:36 #11
10 гигов это немного, но если нету - банальная запись на диск и чтение, запись такого типа - чтобы чтение было линейным и дело в шляпе, всё от алгоритма зависит.
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
02.07.2013, 17:37 #12
Ko, ознакомьтесь http://www.cplusplus.com/reference/vector/vector-bool/
The storage is not necessarily an array of bool values, but the library implementation may optimize storage so that each value is stored in a single bit.
2
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
02.07.2013, 17:43 #13
Tulosba, а может и не сопимизить. Пусть проверит. Если нет, то с битами написать не так уж тяжело.
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
02.07.2013, 17:46  [ТС] #14
Цитата Сообщение от Tulosba Посмотреть сообщение
заинтригован))) спасибо) а нет примера?)
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
02.07.2013, 17:50 #15
Цитата Сообщение от Ko Посмотреть сообщение
а нет примера?)
Какого примера? Берете vector<char> и vector<bool> и заполняете туеву-хучу элементов, замечая сколько съест памяти тот и другой при одинаковом кол-ве элементов. Это если в реализацию не смотреть.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2013, 17:50
Привет! Вот еще темы с ответами:

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

Системный блок за 100000 рублей - Игровой компьютер
Здравствуйте! Только системный блок. 1. Бюджет: на 100000 рублей +5000 рублей(если не хватит). 2. Задачи для системного блока: Хочу...

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

Вычислительный центр, до 100000 рублей - Домашний компьютер
Здравствуйте. Необходимо собрать сервер - вычислительный центр, в задачи которого входят вычисления большого объёма математики, без ПО....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru