Lekcja 3.30 Liczenie możliwych wyników w lotto.
Ostatnio zmodyfikowano 2016-08-17 23:45
khoam Temat założony przez niniejszego użytkownika |
Lekcja 3.30 Liczenie możliwych wyników w lotto. » 2016-08-17 22:54:14 W pracy domowej do lekcji dotyczącej pętli zagnieżdżonych ostatnie zadnie polega na napisaniu programu który wyliczy ilość wszystkich możliwych wyników w lotto czyli po prostu kombinacje 6 z 49. Sęk w tym,że należy użyć pętli for zamiast zwykłego wzoru. O ile dałem sobie rade z poprzednimi zadaniami to nie mam pojęcia jak zabrać się do problemu z totkiem. Na chłopski rozum trzeba by było zrobić warunek ,który sprawdzałby czy dana kombinacja padła już wcześniej. Wymagałoby to zapisywania kombinacji w zbiorach liczb które przechowywałyby tylko informacje o liczbach w nich zawartych bez kolejności czego nie mam pojęcia jak dokonać po wcześniejszych lekcjach kursu. Nie mówiąc już o tym jak nieefektywne i pamięciożerne byłoby przechowywanie i sprawdzanie za każdym powtórzeniem pętli milionów kombinacji. Mam wrażenie ,że przesadnie skomplikowałem sobie problem dlatego prosiłbym kogoś o podanie przykładu kodu który by spełniał wymogi zadania i wykorzystywał metody pokazane we wcześniejszych lekcjach kursu. |
|
carlosmay |
» 2016-08-17 23:15:37 Nie trzeba żadnych warunków sprawdzających. Zagnieżdżasz sześć poziomów pętli, gdzie każda następna ma inicjalizowany licznik o jeden większy od poprzedniej. W najbardziej zagnieżdżonej inkrementujesz zmienną liczby wszystkich kombinacji. Mam wrażenie ,że przesadnie skomplikowałem sobie problem |
Zdecydowanie tak! dlatego prosiłbym kogoś o podanie przykładu kodu który by spełniał wymogi zadania i wykorzystywał metody pokazane we wcześniejszych lekcjach kursu. |
Zadanie nie wymaga nawet wiedzy spoza tej jednej lekcji. Proszę kod: #include <iostream>
int main() { int liczbaWszystkichKombinacji { }; int maksLiczb { 49 }; for( int a = 1; a <= maksLiczb; ++a ) { for( int b = a + 1; b <= maksLiczb; ++b ) { for( int c = b + 1; c <= maksLiczb; ++c ) { for( int d = c + 1; d <= maksLiczb; ++d ) { for( int e = d + 1; e <= maksLiczb; ++e ) { for( int f = e + 1; f <= maksLiczb; ++f ) { ++liczbaWszystkichKombinacji; } } } } } } std::cout << liczbaWszystkichKombinacji << '\n'; } |
|
khoam Temat założony przez niniejszego użytkownika |
» 2016-08-17 23:45:05 Rzeczywiście o wiele prostsze niż się wydawało. Wielkie dzięki za szybką odpowiedź ! |
|
« 1 » |