|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.10.2010, 09:13 | #1 |
Пользователь
Регистрация: 24.12.2008
Сообщений: 50
|
Cформировать из 30 таблиц 1 500 000 000 таблиц, за 2 часа.
Добрый день. Задача, которую надо выполнить, по сравнению с ранее выложенной мной, усложняется. Кто возьмётся написать программу, которая за короткое время (от 30 минут до 2 часов), из 30 таблиц сможет сформировать 1 500 000 000 таблиц?
Пример формирования из 30 таблиц 1 500 000 000 таблиц: Есть 30 таблиц c данными, в Еxcel. (Формировать 1 500 000 000 таблиц, конечно не обязательно в Excel ). Сформированные 1 500 000 000 таблиц, мне видеть не надо (видимую часть программы приведу отдельно, тому, кто возьмётся за работу. Она на выходе не больше 9 гига). Каждая таблица состоит из 1 000 строк с данными (количество строк уменьшилось). Строки состоят из 8 колонок. Надо сделать так, чтобы из этих 30 таблиц получилось 1 500 000 000таблиц. Создавать эти 1 500 000 000 таблиц надо по следующим критериям. 1. Блок из стрёх строк: Берём строки 1,2,3, из 1-ой таблицы из 30. (Основной список 1) Переставляем строки местами 1,3,2; и переносим в таблицу (Лист) 1.3.2. Переходим к следующим строкам 4,5,6, Переставляем их местами 4,6,5, и переносим в таблицу (Лист) 1.3.2. Переходим к следующим строкам 7,8,9, Переставляем их местами 7,9,8, и переносим в таблицу (Лист) 1.3.2. Это всё делается в одном дне. И переносится в одну таблицу. И так далее, за все дни Следующая комбинация : 1,3,2; - Оборот. Все такие же действия как выше написанные, но перевернуть данные за день, с низу вверх. Сделать это надо со всеми днями. Следующие комбинации блока из трёх строк: 2,1,3; Следующая комбинация : 2,1,3; - Оборот. Следующая комбинация : 2,3,1; Следующая комбинация : 2,3,1; - Оборот. Следующая комбинация: 3,1,2; Следующая комбинация: 3,1,2; - Оборот. Следующая комбинация : 3,2,1; Следующая комбинация : 3,2,1; - Оборот. Все варианты комбинаций блока из трёх строк, каждая комбинация отдельная таблица (Лист). Когда перебраны все комбинации блока из трёх строк (1,2,3,), переходим к блоку из четырёх строк (1,2,3,4,), перебираем все комбинации, составляем таблицы. 2. Блок из четырёх строк: Берём строки 1,2,3,4, из 1-ой таблицы из 30.(Основной список 1) Переставляем строки местами 1,2,4,3, и переносим в таблицу (Лист) 1,2,4,3, Следующая комбинация: 1,2,4,3 – Оборот. В таблицу (Лист) 1,2,4,3, - оборот. Следующая комбинация: 1,3,2,4, Следующая комбинация: 1,3,2,4, - Оборот. Следующая комбинация: 1,3,4,2, Следующая комбинация: 1,3,4,2, - Оборот. Следующая комбинация: 1,4,2,3, Следующая комбинация: 1,4,2,3, - Оборот. Следующая комбинация: 1,4,3,2, Следующая комбинация: 1,4,3,2, - Оборот. Следующая комбинация: 2,1,4,3, Следующая комбинация: 2,1,4,3, - Оборот. Следующая комбинация: 2,4,1,3, Следующая комбинация: 2,4,1,3, - Оборот. И так далее. Перебрать все комбинации блока из четырёх строк (1,2,3,4,). 3.Блок из пяти строк: Берём строки 1,2,3,4,5, из 1-ой таблицы из 30. (Основной список 1). Переставляем строки местами 1,2,3,5,4, и переносим в таблицу (Лист) 1.2.3.5.4. Следующая комбинация: 1,2,3,5,4, - Оборот. И так далее. Всё, тоже самое, сделать, что и с предыдущими блоками и строками. Такие действия производить до тех пор, пока не будет получено нужное количество таблиц (1 500 000 000 таблиц). |
25.10.2010, 12:52 | #2 |
Регистрация: 16.09.2010
Сообщений: 3
|
Для чего эти 1 500 000 000 таблиц нужны? Что с ними делать, как их использовать?
Что содержат 30 таблиц? Может надо генерировать тот или иной вариант таблицы, по мере необходимости, когда в нем возникнет насущная потребность, используя некий код имеющий значения, например, в диапазоне от 1 до 1 500 000 000. |
25.10.2010, 12:59 | #3 |
Новичок
Джуниор
Регистрация: 25.10.2010
Сообщений: 0
|
Что-бы они весили 9гб, каждая таблица должна 6 байт весить (округленно). А если считать что в действительности каждая таблица может 20-40кб минимум весить. То 1,5 млр. таблиц будут 450 гбайт занимать. Простое копирование такого объема на обычном компе часа 2 займет
|
25.10.2010, 13:47 | #4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
При тех фантастических результатах.которые достиг AlexTuka при создании программы,
время для этой-порядка 200 суток.Хоть я немного в теме, но не понял откуда такое количество таблиц при описаном алгоритме
Анализ,обработка данных Недорого
|
25.10.2010, 13:56 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Если файлы сохранять в текстовом формате, то один файл на диске будет занимать около 60 килобайтов.
(вариант с формированием XLS не рассматривается, поскольку скорость создания файлов значительно увеличивается. Кроме того, Excel открывает текстовые файлы с расширением XLS как обычные книги) Итого, 60 kB * 1500000000 файлов = 90 терабайтов Скорость записи на HDD (правда, я очень сомневаюсь, что где-то можно найти такой огромный HDD) на моём компе составляет 100 MB/сек Итого, на запись уйдёт примерно 900 000 сек = 250 часов Николай, вы вообще понимаете, что хотите получить? Ещё не поздно отказаться от этой бредовой затеи... |
25.10.2010, 14:18 | #6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Я еще в прошлый раз возникал - зачем все это писать на диск? Гораздо эффективнее будет генерить эти таблицы в момент использования..
|
26.10.2010, 03:27 | #7 |
Пользователь
Регистрация: 24.12.2008
Сообщений: 50
|
Полностью эта программа состоит из 25 частей. Эта часть № 8. Также пишутся ещё несколько частей. Приведённые выше таблицы, не те таблицы, которые были описаны мной ранее, но на их базе. Эти таблицы во много раз больше.
Конечно, данные поступают в таблицы не все сразу, а частями, но для того, чтобы сделать правильные выводы, надо 4 раза обработать все данные, полностью. |
26.10.2010, 03:57 | #8 |
Ищу работу
Форумчанин
Регистрация: 16.02.2007
Сообщений: 269
|
может все таки имеет смысл загнать исходное в скуль базу, а потом подзапросами вытаскивать что необходимо, даже конвертнуть в любой формат можно будет...
не плохо так полтора биллиона) с таблички бы по рублю)
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
|
26.10.2010, 22:22 | #9 |
Пользователь
Регистрация: 24.12.2008
Сообщений: 50
|
Так зарабатывать на себе не позволит не одна организация. Самое большое при завершение программы, 2% перевеса.
|
01.11.2010, 21:19 | #10 |
Новичок
Джуниор
Регистрация: 01.11.2010
Сообщений: 0
|
решение можно только программное? аппаратное виде платы для компа ИМХО проще и быстрее
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сформировать из 30 таблиц 15 000 таблиц, за 15 минут. | kola672 | Фриланс | 31 | 19.10.2010 01:22 |
ноутбук за 20 000 - 25 000 руб. | russian-stalker | Компьютерное железо | 5 | 15.05.2010 21:53 |
Выборка и консолидация. Вопрос на 1 000 000 | 23i | Microsoft Office Excel | 11 | 11.05.2010 02:11 |
Конкурс программистов - призовой фонд 1 000 000 рублей | Lnat | Свободное общение | 0 | 26.07.2008 12:15 |