Все возможные комбинации из наборов - PullRequest
1 голос
/ 10 марта 2012

У меня есть набор чисел:

1,22
1,46
32,1
1,9
32,22
1,14
1,45
1,33
33,22
45,22
32,46
32,9
3,1
3,9
3,22
3,32
3,46
9,22
46,22
46,45
46,33
15,1
15,46
15,6
15,22
15,3
15,9
15,45
15,33
15,32
15,14

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

Например, если у меня есть пара {15,1}, следующий может быть только {1,46}, а следующий {46,45}, и последняя пара должна заканчиваться первым числомвсего набора.В этом случае это может быть, например, {45,1}.

Таким образом, конечный результат наборов с ограничением на 4 набора будет

{15,1,1,46,46,45,45,1}

. Я могу делать базовые наборы мощности и генерировать всевозможные комбинации из набора чисел, но это кажется мне слишком сложным.

Я могу делать C, Javascript или PHP, поэтому вся помощь или решения для этого будут высоко оценены.И для пояснения, это не домашняя работа, это то, что я хотел бы выучить и понять.

1 Ответ

0 голосов
/ 10 марта 2012

Это выглядит так, как будто бы некоторая структура данных графа и некоторые алгоритмы графа были бы уместны.Ваш график будет содержать узлы (каждый из которых является числом) и ребра (каждый из которых представляет одну из ваших пар).Затем напишите соответствующую процедуру для обхода графика.Из вашего вопроса не совсем понятно, каковы правила прогулки, но я думаю, вы знаете.

РЕДАКТИРОВАТЬ

Конечно, я должен указать, что у вас уже есть данные графикаструктура, это называется список смежности .Google вокруг для алгоритмов и представлений.

...