powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите составить алгоритм.
13 сообщений из 13, страница 1 из 1
Помогите составить алгоритм.
    #36214872
Cerber-88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть задачи такова:
Есть таблица 5х50
12345№1124793№23615105№3361714..................№503426127
неоходимо вырать из каждого столбца по три значение, что бы их сумма(15 значений) была максимальна. Но... нельзя выбирать два значения из одной строки. Я надеюсь понятно описал.

Помогите составить алгоритм расчета.
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215003
ананисто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мы надеемся, что тебя отчислят.
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215024
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сортируем 5 столбцов по убыванию.
Затем сортируем столбцы по суммам 3-х максимальных чисел.
Т.е.
24 21 12 9 2

9 8 5 4 1
8 7 4 3 1
7 6 3 2 0

затем берём 1,2,3 из 1-го,
4,5,6 из 2-го, и т.д.
Это и будет максимальная сумма непересекаемых.
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215047
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruСортируем 5 столбцов по убыванию.
Затем сортируем столбцы по суммам 3-х максимальных чисел.
Т.е.
24 21 12 9 2

9 8 5 4 1
8 7 4 3 1
7 6 3 2 0

затем берём 1,2,3 из 1-го,
4,5,6 из 2-го, и т.д.
Это и будет максимальная сумма непересекаемых.нет: 4,5 и 6-й второго столбца могут быть слишком маленькими
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215064
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напоминает задачу о назначениях... Возможно, надо как-то модифицировать алгоритм для нее.
Или попробовать прикрутить симплекс-метод...

В общем, из этой категории что-то.
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215070
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
второй столбец тоже отсортирован ведь по убыванию

Naf[quot AlexGru]4,5 и 6-й второго столбца могут быть слишком маленькими

все дело в сортировке.

a1 b1
a2 b2
a3 b3
a4 b4
a5 b5
a6 b6

если a1>a1>a3... и
b1>b2>b3.... и
a1+a2+a3>b1+b2+b3, то
берём вообще самую максим. тройку a1,a2,a3 тогда из столбца b нам запрещено брать b1,b2,b3
остается b4,b5,b6.

Открываем биореактор.
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215128
Cerber-88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruвторой столбец тоже отсортирован ведь по убыванию

если a1>a1>a3... и
b1>b2>b3.... и
a1+a2+a3>b1+b2+b3, то
берём вообще самую максим. тройку a1,a2,a3 тогда из столбца b нам запрещено брать b1,b2,b3
остается b4,b5,b6.


А как отсортироваль пять столбцов, не меняя их индексы?
a1 b1 с1
a2 b2 с2
a3 b3 с3
a4 b4 с4
Допустим отсортировали столбец а, получили:
a2 b2 с2
a3 b3 с3
a1 b1 с1
a4 b4 с4 т.е. а2>a3>a1>a4. Но стольбец b и с у нас не отсортированы!!
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215145
Cerber-88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конечно можно перебором всех возможных значений, но это очень долго!
Это получается 50!/(50-15)! итераций. как-то многовато. =)
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215159
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerber-88.

Что значит не меняя их идексы.
Это уже после сортировки.
a1 b1
a2 b2
a3 b3
a4 b4
a5 b5
a6 b6

Если речь идёт о строках как о векторах, т.е при поднятии первого элемента по первому столбцу,
мы должны двигать весь вектор, тогда это другая задача.

Биореактор пока держим открытым.
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215172
Cerber-88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGru

Биореактор пока держим открытым.

Вы меня видимо не правлино поняли.
Речь как раз и идёт о строках как о векторах, т.е при поднятии первого элемента по первому столбцу, мы должны двигать весь вектор. Вот в этом то вся и загвоздка...
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215240
junior idiot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный МечНапоминает задачу о назначениях... Возможно, надо как-то модифицировать алгоритм для нее.
Или попробовать прикрутить симплекс-метод...

В общем, из этой категории что-то.
Именно так и есть.
Симплекс-метод поможет, но в нем нет необходимости.
Можно обойтись венгерским методом (см. тут например: http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=hungarianAlgorithm ).
Единственное, что надо учесть -- это то, что каждый "рабочий" (столбец) может "выполнять" не одну, а сразу три "работы". Это делается элементарно -- каждому столбцу в соответствие ставится сразу три вершины левой доли графа ("рабочих"), с одинаковыми весами исходящих дуг.
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36215326
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя так?
Заводим 5 глоб переменных, счетчики для каждого из столбцов.

1) ищем 5 максим чисел по всей матрице.(чтобы не больше одного числа на вектор)
считаем из этих 5-ти векторов, сколько максимумов приходится на соотв. столбец.
например 1 2 1 2 1
Выбранные вектора исключаем из дальнейшего поиска.

и так ещё столько раз пока.

пока. не будет 3 3 3 3 3
...
Рейтинг: 0 / 0
Помогите составить алгоритм.
    #36216193
Фотография Гусар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
слабых людей не надо тащить, пусть идут рабочими
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите составить алгоритм.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]