Мне нужно найти самую длинную цепочку домино, учитывая набор из 12 случайно выбранных домино. Я уже рекурсивно генерировал все возможности домино (существует 91 возможность использования граничных значений от 0 до 12). Домино состоит из одного «кирпича» с двумя квадратами на нем: [a | b], где 0 = < a, b < = 12. Таким образом, примером домино может быть [12, 0] или [6, 3] и т. д. Домино может соединяться, если соседние половинки имеют одинаковое значение.Самая длинная цепочка домино/последовательность
Домино может быть перевернуто для обеспечения соответствия. Например, данные [8, 4], [9, 4] могут быть перевернуты, чтобы сделать пару [8, 4] [4, 9]
Следующие методы (относящиеся к этому вопросу) доступны для этого класса :
void flipEnds(); // Flips the domino
int getLeft() const;
int getRight() const;
bool hasBeenPlayed() const;
void setPlayed(bool value);
Таким образом, выборочные данные для этой задачи будет выглядеть следующим образом:
myDomino #0: [1 12 ]
myDomino #1: [0 5 ]
myDomino #2: [7 9 ]
myDomino #3: [2 7 ]
myDomino #4: [7 12 ]
myDomino #5: [4 8 ]
myDomino #6: [8 10 ]
myDomino #7: [3 11 ]
myDomino #8: [11 12 ]
myDomino #9: [10 11 ]
myDomino #10: [2 9 ]
myDomino #11: [2 4 ]
Это больше проблемы математики, но как я могу найти самую длинную цепочку домино? Я предполагаю, что это нужно сделать рекурсивно.
Пожалуйста, поделитесь некоторым кодом, который вы уже написали, который не работает, и, возможно, мы можем указать на ваши ошибки. Даже псевдокод - хорошее начало. Вы не найдете большой поддержки здесь, чтобы написать первый проект своего кода для вас. –
Приношу свои извинения, я не должен был быть ясен. Я написал весь код, чтобы настроить домино (нахождение всех 91 возможных отдельных домино и нахождение 12 случайных). Мой вопрос должен был быть сформулирован: «Могу ли я попросить несколько предложений о том, как начать этот метод поиска самой длинной последовательности?» Я, конечно, не искал, чтобы кто-то выполнял мою работу :) Извините! – user3083948