|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
а чо там сорсы, всё самое главное уже выложил. А в той проге прост оболочку сделал для этого
|