Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: 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 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
2-1132495765
Дева
2005-11-20 17:09
2005.12.11
наследование?


14-1132235091
baks_uz
2005-11-17 16:44
2005.12.11
Память - 256 MB RAM ....


14-1132401904
Иксик
2005-11-19 15:05
2005.12.11
Очень странная проблема


11-1113926956
Zoom
2005-04-19 20:09
2005.12.11
Progress в статус бар формы


6-1125594470
Alex_Korn
2005-09-01 21:07
2005.12.11
Определение размера закачиваемого файла.