Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2010, 20:36   #1
f1UZ
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 13
По умолчанию Комбинаторика чисел и суммирование

Здравствуйте всем ребята, я в замешательстве, надеюсь на помощь...

Задача:
Предположим что существует n-ое количество клиентов, на каждого клиента уходит x-количество времени на удовлетворения каких нибудь потребностей.
Собственно смысл следующий, необходимо реализовать алгоритм ниже описанный

Возьмем к примеру 3-х клиентов, время потраченное на каждого клиента t1 = 5, t2 = 8, t3 = 6;

Для 3-х клиентов существует 6 методов обслуживания:
Цитата:
t1 t2 t3
5 8 6
| | |
1 2 3 ~ 5 + (5 + 8) + (5 + 8 + 6) = 37
1 3 2 ~ 5 + (5 + 6) + (5 + 6 + 8) = 35
2 1 3 ~ 8 + (8 + 5) + (8 + 5 + 6) = 40
2 3 1 ~ 8 + (8 + 6) + (8 + 6 + 5) = 41
3 1 2 ~ 6 + (6 + 5) + (6 + 5 + 8) = 36 ~ самый оптимальный вариант обслуживания клиентов, за самое короткое время.
3 2 1 ~ 6 + (6 + 8) + (6 + 8 + 5) = 39
Я представлял себе решение этой задачи следующим образом, формируем матрицу с присвоенными значениями одномерного массива, то есть время каждого клиента и получаем следующие:

Цитата:
5 8 6
5 8 6
5 8 6
#Далее суммируем
Цитата:
(5) 8 6
(5 8) 6
(5 8 6)
Производим комбинацию чисел и суммируем следующие элементы, пока так не пройдем все 6 комбинаций.
Сумму каждой комбинации записываем в какой-нить массив и уже определяем минимальное значение.
Ну все это теория и еще не известно если правильная, прошу помочь так как даже не знаю с чего бы и начать, может кто сталкивался с подобной задачай, за ранее благодарен за помощь и за любую полезную инфорамцию.

Последний раз редактировалось f1UZ; 04.06.2010 в 20:39.
f1UZ вне форума Ответить с цитированием
Старый 04.06.2010, 20:42   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

То есть дано три клиента и три времени, соответственно необходимые для их обслуживания и надо найти минимальную сумму по формуле a + (a+ b) + (a + b + c)?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 04.06.2010, 21:10   #3
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от f1UZ Посмотреть сообщение
Цитата:
t1 t2 t3
5 8 6
| | |
1 2 3 ~ 5 + (5 + 8) + (5 + 8 + 6) = 37
1 3 2 ~ 5 + (5 + 6) + (5 + 6 + 8) = 35
2 1 3 ~ 8 + (8 + 5) + (8 + 5 + 6) = 40
2 3 1 ~ 8 + (8 + 6) + (8 + 6 + 5) = 41
3 1 2 ~ 6 + (6 + 5) + (6 + 5 + 8) = 36 ~ самый оптимальный вариант обслуживания клиентов, за самое короткое время.
3 2 1 ~ 6 + (6 + 8) + (6 + 8 + 5) = 39
А разве самый оптимальный не второй вариант?
И в таком случае, достаточно отсортировать по возрастанию времени обслуживания - это и будет самый оптимальный вариант
netrino вне форума Ответить с цитированием
Старый 04.06.2010, 21:22   #4
f1UZ
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 13
По умолчанию

Цитата:
То есть дано три клиента и три времени, соответственно необходимые для их обслуживания и надо найти минимальную сумму по формуле a + (a+ b) + (a + b + c)?
Да

Цитата:
А разве самый оптимальный не второй вариант?
И в таком случае, достаточно отсортировать по возрастанию времени обслуживания - это и будет самый оптимальный вариант
Да, устал просто, ошибся.
f1UZ вне форума Ответить с цитированием
Старый 05.06.2010, 07:00   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а поясните, кто понял, в чём физический смысл данной задачи?
Почему время обслуживания одного клиента прибавляется к сумме обслуживания этого же клиента и другого клиента, а потом к этому сумарному времени прибавляется ещё сумма?!
Это получается, что одного клиента обслужат три раза (время обслуживания клиента A три раза входит в сумму), другого клиента — два раза и последнего - один раз?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.06.2010, 12:56   #6
f1UZ
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 13
По умолчанию

Цитата:
а поясните, кто понял, в чём физический смысл данной задачи?
Почему время обслуживания одного клиента прибавляется к сумме обслуживания этого же клиента и другого клиента, а потом к этому сумарному времени прибавляется ещё сумма?!
Это получается, что одного клиента обслужат три раза (время обслуживания клиента A три раза входит в сумму), другого клиента — два раза и последнего - один раз?!
Мы же не будем крутить числа (5 + 8 + 6) или (6 + 5 + 8)
Таким собственно способ сможем определить в каком порядке можно обслужить клиентов за более короткое время.
f1UZ вне форума Ответить с цитированием
Старый 05.06.2010, 15:47   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Мы же не будем крутить числа (5 + 8 + 6) или (6 + 5 + 8)
Таким собственно способ сможем определить в каком порядке можно обслужить клиентов за более короткое время.
опять ничего не понял. ((
Каким образом порядок может влиять на время обслуживания?!!

хорошо.
вот здесь
Цитата:
Возьмем к примеру 3-х клиентов, время потраченное на каждого клиента t1 = 5, t2 = 8, t3 = 6;
1 2 3 ~ 5 + (5 + 8) + (5 + 8 + 6) = 37
1 3 2 ~ 5 + (5 + 6) + (5 + 6 + 8) = 35
2 1 3 ~ 8 + (8 + 5) + (8 + 5 + 6) = 40
что означают цифры 37 35 40.... ?!?!

по моим прикидкам время обслуживания составит
5 + 8 + 6 = 19 минут!
что не так?! Откуда 37, 35 и т.д. ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.06.2010, 16:25   #8
f1UZ
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 13
По умолчанию

Собственно проф. и меня вот этим озадачил, но надо решать, деваться некуда...

Serge_Bliznykov - я вкурил, как проф. трактует эту задачу! Например:
- сколько будет ждать 2-ой клиент пока обслуживают 1-го клиента = (5) минут
- сколько будет ждать 3-ий клиент пока обслуживают 1 и 2-го клиента = (5 + 8) минут
- сколько всего придется ждать времени последнему клиенту учитывая и свое время, то есть (5 + 8 + 6)
Это все суммировать, дабы потом определить какой порядок лучше.

Вот собственно и откуда берутся эти числа, теперь необходимо проверить в каком порядке лучше начать обслуживание дабы общее время ожидания было минимальное.

Последний раз редактировалось f1UZ; 05.06.2010 в 16:40.
f1UZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввести несколько чисел (кол-во чисел запрашивать с экрана). Определить, сколько чисел, меньших заданного Lirika Помощь студентам 0 08.05.2010 21:39
Комбинаторика в Паскале shegan Помощь студентам 0 21.12.2009 21:01
Суммирование чисел из дочерней таблицы в родительскую Dendy702200 Microsoft Office Access 3 17.12.2009 12:11
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53
суммирование вводимых чисел в одной ячейке Albert Microsoft Office Excel 8 07.01.2007 23:47