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

Rozdział 30

Ostatnio zmodyfikowano 2013-12-12 12:51
Autor Wiadomość
Bimbol
Temat założony przez niniejszego użytkownika
Rozdział 30
» 2012-10-24 20:43:45
Witam,
przeanalizowałem już cały 30 rozdział i stoję na tym zadaniu.

"Napisz program, który zliczy liczbę możliwych kombinacji wylosowania 6 liczb ze zbioru 49 liczb (reasumując: rozpatrujesz problem popularnej gry liczbowej Lotto). Zadanie należy rozwiązać przy pomocy zagnieżdżonych pętli (nie można używać wzoru)."

A dokładniej nie chodzi o problemy z napisaniem tego, tylko nie rozumiem zbytnio polecenia.
PS. Nie wiem o co chodzi z Lotto :D

Za wytłumaczenie będę wdzięczny :)
P-67414
jsc
» 2012-10-24 20:48:33
Masz wygenerować wszystkie możliwe losowania i je policzyć.
P-67415
Eluzive
» 2012-10-24 21:22:25
Masz 49 liczb.
Za kazdym razem losowanych jest 6 liczb.
Masz policzyc wszystkie mozliwe losowania.
P-67426
Soberowy
» 2013-02-09 21:14:44
<< removed by xevuel - załóż własny temat >>
P-76053
Geniusz
» 2013-02-09 22:17:25
Ja przy tym zadaniu stworzyłem taki kod ale nie jestem pewny czy zrobiłem to poprawnie, gdyż ilość możliwych kombinacji nie zgadza się z tym ile powinno być.

C/C++
#include <iostream>
int main()
{
    int a = 49;
    int iSuma = 0;
   
    for( int b = 1, a = 49; b <= a; b++ )
    {
        for( int c = 1, a = 48; c <= a; c++ )
        {
            for( int d = 1, a = 47; d <= a; d++ )
            {
                for( int e = 1, a = 46; e <= a; e++ )
                {
                    for( int f = 1, a = 45; f <= a; f++ )
                    {
                        for( int g = 1, a = 44; g <= a; g++ )
                        {
                            iSuma++;
                        }
                    }
                }
            }
        }
    }
   
    std::cout << "Ilosc mozliwosci : " << iSuma;
   
    return 0;
}


Ilosc mozliwosci : 1478412928
Process returned 0 (0x0)   execution time : 25.234 s
Press any key to continue.
P-76055
wojteks86
» 2013-02-10 01:25:26
Nie wiem czy dobrze mysle, ale z twojego programu wychodzi ze jedna liczba moze zostac wylosowana wiecej niz jeden raz.

Moj wyglada tak i zmiescilem sie w przedziale:

C/C++
int main()
{
    int i = 0;
    for( int p1 = 1; p1 < 50; ++p1 )
    {
        for( int p2 = p1 + 1; p2 < 50; ++p2 )
        {
            for( int p3 = p2 + 1; p3 < 50; ++p3 )
            {
                for( int p4 = p3 + 1; p4 < 50; ++p4 )
                {
                    for( int p5 = p4 + 1; p5 < 50; ++p5 )
                    {
                        for( int p6 = p5 + 1; p6 < 50; ++p6 )
                        {
                            //cout << p1 << "," << p2 << "," << p3 << "," << p4 << "," << p5 << "," << p6 << endl;
                            i++;
                        }
                       
                    }
                }
            }
        }
    }
    cout << i;
    return 0;
}
P-76063
usmiech
» 2013-02-10 01:56:41
Nie znam tego zadania, ale jako algorytm uzylbym cus z rachunku prawdopodobienstwa..... zawsze lubilem matme , pozdrawiam :)
P-76064
sebool12
» 2013-12-12 12:51:30
A co sądzicie o tym? Program zlicza jak w założeniu zadania wszystkie kombinacje, ale trwa to naprawdę długo


C/C++
// 3_30PD3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;


int _tmain( int argc, _TCHAR * argv[] )
{
    int suma = 0;
    for( int a = 1; a < 50; a++ )
    {
        for( int b = 1; b < 50; b++ )
        {
            if( b == a )
            {
                continue;
            }
            for( int c = 1; c < 50; c++ )
            {
                if( c == b || c == a )
                {
                    continue;
                }
                for( int d = 1; d < 50; d++ )
                {
                    if( d == c || d == b || d == a )
                    {
                        continue;
                    }
                    for( int e = 1; e < 50; e++ )
                    {
                        if( e == d || e == c || e == b || e == a )
                        {
                            continue;
                        }
                        for( int f = 1; f < 50; f++ )
                        {
                            if( f == e || f == d || f == c || f == b || f == a )
                            {
                                continue;
                            }
                            else
                            {
                                //cout << a << " " << b << " " << c << " " << d << " " << e << " " << f << endl;
                                suma++;
                                cout << suma << endl;
                            }
                        }
                    }
                   
                }
            }
        }
    }
    cout << suma;
    system( "pause" );
    return 0;
}
P-99046
« 1 »
  Strona 1 z 1