![]() |
|
|
![]()
|
|
| AmsTaFF |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.9.2009 Где: г. Москва Репутация: нет Всего: нет |
суть: расформировывается большой отдел из 50 человек, среди которых есть 3 класса рабочих (технари, экономисты .. и скажем, читатели), каждый из этих классов делится ещё на 3
технари на : мастер по компам, мастер по принтерам, мастер по электропроводке экономисты на : бухгалтеры, выдавальщики зп, собиратели налогов читальщики делятся на: читателей романов, рассказов и сказок задача заключается в том, чтобы создать алгоритм, который распределил бы всех этиъ 50 человек на N отделов, скажем 2. Так, чтобы они были примерно равны, т.е. примерно равное кол-во технарей, экономистов и читателей И чтобы среди технарей в одном отделе были и мастера по компам, принтерам, среди экономистов бухгалтера и т.п. главный критерий - равность кол-во работников в отделе, когда они равны распределение не такое жесткое и добавляет так, чтобы не изменить равновесие сил (например N технарей (по 1 в каждый отдел)) Вопрос: есть ли уже готовые алгоритмы. Почему пришлось задать вопрос: я начал делать и алгоритм становится уж очень большим (сбор информации по свободным работникам и текущему состоянию в отделах). Подумал, не создаю ли я велосипед с 10-ю колесами. Посмотрел сайты с алгоритмами... не знаю куда вообще тыкнутся * все названия взяты для большей понятности проблемы, я не ручаюсь за правильное распределение ) |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Непонятна задача.
Если взять общее количество мастеров по компам и разделить на число новых отделов, потом общее количество мастеров по принтерам и т.д. Вот и получится поровну. Что-то в вашем описании упущено наверное. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| AmsTaFF |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.9.2009 Где: г. Москва Репутация: нет Всего: нет |
отлично, а что делать, если поделить с остатком (кол-во компьютерщиков) на (кол-во отделов) и остаток не равен нулю? что делать в таком случае?
а если компьютерщиков вообще 1? и наличие одного представителя класса в отделе обязательно есть ли красивый алгоритм, который помог бы в распределении в таких вот случаях? Это сообщение отредактировал(а) AmsTaFF - 2.4.2010, 22:21 |
|||
|
||||
| maxdiver |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: 16 Всего: 18 |
Пожалуй, готового красивого алгоритма нет. Слишком специфичная задача. Просто надо самому случаи все поразбирать (и их вроде немного, только когда какое-то количество на 2 не делится). Обдумай, как это получше написать. Я бы просто перебор написал - т.е. берём очередную группу специалистов, делим пополам и сразу распределяем на 2 отдела, а если остался какой-то остаток, то перебираем, в какую из двух групп его отнести.
|
|||
|
||||
| AmsTaFF |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.9.2009 Где: г. Москва Репутация: нет Всего: нет |
ну это ясное дело, просто не хочется изобрести велосипед, а потом найти уже готовый алгоритм
|
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Ну здесь никакой алгоритм не поможет. Только здравый смысл. А он подсказывает следующие варианты:
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
А что это вообще такое производится, что в каждом отделе - одинаковое число тварей? Мне как-то привычнее - команда грузчиков, бухгалтерия, it-отдел -- все в своей корзинке сидят, и не пересекаются особо...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |