Помогите, пожалуйста, с программой!сама в паскале практически не разбираюсь, поэтому самой как то все сложно!
Задание:Разработать программу, которая делит N предметов с различными весами на две группы так, чтобы общие веса двух групп были максимально близки. Программа должна иметь развитый интерфейс пользователя.
(искала в ин-те,в книгах разных о паскале ничего не нашла)
Как вариант :
Сортируешь массив, далее берешь наибольший элемент кладешь в первую группу, далее кладешь оставшиеся элементы во вторую группу, пока ее суммарный вес не будет отличаться от веса первой группы нанекую дельту, далее начинаешь проделывать тоже самое с первой группой ...
Спасибо, конечно огромное, но это итак логично, вопрос в другом, как это написать в программу?(я писать программы не умею, а логика то есть)javascript:emoticon(':)', 'smid_1')
или скорее так : Текущий максимальный кладем в группу A, слудующий за ним кладем в B, далее начинаем прибявлять в B элементы с конца (с минимального) пока не достигнем (превысим) некой дельты в разностях весов групп. И так далее ...
Не очень понимаю...
сама я ничего не понимаю, что я думала приблизительно описал klem4(первый вариант).
В ин-те нашла какой то бред, сама ничего в этом не понимаю:
(может поможет)
"Алгоритмически":
Создаем 2 переменные и массив N элементов:
1-я переменная - общий вес первой группы
2-я переменная - общий вес второй группы
Каждый элемент массива (байт) - признак текущего веса предмета - скажем - 0 - он еще не распределен, 1-он уже переложен в 1-ю группу, 2-он уже переложен во 2-ю группу
1. находим максимальный элемент массива, у которого признак - 0
2. Если 1-я переменная (общий вес) больше 2-й, то 2-я переменная увеличиваеться на Ai (массу предмета), выставляеться признак 2 в массиве признаков
иначе 1-я увеличиваеться и выставляется признак 1
3. Проверяем массив признаков на наличие нулей - если есть, идем на пункт 1
4. Из массива признаков определяем, что куда переложили.
Другого я не знаю, а как насчет программки?
Kate, я бы не торопился с программкой...
lapp прав, это насколько я понимаю, не совсем то, что нужно... По-моему, тот алгоритм, что ты привела, рассматривается на AlgoList-е для случая, когда требуется чтобы веса куч отличались не более чем в 2 раза (и второй вариант - в полтора)... А вот в случае, когда кучки должны быть максимально близки по весу - это задача упаковки, там как мне кажется надо по другому решать...
Плохо искали, наверное.
http://www.intuit.ru/department/pl/plpascal/9/plpascal_9.html
думаю, всем будет интересно почитать....
интерфейс пользователя уж как-нибудь сами.
мисс_граффити, респект. Хорошая вещь, кинул в букмарки.
интерфейс пользователя уж как-нибудь сами.
с этим то и проблема, я не понимаю какие буквы там что обозначают, что вводить то как количество k или d.
и какой массив?
я честно пыталась понять но.....
Тебе с рекурсией или нет?
сразу бы и писали, что Вам нужно:
1) разработка алгоритма
2) написание программы с подробными комментариями
(первые 2 пункта в той статье выполнены)
3) подробное объяснение (видимо построчное)
надо было в "задачи на заказ". имхо.
Люди, спасибо вам всем, за ваш нелегкий труд!
дпльше как-нибудь сама попробую, частично уже написала....