Pomocy,jestem zielony !

0

Drodzy koledzy i kolezanki ,
Mam nie maly problem.Probuje sie nauczyc samemu programowac w CPP.Pisze sobie wlasnie jeden maly programik z zakresu lotka i stanalem wlasnie w miejscu z ktorego nie moge za grosz dalej ruszyc.
Czy bylibyscie w stanie pomoc mi w tej przedmiotowej sprawie ?

Otoz jak wiadomo w lotto trzeba zakreslic szesc liczb by trafic szostke!
W moim programie musi powstawac mozliwosc wyboru dowolnej ilosci liczb bioracych udzial w grze.

Przyklad 1:

Do gry wybrano osiem nastepujacych liczb: 1, 8, 13, 21, 24, 28, 33, 47.
Co musze zrobic aby program ten wypisal mi z tych osmiu liczb wszystkie!mozliwe kombinacje szostkowe?
tzn:
1,8,13,21,24,28
1,8,13,21,24,33
1,8,13,21,24,47
1,8,13,21,28,33
1,8,13,21,28,47
1,8,13,21,33,47
1,8,13,24,28,33
1,8,13,24,28,47.....idt,
... bis:
13,21,24,28,33,47

Przyklad 2:
Do gry wzieto wszystkie liczby od 1 do 49 wlacznie.
W tym przypadku powstanie az 13.983.816 kombinacji szostkowych !
Jak mam to zrobic by program ten wypisal mi te milony szeregow szostkowych?

Jesli bylibyscie w stanie podielic sie ze mna swoim doswiadczeniem
bylbym niezmiernie wdzieczny.

Niezaleznie od przebiegu przedmoitowej sprawy, z gory dziekuje i pozdrawiam Was wszystkich.
Jurek Przybylski :( {glowa} );

0

powiem tylko tyle - poczytaj o rachunku prawdopodobienstwa - konkretnie chodzi mi o polaczenie kombinacji z wariacjami z powtorzeniem

0

Kawencja ;)
Nie wiem jak to byłoby w C++, ale w Pascal'u napisałbym to tak :

Var
Liczba : Array[1..IloscLiczb] Of Byte; { IloscLiczb= np 8 }
{ w kolejne komórki tablicy Liczba[] wpisz liczby do kombinacji }

Procedure GENERUJ;
Var
x1,x2,x3,x4,x5,x6 : Byte;

Begin
For x1:=1 To (IloscLiczb-5) Do Begin
For x2:=x1+1 To (IloscLiczb-4) Begin
For x3:=x2+1 To (IloscLiczb-3) Begin
For x4:=x3+1 To (IloscLiczb-2) Begin
For x5:=x4+1 To (IloscLiczb-1) Begin
For x6:=x5+1 To IloscLiczb Begin

Writeln(Liczba[x1]:2,'-',Liczba[x2]:2,'-',Liczba[x3]:2,'-',Liczba[x4]:2,'-',Liczba[x5]:2,'-',Liczba[x6]:2'-',);

End; { dla x6 }
End; { dla x5 }
End; { dla x4 }
End; { dla x3 }
End; { dla x2 }
End; { dla x1 }
End; { koniec procedury }

Mam nadzieję , że przełożysz to na C++
Powodzenia w losowaniach :P --Pawlik67
Zapraszam :-)
www.vebso.pl
UŻYTKOWNIK 9969489

0

Proponuję nie zawracać sobie tym głowy. Wyników jest ogromna ilość.
Naukę zacząć lepiej od czegoś bardziej rzeczywistego - może prosty edytor tekstów?
Ale drugie zadanie (dla trzech liczb) w C wyglądałoby tak:
int a, b, c;
for (a=1; a&lt50; a++)
for (b=1; b&lt50; b++)
for (c=1; c&lt50; c++)
{
AnsiString X, y;
y=a;
X=y;
y=b;
X+=y;
y=c;
X+=y;
RichEdit1-&gtItems-&gtAdd(X);
}

oczywiście na formie musi być umieszczona instancja komponentu klasu TRichEdit o nazwie RichEdit1. Możliwe że pomyliłem się i zamiast Items ma być Lines.

1 użytkowników online, w tym zalogowanych: 0, gości: 1