• Losowanie jest to czynność polegająca na wyciąganiu lub wybieraniu określonych liczb lub przedmiotów w sposób wykluczający wpływ osoby losującej na wynik tej czynności.

  • W przypadku powtarzania losowania, można je wykonywać na dwa sposoby:

    • losowanie bez zwracania lub bez powtórzeń
      raz wylosowany obiekt może być wylosowany co najwyżej raz. Zmienne losowe opisujące poszczególne jednostkowe losowania są wówczas zależne.
    • losowanie ze zwracaniem lub z powtórzeniami
      każdy obiekt może być wylosowany wiele razy. Zmienne losowe opisujące poszczególne jednostkowe losowania są wówczas niezależne.

  • Zastosowanie komputera do symulacji różnych procesów świata rzeczywistego wymaga konieczności stwarzania sytuacji losowych. Osiągamy to za pomocą specjalnej funkcji, która nosi nazwę Generatora Liczb Losowych (Random Number Generator - RNG).

  • W języku C++ do losowania liczb służą funkcje:
    • void srand(unsigned seed) która ustawia punkt startowy generatora pseudolosowego.
      przykładowe wywołanie funkcji: srand( time( NULL ) )

    • int rand(void)
      przykładowe wywołania funkcji:
            int liczba_losowa = rand() losuje liczbę pseudolosową z przedziału 0 .. RAND_MAX (32767),

            int liczba_losowa = rand() % n losuje liczbę z przedziału 0 .. n

            int liczba_losowa =(rand() % ilość_liczb_w_przedziale) + początek_przedziału losuje liczbę z przedziału
            początek_przedziału .. (ilość_liczb_w_przedziale + początek_przedziału - 1)




Zadania

  1. Create a program which draws 6 random numbers from the range of [1..49] The numbers cannot be repeated.
    Hints:
    • to save the result of the draw use a 49-element array of logical values (true or false),
    • before the draw all the elements of the array should contain the value false. Drawing each of the six numbers should modify these elements of the array ( to true) whose indexes equal the drawn numbers.
    Define the following function:
    • void zerujTablice(bool tab[], int n)
      a function which completes a 49-element array with logical values false,
    • void losujTablice(bool tab[], int n)
      a function which draws 6 random numbers which are not repeated and saves the resulting changes in the array,
    • void piszWynik(bool tab[], int n)
      a function which displays the drawn numbers.
    Save the program as the file lotek_your_surname.cpp

  2. Create a program which simulates throwing a dice:
    • after the dice has been thrown a certain number of times the program displays the information about how many times a specific number of dots has been thrown,
    • to simulate the throwing use a procedure whose parameter is the number of throws,
    • use switch statement to dispay the result of the throwing .
    Save the program as the file kostka_your_name.cpp

  3. Create a program which calculates how many times a dice needs to be thrown to obtain the same amount of dots in two subsequented throwns. Use a function which returns a number of throws. Calculate the average result for n number of trials. The total of trials ( n) is entered from the keyboard. Save the program as the file takieSame_Your_surname.cpp

Note
  • Each program should contain a comment with your name and surname.
  • Use appropriate indentation to improve the readability of the programs' source code. The lack of indentation may result in a lower mark.
  • Enable the user to repeat each program.

        

    More: chapter nr 7, Informatyka part 2