Вниз
Скачать: CL | DM;

Перестановки...   Найти похожие ветки 

← →
Chuvak ©   (2005-11-20 18:28) [0]

Подскажите, как найти все возможные перестановки букв в строке x. Интересует реализация на языке Паскаль. хоть идею подкиньте, а то я чёт совсем запутался... По идее общее кол-во таких строк будет length(x)!...А вот как их все перебирать не врублюсь...


← →
Anatoly Podgoretsky ©   (2005-11-20 18:36) [1]

Похоже на лабораторную, только вот не все условия указаны.


← →
Chuvak ©   (2005-11-20 18:47) [2]

Anatoly Podgoretsky ©   (20.11.05 18:36) [1]
Вы правы, сэр...
меня иетересует сам алгоритм перестановки...


← →
TUser ©   (2005-11-20 19:26) [3]

Не тестировал, может случайно троян получился. Так что код прочитай прежде чем запускать.

procedure PrintAll (S: string; Prefix: string = "");
var i: integer;
begin
 if length(S) <= 1 then begin
   writeln (Prefix + S);
   exit;
   end;

 for i:=1 to length(S) do
   PrintAll (copy(S,1,i-1)+copy(S,i+1,MaxInt),Prefix+S[i]);
end;

PrintAll ("any text");


← →
Chuvak ©   (2005-11-20 20:00) [4]

TUser ©   (20.11.05 19:26) [3]
Спасибо, разобрался...
Насчёт трояна не смешно...


← →
Uncle Archi ©   (2005-11-20 21:09) [5]

Самый лучший вариант, по-моему таков.
Он не содержит рекурсии и легко понимается.
Хотя долго работает.

Допустим, у нас есть строка длиной 4.
Представим число 0123 в системе счисления(СС) с основанием 4, сопоставив каждому числу знак из строки.
Теперь начинаем увеличивать число по правилам соответствующей СС.
Если нет одинаковых чисел, -> следующая перестановка.
Например:

0123
0130 - не подходит
0131 - не подходит
0132 - следующая
0213
0231
....



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-1132659449
Quadro
2005-11-22 14:37
2005.12.11
Требуется довести до ума небольшую программу на Дельфи 7


14-1132357774
Nous Mellon_
2005-11-19 02:49
2005.12.11
Вопрос по настройке прав


4-1128481280
Rentgen
2005-10-05 07:01
2005.12.11
Изменить настройки БИОСа компьютера через RS232


4-1128858993
ArtemESC
2005-10-09 15:56
2005.12.11
Создание панелей


3-1130097537
redlord
2005-10-23 23:58
2005.12.11
последовательная обработка данных




   Наверх