Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.033 c
1-1131684367
Er
2005-11-11 07:46
2005.12.11
Выделение компонентов


14-1132673206
ArtemESC
2005-11-22 18:26
2005.12.11
Готовность устройства...


2-1132577634
JTAG
2005-11-21 15:53
2005.12.11
Получил из com порта байты данных , заполнил ими массив


14-1131946078
mmms
2005-11-14 08:27
2005.12.11
Delphi 2006 уже в продаже! 926$


10-1109040291
rosl
2005-02-22 05:44
2005.12.11
строки из word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский