Próba Bernoulliego to eksperyment losowy z dwoma możliwymi wynikami, np.
rzut monetą z wynikami 0 (reszka, porażka), 1 (orzeł, sukces). Przyjmujemy, że
moneta nie jest symetryczna, tzn. zadajemy, jakie jest prawdopodobieństwo
p
wyniku 1 (dla monety symetrycznej byłoby równe 0.5). Symulację
takiego eksperymentu należy zrealizować stosując biblioteczny generator liczb
pseudolosowych.
Należy przyjąć, że wynik próby jest równy 1 gdy wylosowana z przedziału
[0, RAND_MAX]
liczba jest mniejsza od p *
(RAND_MAX+1)
.
Napisz funkcję bernoulli_gen(int* t, int n, double p)
, która
generuje losowo tablicę n
prób bernoulliego. Elementami tej tablicy
mają być wyniki prób.
Definicje: https://en.wikipedia.org/wiki/Bernoulli_sampling
Wejście: n p
Wyjście: Wylosowana tablica liczb binarnych.
Wejście: 20 0.3
Wyjście: 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
Napisz funkcję pmf(...)
(probability mass function), która
symuluje wykonanie n
rzutów dwoma kostkami i zapisuje wartości
otrzymanego przybliżonego rozkładu prawdopodobieństwa w tablicy. Losując liczbę
oczek jednej kostki -- dla uzyskania powtarzalności wyników -- należy raz
wywołać funkcję rand()
i jej wynik sprowadzić do przedziału
[1,6]
.
Napisz również funkcję print_histogram(double v[], int n, int x_start,
double y_scale)
, która w trybie znakowym przedstawia histogram funkcji o
n
wartościach zapisanych w argumencie v
. Należy
przyjąć założenia:
x_start
. Są one pisane od pierwszej lewej kolumny, w
polu o szerokości 2 znaków z wyrównaniem w prawo.x
.'*'
. Liczba
znaków jest przeskalowaną i zaokrągloną wartością funkcji. Parametr
y_scale
jest wartością zmiennej zależnej odpowiadającej szerokości
jednego znaku na wykresie.double
) są
wyprowadzane z dokładnością do 3 cyfr po kropce dziesiętnej w każdym wierszu, po
jednej spacji na prawo od ostatniego znaku '*'
.Definicje: https://en.wikipedia.org/wiki/Probability mass function
Wejście: n
Wyjście: Dyskretny rozkład prawdopodobieństwa
wyrażający prawdopodobieństwo wyrzucenia każdej z liczb od 2 do 12.
Wejście: 1000
Wyjście:
2 |***** 0.024
3 |************** 0.068
4 |******************* 0.094
5 |************************ 0.120
6 |**************************** 0.140
7 |********************************* 0.165
8 |************************* 0.125
9 |******************* 0.096
10 |***************** 0.083
11 |********** 0.051
12 |******* 0.034
Proszę napisać program, który w zależności od podanej opcji (podanej z linii komend) albo:
abcccdeeffffg
ab[3c]d[2e][4f]g