Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.12.2008, 16:27
lovop lovop вне форума
Прохожий
 
Регистрация: 03.12.2008
Сообщения: 3
Репутация: 10
По умолчанию Как сделать генератор комбинаций?

Как сделать генератор комбинаций?
Есть такая наука - комбинаторика.
Есть строка: chars4generation = "as";
Есть число (тип int): generation_length = 2;
Строка chars4generation - это символы для генерации комбинаций.
Число generation_length - это длина генерируемой комбинации.
В этом примере должно быть так:
aa
as
sa
ss
Как сделать такую штуку?
Ответить с цитированием
  #2  
Старый 03.12.2008, 16:36
Act Act вне форума
Новичок
 
Регистрация: 01.11.2008
Сообщения: 72
Репутация: 10
По умолчанию

не наука а область из терии вероятности.
В твоем примере представлен просто пример составления всех возможных комбинаций...

Последний раз редактировалось Act, 03.12.2008 в 16:44.
Ответить с цитированием
  #3  
Старый 03.12.2008, 16:43
lovop lovop вне форума
Прохожий
 
Регистрация: 03.12.2008
Сообщения: 3
Репутация: 10
По умолчанию Как сделать такую штуку без рекурсии?

Как сделать такую штуку без рекурсии?
Ответить с цитированием
  #4  
Старый 03.12.2008, 17:07
Act Act вне форума
Новичок
 
Регистрация: 01.11.2008
Сообщения: 72
Репутация: 10
По умолчанию

Код:
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;
ну как то так, спать хочу вроде работает проверять больше лень. Работает правда только для 2 символов.

Последний раз редактировалось Act, 03.12.2008 в 17:10.
Ответить с цитированием
  #5  
Старый 03.12.2008, 20:09
lovop lovop вне форума
Прохожий
 
Регистрация: 03.12.2008
Сообщения: 3
Репутация: 10
По умолчанию

а как сделать чтобы работала на "сколько угодно" символов?
Ответить с цитированием
  #6  
Старый 04.12.2008, 06:47
Act Act вне форума
Новичок
 
Регистрация: 01.11.2008
Сообщения: 72
Репутация: 10
По умолчанию

незнаю как без рекурсии, но с рекурсией так:
Код:
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  
Старый 04.12.2008, 07:50
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

Act спасибо пригодится для чего нить
Ответить с цитированием
  #8  
Старый 04.12.2008, 10:47
Act Act вне форума
Новичок
 
Регистрация: 01.11.2008
Сообщения: 72
Репутация: 10
По умолчанию

а вот готовый вариант =) http://esoft.bplaced.net/uploads/fil...t/project1.exe
Ответить с цитированием
  #9  
Старый 04.12.2008, 11:52
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

Ну тогда исходник в студию, для полного фарша
Ответить с цитированием
  #10  
Старый 04.12.2008, 13:18
Act Act вне форума
Новичок
 
Регистрация: 01.11.2008
Сообщения: 72
Репутация: 10
По умолчанию

а чо там сорсы, всё самое главное уже выложил. А в той проге прост оболочку сделал для этого
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:34.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter