Название: Результирующая последовательность из су Отправлено: Karl-Philipp от Декабрь 08, 2008, 00:33 Всем здравствуйте!
Есть несколько последовательностей неповторяющихся цифр: а) 1, 2, 6 б) 3, 2 в) 3, 4, 5 г) 1, 3, 5, 4 задача: требуется создать алгоритм определения результирующей последовательности, в которой могли разместиться большинство из данных последовательностей. То есть, что бы порядок следования цифр в результирующей не нарушал порядка цифр составляющих (последовательностей). Например, для приведеных последовательностей чисел результирующая последовательность может состоять из (а,б,в) вариантов и будет выглядеть так - (1 3 2 4 5 6). Кроме этого, возможен еще один вариант результирующей последовательности, состоящий из вариантов (а,б,г) - (1 3 2 5 4 6) Поиск результирующей последовательности будет основываться на полном переборе всех данных. Алгоритм представляю себе следующим образом: 1. Последовательность №1 будет взята за результирующую. 2. Проводится сравнение со последовательностью №2. Если порядок следования чисел не противоречит пос-ти №1 - разместить в результирующей числа из 2ой. Если порядок следования чисел различный (как в (в) и (г)), создать еще одну результирующую последовательность. 3. Проверить следующий номер последовательности на соответствие с имеющимися результирующими после-ми (перейти к п1.) Результирующая последовательность с максимальным количеством после-тей, которые в ней смогли разместиться будет представлять результат решения задачи. Подскажите, пожалуйста, не будет ли такой алгоритм поиска (перебора) медленным, если число последовательностей может достигать сотен тысяч, а количество цифр в каждой последовательности может колебаться от 2ух до 30, при этом количество результирующих последовательностей может достигать 0%-30% от всех имеющихся последовательностей? Может я велосипед изобретаю? :) Название: Re: Результирующая последовательность из су Отправлено: Tonal от Декабрь 08, 2008, 11:15 Схематично, вроде всё нормально, так что сделай реализацию и проверь. :)
Тут довольно много деталей, которые можно по разному реализовать. Хотя конечно странная задача. Состав и количество результирующих последовательностей очень сильно зависит от порядка появления последовательностей. |