Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Вывести все варианты перестановок?


Автор: BlHol 15.8.2007, 16:39
День добрый!
Наверняка, где-то здесь есть решение аналогичной задачи, но, увы, не нашел...
Итак. Есть массив из 3-х чисел, скажем {1,2,3}. Как отобразить все возможные варианты перестановок (каковых, естественно, n!)
с учетом того, что их (перестановки) нужно преобразовать в String

Заранее спасибо.
С уважением.

P.S. И до кучи вопрос. Догадываюсь, что подобных задачек до фига, но как часто алгоритмы, реализованные в этих задачках, встречаются в реальной жизни?

Автор: AntonSaburov 15.8.2007, 16:48
Ну тут - http://algolist.manual.ru/maths/combinat/

И вот - http://algolist.manual.ru/maths/combinat/permutations.php

Автор: ChessMaster 15.8.2007, 16:52
Первым на ум всегда приходит самый сложный метод вот он:
представь, что твоя строка это число с основанием n. Скажем для твоего 1,2,3:

abc= 123,231, и так далее

сделай, приоритеты типа 1++=2, 2++=3, 3++ = 11

Найди минимум= 111.
Найди максимум=333.

Фо ту ду сделает всю грязную работу за тебя.


P.S. Это если ехать в питер из москвы через владивостокsmile   

Автор: AntonSaburov 15.8.2007, 16:55
Цитата(BlHol @  15.8.2007,  16:39 Найти цитируемый пост)
как часто алгоритмы, реализованные в этих задачках, встречаются в реальной жизни?

Встречаются - не могу сказать, что очень часто. Но бывает.

Автор: BlHol 17.8.2007, 17:26
Спасибо огроменное. Только, вот, проблема: приведенный в ссылке паскальный код (перебитый в JAVA) нормально не срабатывает, паразит. А конкретно, если N=3, то выдает только 4 перестановки из 6-ти.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)