![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Как сделать генератор комбинаций?
Есть такая наука - комбинаторика. Есть строка: chars4generation = "as"; Есть число (тип int): generation_length = 2; Строка chars4generation - это символы для генерации комбинаций. Число generation_length - это длина генерируемой комбинации. В этом примере должно быть так: aa as sa ss Как сделать такую штуку? |
|
#2
|
|||
|
|||
|
не наука а область из терии вероятности.
В твоем примере представлен просто пример составления всех возможных комбинаций... Последний раз редактировалось Act, 03.12.2008 в 16:44. |
|
#3
|
|||
|
|||
|
Как сделать такую штуку без рекурсии?
|
|
#4
|
|||
|
|||
|
Код:
var s,
r: string;
leng,
i,j,l : integer;
begin
s:= inputbox('Input string', 'string here plz', 'as');
leng := Length(s);
i := 1; j := 0;
while i <= leng do
begin
for j:= 1 to leng do
begin
r:='';
for l := 1 to Leng do
begin
r := s[j] + s[i];
end;
memo1.Lines.Add(r)
end;
inc(i);
end;Последний раз редактировалось Act, 03.12.2008 в 17:10. |
|
#5
|
|||
|
|||
|
а как сделать чтобы работала на "сколько угодно" символов?
|
|
#6
|
|||
|
|||
|
незнаю как без рекурсии, но с рекурсией так:
Код:
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure replacer( dep : integer);
public
{ Public declarations }
end;
var
Form1: TForm1;
r,s : string;
len : integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
begin
s := Inputbox('','','asd');
len := Length(s);
replacer(0);
end;
procedure TForm1.replacer( dep : integer);
var i : integer;
begin
inc(dep);
for I:= 1 to Len do
begin
r := r + s[ i ];
if dep < len then replacer(dep);
if dep = len then memo1.Lines.Add(r);
delete (r, len,1);
end;
dec(dep);
delete(r, dep, len-dep);
end; |
|
#7
|
||||
|
||||
|
Act спасибо пригодится для чего нить
![]() |
|
#8
|
|||
|
|||
|
а вот готовый вариант =) http://esoft.bplaced.net/uploads/fil...t/project1.exe
|
|
#9
|
||||
|
||||
|
Ну тогда исходник в студию, для полного фарша
![]() |
|
#10
|
|||
|
|||
|
а чо там сорсы, всё самое главное уже выложил. А в той проге прост оболочку сделал для этого
|