Строим квадратную матрицу 10 на 10 миллионов счетчиков.
1B * 10М * 10М = 100ТB. У вас суперкомпьютер под рукой?
Тем более, что настолько дырявую матрицу вообще нет смысла строить или мучить ей библиотеки. Списки индексов. Но и они получатся слишком большими для обычной персоналки.
mayton2019, это с чего это вам так кажется? В описании задачи довольно ясно сказано, что там 50 первых сайтов, которые выдаются по определенному запросу. Полагаю, запросы тоже не случайные, и уж по полсотни-то сайтов на них находится.
Я бы все-таки начал с составления словаря доменов. Объем посильный для обычной современной машины, а готовый отсортированный словарь позволит, во-первых, ужать эти сотни гиг до 30Гб реальной информации, а во-вторых, подсчитать, сколько раз вообще каждый домен встречается в этих записях. И уже к этим данным подходить с позиции реально стоящей задачи.
EVGENIJ NEFEDOV, "10 млн слов" - это оценочное количество доменов?
Допуская длину, скажем, до 32 символов - только словарь доменов займет 320 Мб.
Пересечения прикинуть сложнее, но что объем таких данных будет в гигабайтах - это неизбежно.
Так что, если у вас нет под рукой суперкомпьютера, обработать это целиком в памяти нереально. Придется где-то хранить, а хранение и поиск в нем на таком объеме, боюсь, займут неприличное количество времени.
Нужно искать возможности сократить обрабатываемую информацию.
Владимир Коршунов, а я - нет. Но выше написанное насчет windows-only учитывайте.
Если бизнес нынче хочет свое собственное приложение для клиентов, оно вряд ли ограничено Windows. Может быть, даже не основная целевая платформа...
GizzaProger, людей к ведению остатков все равно придется привлекать, вопрос только, насколько им будет удобно работать и насколько наглядна будет эта работа.
А вам на этом этапе нужно понимание - как этот магазин будет у вас проходить по бухгалтерии и какое взаимодействие с 1С, возможно, понадобится. Интернет-магазины часто интегрируют с 1С-Торговлей, но у вас-то это явно не профильное направление.
GizzaProger, реальные платежи и реальные товары - это платежные системы, фискализация и доставка российскими службами. Делать это самостоятельно - не особенно приятно, но возможно (я таки делал ;) ).
Выбор готовых решений сужается до тех, которые достаточно распространены в РФ, чтобы под них писали соответствующие плагины.
GizzaProger, у вас продажи за внутреннюю валюту?
С одной стороны, это проще - не нужны платежи и фискализация.
С другой - это не тот кейс, под который обычно заточены магазины ;)
GizzaProger, сложности будут те же, что при приспосабливании к вашим нуждам сторонних решений. Не стоит рассчитывать, что там из коробки будут именно ваши хотелки.
Кстати, вам вообще - реально нужен магазин? Это работа с доставкой, платежными системами и проч. Сейчас в тренде маркетплейсы, которые с удовольствием сделают это за вас, даже с мелочевкой. Мы на Wildberries вполне успешно реализуем товары, стоимость которых сравнима со стоимостью их доставки почтой...
GizzaProger, данные-то на бэке обновлять получится. Но готового вы от того магазина получите - только бэк. А отображение товаров, их покупку и прочее отслеживание заказов в личном кабинете - фронтенд - все равно придется писать самим. И тут уже вопрос, поможет вам чужое решение или на его преодоление потратится больше сил, чем на самописный бэкенд.
GizzaProger, тут такое дело, что пол-магазина - это витрина, корзина и оплата, которые должны быть у клиента и по API их сделать все равно не получится.
Олег Андреев, помогаю, как могу. Пытаюсь вдолбить неофиту, что для решения проблемы ее нужно - сформулировать.
"Я смотрю в калькулятор, там все не так, это компилятор игнорирует нули" - это не формулировка.
А не можешь ты ее сформулировать потому, что для этого не хватает формальных знаний и навыков. Книги в этом, внезапно, помогают. Прочитавший и понявший того же Петцольда не будет лепить подобную чушь про настройку точности вычислений.
Олег Андреев, тут, видимо, лучше подходит "Ответчик" Шекли.
Незнание хотя бы половины ответа не позволяет тебе сформулировать вопрос так, чтобы на него могли ответить так, чтобы ты понял вторую половину.
А обиженками здесь маяться не советую, тут таких студней, которым задрать нос важнее, чем решить проблему - двенадцать на дюжину.
Олег Андреев, ты в вопросе пугался записи с экспонентой - я дал средство вывести без.
Как вычисляются вещественные числа на уровне бит - Петцель рассказывает.
Какие там твои фантазии про коварный компилятор надо развеять - мы с ним просто не в курсе.
Современный С++ устроен так, что для понимания нововведений в стандартах последних лет нужно иметь хотя бы несколько лет реального опыта программирования на С++.
Сходить на курсы поинтересоваться современным С++, имея в багаже Питон как хобби - даже не утопия, а просто дурь.
Олег Андреев, да мы все поняли, что ты не понимаешь, как работает двоичное представление вещественных чисел.
Может быть, стоит отложить пока программирование и почитать Петцольда, например.
Олег Андреев, точность операций не может быть настроена, она всегда максимальна для того вещественного типа, который имеют вычисляемые значения.
И в "знаки после запятой" бинарное представление вещественных чисел напрямую не переводится.
1B * 10М * 10М = 100ТB. У вас суперкомпьютер под рукой?
Тем более, что настолько дырявую матрицу вообще нет смысла строить или мучить ей библиотеки. Списки индексов. Но и они получатся слишком большими для обычной персоналки.