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

[Rozdział 30] Problem z "Totolotkiem"

Ostatnio zmodyfikowano 2015-01-12 18:51
Autor Wiadomość
luuuzik
Temat założony przez niniejszego użytkownika
[Rozdział 30] Problem z "Totolotkiem"
» 2015-01-12 18:28:46
Witam, napisałem program obliczający ilość możliwych kombinacji w Totolotku z zadania, jednakże zamiast 13 983 816 kombinacji, wyrzuca mi 16 122 225 kombinacji. Oto kod:
C/C++
#include <iostream>
using namespace std;

int main()
{
    int a, b, c, d, e, f, ilosc_liczb = 0;
    cout << "Totolotek, a oto mozliwe kombinacje: " << endl;
    for( a = 1; a < 50; a++ ) // pierwsza liczba
    {
        ilosc_liczb += 1;
        for( b = 1; b < 50; b++ ) // druga liczba
        {
           
            if( a > b || a == b )
                 continue;
           
            ilosc_liczb += 1;
            for( c = 1; c < 50; c++ ) // trzecia liczba
            {
               
                if( b > c || b == c )
                     continue;
               
                ilosc_liczb += 1;
                for( d = 1; d < 50; d++ ) // czwarta liczba
                {
                   
                    if( c > d || c == d )
                         continue;
                   
                    ilosc_liczb += 1;
                    for( e = 1; e < 50; e++ ) // piata liczba
                    {
                       
                        if( d > e || d == e )
                             continue;
                       
                        ilosc_liczb += 1;
                        for( f = 1; f < 50; f++ ) // szosta liczba
                        {
                            if( e > f || e == f )
                                 continue;
                           
                            ilosc_liczb += 1;
                           
                           
                        }
                    }
                }
               
            }
        }
    }
    cout << "Ilosc liczb wynosi: " << ilosc_liczb << endl;
    return 0;
}

Gdzie popełniłem błąd?
P-124746
killjoy
» 2015-01-12 18:39:47
Ilość permutacji powinieneś liczyć tylko w najbardziej zagnieżdżonej pętli. Swoją drogą strasznie przekombinowałeś :D
Prostsze rozwiązanie:
C/C++
#include <iostream>
using namespace std;



int main()
{
   
    long long Perm = 0;
   
    for( int n1 = 1; n1 <= 49; n1++ )
    for( int n2 = n1 + 1; n2 <= 49; n2++ )
    for( int n3 = n2 + 1; n3 <= 49; n3++ )
    for( int n4 = n3 + 1; n4 <= 49; n4++ )
    for( int n5 = n4 + 1; n5 <= 49; n5++ )
    for( int n6 = n5 + 1; n6 <= 49; n6++ )
         Perm++;
   
   
    cout << Perm << endl;
   
   
    return 0;
}
P-124748
luuuzik
Temat założony przez niniejszego użytkownika
» 2015-01-12 18:51:15
Dzięki :D Wszystko teraz działa, a co do kombinowania to lubię wszystko rozpisywać wtedy mniej błędów robię :P Może z czasem nauczę się pisać krótsze i lepsze kody :)
P-124750
« 1 »
  Strona 1 z 1