string değerler içeren değişken bir dizi ile (örneğin 4 elemanlı) elamanları birbirinden farklı (örneğin 3'erli) gruplar oluşturmak istiyorum.
örnek:
elemanlar:ahmet, mehmet, ayşe, veli
gruplar
ahmet,mehmet,ayşe
ahmet,mehmet,veli
ahmet,ayşe,veli
mehmet,ayşe,veli
Araştırmalarıma göre, kombinasyonu oluşturabilmek için recursive denen bir yöntemle kendini yineleyen döngüler oluşturulmuş
fakat genelde örnekler integer değerlerle yapılmış. Maalesef bulduğum bu örnekleri kendi isteğime göre uyarlayamadım.
En yakın bulduğum kod: @t-hex 2005 yılında 49'un 6'lı kombinasyonu nasıl yapılır sorusuna cevaben yazmış...
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
const
TOPLAMSAYI = 49;
ELEMANSAYISI = 6;
procedure recurse(num:byte;toplam:byte; bool : boolean;S:String);
begin
if bool then s := s+inttostr(num)+',';
if toplam = ELEMANSAYISI then begin
listbox1.items.add(s);
exit;
end;
if num = TOPLAMSAYI then exit;
recurse(num+1,toplam+1,true,s);
recurse(num+1,toplam,false,s);
end;
var
s:string;
begin
s := '';
recurse(0,0,false,s);
end;
delphi sürümü: xe7