|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.05.2011, 14:38 | #1 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
Дискретная математика
Есть набор (1,5)(1,6)(5,5)(2,4)(2,4) не может быть размещён в строке.Однако если добавить (2,5), то полученный набор можно можно разложить в следующей строке6,1)(1,5)(5,5)(5,2)(2,4)(4, 2).
Задача состоит в том , чтобы написать программу, которая для данного набора домино найдёт дополнительный набор, чтобы строка могла быть размещена с обоими объединёнными наборами блоков. Сумма чисел дополнительного набора должна быть минимальна. Однако если вместо части (2,5) с суммой 7, добавить две части (1,2) с полной суммой 6 то можно разложить так: (5,5)(5,1)(1,2)(2,4)(4,2)(2,1)(1,6) <-вот это и надо получить. Чёт я не очень представляю как её делать, подскажите алгоритм, или в какую сторону копать. З.Ы. язык си++ =) Последний раз редактировалось sover; 18.05.2011 в 10:51. |
18.05.2011, 03:05 | #2 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
Помогите хотя бы с алгоритмом, или где поискать.
|
18.05.2011, 12:09 | #3 |
Форумчанин
Регистрация: 10.06.2010
Сообщений: 239
|
А почему у тебя в колоде повторяющиеся доминоошки есть (2,4)?
Видимо надо создать функцию которая принимает два параметра: первый текущая "доминошка" и массив не использованных доминошек, функция ищет в массиве след доминошку и рекурсивно себя вызывает. По окончанию работы функции должно получиться три параметра: значение первого числа в последовательности, значение последнего числа последовательности, массив не использованных доминошек. В основной программе запускаеш вышеописаную функцию с первой доминошкой и массивом из всех остальных, потом снова запускаешь ее же с параметрами: первой доминошкой из неиспользованной последовательности и массивом неиспользованных доминошек без первой. В результате у тебя должно получиться четыре числа: начало и конец первой последовательности и начало и конец второй последовательности. Из них надо найти минимальную сумму - это и будет ответ.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
|
18.05.2011, 13:16 | #4 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
|
18.05.2011, 13:22 | #5 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
KobolD алгоритм который ты предложил не подходит, если делать так как ты говоришь то получится примерно следующее (6,5) (2,2) между ними можно поставить (2,5).
Однако если вместо части (2,5) с суммой 7, добавить две части (1,2) с полной суммой 6 то можно разложить так: (5,5)(5,1)(1,2)(2,4)(4,2)(2,1)(1,6) <-вот это и надо получить. вот в этом и заключается проблема, в задании говорится что сумма должа быть как можно меньше. |
27.05.2011, 08:05 | #6 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
неужели никто с подобным не сталкивался ?
|
27.05.2011, 10:14 | #7 |
Пользователь
Регистрация: 15.07.2010
Сообщений: 74
|
Так у тебя же есть алгоритм-если есть две домино со значениями (A,B)-(C,D) и A,B,C,D не совпадают
то надо добавить (B,1),(1,C) или (B,C) при этом B,C должны быть минимумами в своих костяшках Естественно надо посчитать, что больше и добавить меньшее |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
дискретная математика. | 13xXx13 | Помощь студентам | 1 | 26.03.2011 12:51 |
Дискретная математика | ttjke | Фриланс | 3 | 11.10.2010 20:41 |
Дискретная математика | Viteef | Фриланс | 4 | 22.06.2010 23:39 |
Дискретная математика | azmega | Фриланс | 2 | 19.05.2010 14:52 |
Дискретная математика | А.С.О | Помощь студентам | 1 | 24.06.2009 18:56 |