![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Есть буквы ABC как получить всевозможные варианты записи этих 4 букв
ABC ACB BAC BCA CAB CBA Так как текст может быть и не ABC... Код:
function faktorial(n: Integer): Integer; begin; if((n=0)OR(n=1)) then Result:=1 else Result:=n*faktorial(n-1); end; procedure TForm1.Button1Click(Sender: TObject); var variants, i:integer; begin i:=length(edit1.Text); //Длина текста variants:=faktorial(i); //Получаем макс. значение цикла for I := 1 to variants do begin {тут должен быть код который поменяет местами буквы так что бы не было одинаковых} end; end; Нет ничего не возможного. Вопрос только во времени... Последний раз редактировалось Electronic_Arts, 22.11.2010 в 18:43. |
#2
|
||||
|
||||
![]() Ребята помогите - такое же возможно - но как это реализовать не могу придумать - дайте хоть какую нить зацепку...
Нет ничего не возможного. Вопрос только во времени... |
#3
|
|||
|
|||
![]() Код:
const alf ='ABC'; var n1, n2,n3:integer; rs: string[3]; list: TStringList; list:=TstringList.Create; for n1:=1 to length(alf) begin rs[1]:=alf[n1]; for n2:=1 to length(alf) begin rs[2]:=alf[n2]; for n3:=1 to length(alf) begin rs[3]:=alf[n3]; list.add(rs); end; end; end; list.savetofile(....); |
#4
|
||||
|
||||
![]() Чисто виртуозно написано но не подходит
Код:
const alf ='ABC'; // не получится var n1, n2,n3:integer; rs: string[3]; // тоже не пойдет list: TStringList; list:=TstringList.Create; for n1:=1 to length(alf) {количество выполняемых циклов находим факториалом потому что 3 книжки можно разместить в полке 6ю разными способами} begin rs[1]:=alf[n1]; for n2:=1 to length(alf) begin rs[2]:=alf[n2]; for n3:=1 to length(alf) begin rs[3]:=alf[n3]; list.add(rs); end; end; end; list.savetofile(....); Но все же спасибо что старался помочь Нет ничего не возможного. Вопрос только во времени... |
#5
|
||||
|
||||
![]() Нет мистер MrDiG ты гений! Заметил что длина текста влияет на буквы - например - если текст состоит из 4 букв то каждая буква в ходе дела меняет свое место 4 раза - если еще размыслить то получиться!
Нет ничего не возможного. Вопрос только во времени... |
#6
|
||||
|
||||
![]() Нет мистер MrDiG ты не гений - ты тоже смертный - я поторопился с выводами - в твоем коде не то что куча ошибок но и не правильное присвоение...
Нет ничего не возможного. Вопрос только во времени... |
#7
|
||||
|
||||
![]() Какая макс длина строки тебе нужна?
|
#8
|
||||
|
||||
![]() 111 - не катит, 1 повторяется
112 - не катит, 1 повторяется 113 -... 121 -... 122 -... 123 + 131 - 132 + 133 - 211 - 212 - 213 + ... мб так? Т.е перебрать все комбинации всех индексов и исключить то, где индексы повторяются? ^_^ ...Тоже ступор, ниче более нормального чем рекурсивный перебор с исключением придумать не могу. А этот метод мягко говоря долгий будет... jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
![]() Думаю это то, что тебе надо:
http://algolist.manual.ru/maths/comb...rmutations.php А вообще, не работает своя голова - спроси у гугла. Та задача, которая тебе нужна, называется поиском перестановок. |