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

Zadanie lotka

Ostatnio zmodyfikowano 2014-05-07 02:34
Autor Wiadomość
heroarthur
Temat założony przez niniejszego użytkownika
Zadanie lotka
» 2014-05-06 23:25:17
Intrygujące jest to zadanie domowe z lotkiem. Zrobiłem to:

int main(){

    int liczba = 0;
    int al = 49;

    for(int a = 0; a < al; a++){
        for(int b = 0; b < al-1; b++){
            for(int c = 0; c < al-2; c++){
                for(int d = 0; d < al-3; d++){
                    for(int e = 0; e < al-4; e++){
                        for(int f = 0; f < al-5; f++){

                            liczba++;
                        }
                    }
                }
            }
        }
    }

    cout<<"liczba wszystkich mozliwosc i wylosowania 6 liczb to:   "<<liczba;
return 0;
}

ale jak się domyślacie to daje znacznie większą liczbę albowiem tutaj nie wypisze nam liczby wszystkich podzbiorów 6 elementowych, ale dodatkowo permutacje w tych podzbiorach. No dobra, to jak to zrobić zagnieżdżonymi pętlami?
P-109399
smoff
» 2014-05-07 01:04:44
Witam, również miałem problemy z tym zadaniem, a właściwie poprzednim które jest bardzo podobne. Zadanie z lotto rozwiązałem w ten sposób

#include <iostream>

int main()
{

int x= 0;

for (int a=1; a<=49; a++)
{
    for (int b=1; b<49; b++)
    {
        if (a>=b)
        continue;

        for (int c=1; c<=49; c++)
        {
            if (b>=c)
            continue;

            for (int d=1; d<=49; d++)
            {
                if (c>=d)
                continue;

                for (int e=1; e<=49; e++)
                {
                    if (d>=e)
                    continue;

                    for (int f=1; f<=49; f++)
                    {
                       if (e>=f)
                       continue;

                        x++;
                    }
                }
            }
        }
    }
}

std::cout << x;

return 0;
}


Zapewne można to zrobić w jakiś inny "ładniejszy" sposób, bez konieczności dopisywania continue do każdej pętli, ale na nic lepszego nie wpadłem.
P-109405
OSA_PL
» 2014-05-07 02:34:02
C/C++
int main()
{
    int liczba = 0;
    int al = 49;
   
    for( int a = 1; a <= al; a++ )
    for( int b = a + 1; b <= al; b++ )
    for( int c = b + 1; c <= al; c++ )
    for( int d = c + 1; d <= al; d++ )
    for( int e = d + 1; e <= al; e++ )
    for( int f = e + 1; f <= al; f++ )
         liczba++;
   
    cout << "liczba wszystkich mozliwosc i wylosowania 6 liczb to:   " << liczba;
    return 0;
}
P-109408
« 1 »
  Strona 1 z 1