![]() |
|
|
![]()
|
|
| Kubus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Здравствуйте!
Подскажите, пожалуйста, по поводу алгоритма для решения вот такой задачи: Составить программу для нахождения произвольного разбиения 20 человек на 2 команды, численность которых отличается не более, чем в 2 раза, если известно, что в любой команде должны быть люди, обязательно знакомые друг с другом. Круг знакомств определяется матрицей (20,20) |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
Выбираем состав первой команды (от 7 до 13 человек):
и того меньше чем 13 * С(по 13 из 20 ( 77200 )) (примерно 10^6 вариантов) и проверяем два получившихся подграфа на полную связность . |
|||
|
||||
| Kubus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
не могли бы вы попродробнее объяснить? как запрограммить я разберусь, но сначала нужно в алгоритме разобраться, а теория графив у меня закончилась год назад и я уже мало что помню оттуда
|
|||
|
||||
| Kubus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
уважаемые мемберы данного ресурса!
помогите, пожалуйста, с пониманием алгоритма решения задачи этой, ваша карма поднимится до небывалых высот!) сперва разделить на команды требуется. команды могут быть соответственно 7 и 13, 8 и 12, 9 и 11, 10 и 10, но как организовать цикл перебора вариантов внутри команды? а как проверить связность? берем элемент строки, просматриваем столбец на наличие "1", сравниваем с номером элементов (человек другой команды)? Это сообщение отредактировал(а) Kubus - 12.7.2007, 13:52 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
проверки на связность и т.д. - стандартные алгоритмы над графами, мануалы в любом учебнике по графам. Если есть возможность и желание, посмотри boost::graph - там немало алгоритмов уже реализовано. |
|||
|
||||
| Lactarius |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 12.7.2007 Репутация: нет Всего: нет |
Потрібно зробити обхід графа методом DFS або BFS
|
|||
|
||||
| Kubus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
как реализовать обход графа - разобрался, спасибо
но как оформить перебор всех возможных вариантов? я так понимаю, что до 13 идти не надо - до 12. Перебирать всех 13 - это тоже самое, что перебирать группу из 7. Да и до 12 и 11. Перебор всего по 7, 8 и 9? |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |