Witam,
Potrzebuję napisać z założenia prostą procedurę która wygeneruje wszystkie możliwości. Dla ułatwienia niech to będzie gra w dużego lotka :)
robię więc coś takiego :
zbiorOd : integer = 1;
zbiorDo : integer = 49;
iloscSkreslen : byte := 6;
Zrobiłem coś takiego (jak niżej), choć jest to ze tak powiem bardzo nie elastyczne i nie estetyczne :) ale przedstawia zasadę działania.
for i:=zbiorOd to zbiorDo-iloscSkreslen+1 do // 1 liczba
for i1:=i+1 to zbiorDo do // 2 liczba
for i2:=i1+1 to zbiorDo do // 3 liczba
for i3:=i2+1 to zbiorDo do // 4 liczba
for i4:=i3+1 to zbiorDo do // 5 liczba
for i5:=i4+1 to zbiorDo do // 6 liczba
begin
inc(iloscMozliwosci);
{
tutaj miało być to,
s:=IntToStr(i)+' '+
IntToStr(i1)+' '+
IntToStr(i2)+' '+
IntToStr(i3)+' '+
IntToStr(i4)+' '+
IntToStr(i5);
ale nie radzę tego uruchamiać, bo trochę to czasu może zająć :) Oryginalnie zakresy będą o wiele mniejsze, ale mniej więcej tak ma to wygladać :)
w takim wypadku dla sprawdzenia chociaz ilosc kombinacji :)
}
end;
O dziwo to wszystko działa - dla dużego lotka ilość kombinacji to 13983816 :)
OK, jak to wszystko złożyć w jedną całość?? I zrobić z tego procedurkę uniwersalną dla różnych zbiorów i ilości typowanych liczb??