Вопрос (или с больной головы на здоровую)
Есть балванка на 700М
Есть файлы:
ааа 400М
ввв 400М
ссс 400М
еее 300М
ххх 300М
ооо 300М
Если я их буду записывать на диски подряд, то я потрачу 5 дисков
Если я их буду записывать на диски так: ааа+еее, ввв+ххх, ссс+ооо то я потрачу 3 диска
Вопрос: если программа или формула/макро в excel-е которая мне поможет правильно/оптимально скомпановать файлы?
Советы типа "заархивируй с опцией -v700K" или "используй backup утилиту" не годятся файлы ложны быть в оригинальном виде.
Спасибо, математики.
BRMAIL
@ 16-09-2004, 23:57
QUOTE (Ruz @ 16-09-2004, 15:07) |
Вопрос (или с больной головы на здоровую)
Есть балванка на 700М Есть файлы: ааа 400М ввв 400М ссс 400М еее 300М ххх 300М ооо 300М
Если я их буду записывать на диски подряд, то я потрачу 5 дисков Если я их буду записывать на диски так: ааа+еее, ввв+ххх, ссс+ооо то я потрачу 3 диска
Вопрос: если программа или формула/макро в excel-е которая мне поможет правильно/оптимально скомпановать файлы?
Советы типа "заархивируй с опцией -v700K" или "используй backup утилиту" не годятся файлы ложны быть в оригинальном виде.
Спасибо, математики. |
формула простая ( к математике имеет маленькое отношение)
1. Берется самый большой файл из имеющихся.
2. Проверятется лезет ли он на диск
3. Если даю брется следующий файл и go to 1
4. Если не лезет, то берется следуюший, меньший по размеру файл и go to 1
izanoza
@ 17-09-2004, 00:17
Приведённая выше формула не всегда работает :)
Хотя я тоже начинаю с больших файлов. Обычно просто сваливаю все файлы в одну кучу, в FAR-е сортирую по размеру и начинаю выделять начиная с самых больших, добивая остатки мелкими. Набранные файлы копирую в другую директорию, откуда из все скопом и пишу.
Да, формула имеет мало отношения к математике. Потому, что она в общем случае не верна. Я потом подберу пример. Сейчас времени нет.
obaldin
@ 17-09-2004, 01:08
Насколько я помню, это эквивалентно какой-то NP-complete задаче. Так что решения не будет :) Пользуйтесь методами типа генетических алгоритмов.
Впрочем, если речь идет не о математике, а о распределении файлов по дискам, то полный перебор - вполне реальный метод.
obaldin
@ 17-09-2004, 01:17
Кстати, алгоритмы типа приведенного BRMAIL'ом принято называть "жадными" (greedy) алгоритмами. Они редко дают оптимальные результаты.
НУ, по жизни, я тоже пользуюсь. BRMAIL-оским методом, но просто не верю, что это задачка не решена и не воплощена в код.
И, к стати, сортирую тоже в FAR-е.
Обожаю FAR-овский встроенный редактор! Кто-нибудь, что-нибуд подобное c GUI знает?
obaldin
@ 17-09-2004, 03:39
QUOTE (Ruz @ 17-09-2004, 03:23) |
но просто не верю, что это задачка не решена и не воплощена в код. |
Что такое NP-полная задача вы в курсе?
QUOTE (obaldin @ 16-09-2004, 19:39) |
Что такое NP-полная задача вы в курсе? |
Нет, просвети пожалуйста.
Но решение то должно быть :) диски то жечь надо.
izanoza
@ 17-09-2004, 04:20
Эта задача легко решается полным перебором. Число файлов ограничено, размер болванки известен. Надо всего лишь разложить на меньшее число "кучек", минимизировав остаток. Лень писать программу, руками обычно получается не сильно хуже. У меня никогда на 10 дисков инфы писать сразу не набирается, так как пишу на ДВД :), а на пару дисков, руками быстрее, чем программу запустить.
QUOTE |
руками обычно получается не сильно хуже. |
Согласен.
Но вот после двух аварий HDD решил всю коллекцию аудио книг перенести но DVD (от греха подальше) А это 230Гб, думал, что если подойти с научной точки зрения , то болванку другую сэкономлю.
Но жизнь показала обратное. «Хвостик» на последнем DVD сводит к 0 все ухищрения на первых NN дисках.
А чего-бы народу не побаловаться? Запости размеры сюда и мы все попробуем "кто меньше" :)
QUOTE |
Запости размеры сюда и мы все попробуем "кто меньше" |
а чЁ постить, заходи на ftp, там все размеры и названия, я там даже решение оставил.
(а шутка мне понравилась, не знаю посему, но понравилась)
:)
obaldin
@ 17-09-2004, 11:33
Не совсем понял, где живет ФТП со списком и размерами файлов, но если речь идет о 230 гигах, то это явно многие сотни файлов. Полный перебор может ээ... оказаться долгим занятием :D Если кто хорошо помнит комбинаторику, то пусть посчитает точное количество вариантов, но слова "факториал" и "многие сотни элементов", как правило дают вполне астрономические числа...
Более того, из опыта решения подобных "больших комбинаторных" задач генетическими алгоритмами - эта задача будет плохо решаться и ими. Оценочная функция будет очень "рваной", на глобальный оптимум будет выйти трудно.
izanoza
@ 17-09-2004, 14:29
obaldin
А кто говорил что будет легко? ;). Вариантов для 230 гигов будет много, очень много. Поэтому легче руками, особенно если много мелких файлов.
А что за коллекция книг и где на нее можно посмотреть (если нигде, то многили там книг на русском и компьютерной тематики) ?
аудиокниги компьютерной тематики? не думаю.
А насчет многих вариантов - ну так не надо все перебирать. 230 гигов - это 52 диска примерно. ну при очень хорошей компоновке (если такая вообще возможна) - 50. Но это из области фантастики. По 4.7 забивать не удается. Итого - если уже получился вариант на 52 диска, то можно останавливаться :)
а тут нигде не сказано, что это аудио книги :)
QUOTE (Ruz @ 16-09-2004, 20:27) |
Но вот после двух аварий HDD решил всю коллекцию аудио книг перенести но DVD (от греха подальше) А это 230Гб, думал, что если подойти с научной точки зрения , то болванку другую сэкономлю. |
Вроде как сказано.
ну все - пошел к врачу зрение проверять
izanoza
@ 22-10-2004, 17:08
Тут на глаза попалась такая прога:
http://www.kcsoftwares.com/index.php?ignitionРаспространяется: бесплатно
QUOTE |
Эта программа проанализирует файлы, которые вам нужно записать, и разобьет их так, что вам понадобится минимальное количество дисков. При этом все болванки будут заполнены. Программа поддерживает болванки разного объема - 650,700 Mb, а также DVD. К тому же, Ignition по вашему желанию создает список находящихся на диске файлов. Кроме этого, с помощью Ignition можно создавать ISO образы. |