Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 3.30 Liczenie możliwych wyników w lotto.

Ostatnio zmodyfikowano 2016-08-17 23:45
Autor Wiadomość
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. 
P-150956
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:
C/C++
#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 << a << ' ' << b << ' ' << c << ' ' << d << ' ' << e << ' ' << f << '\n';
                        }
                    }
                }
            }
        }
    }
    std::cout << liczbaWszystkichKombinacji << '\n';
}

P-150958
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ź !
P-150959
« 1 »
  Strona 1 z 1