Класс для схемы Бернулли

Схемой Бернулли называется последовательность независимых испытаний В теории вероятностей есть формула для вычисления вероятности события в результате выполнения серии последовательных испытаний с неизменной вероятностью исхода при каждом испытании. Пусть серия состоит из n опытов и вероятность успеха в каждом из них равна p. Вероятность того, что при проведении n испытаний успех наступит m раз вычисляется по формуле Бернулли:
$$P_{n}\left(m \right)=C_{n}^{m}p^{m}q^{n-m}$$
Коэффициенты в этой формуле - это биномиальные коэффициенты, вычисляемые по формуле:
$$C_{n}^{m}=n!/\left(m!\left(n-m \right)! \right)$$
Создадим класс, в котором вероятность успеха в одном опыте будет определяться значением поля класса, результат отдельного «опыта» будет мо­делироваться специальным методом. В качестве значения методом воз­вращается значение 0 («неудача» с вероятностью q=1-р) и 1 («успех» с вероятностью р). Для определения результата (количества успехов) в се­рии опытов упомянутый метод переопределим так, что если ему передается аргумент (целое число, определяющее количество опытов в серии), то методом возвращается количество успехов в такой серии. Программный код приведен ниже.
#include 
#include 
using namespace std;
class Bernoulli{
public:
double p;
int test(){
int N=1000;
int xi;
xi=rand()%N;
if(xi < p*N) return 1;
else return 0;}
int test(int n){
int s=0,i;
for(i=1; i <=n; i++) s+=test();
return s;}
};
int main(){
int i;
Bernoulli obj;
obj.p=0.3;
for(i=1; i <=9; i++) cout << obj.test() << " ";
cout << endl;
for(i=1; i <=9; i++) cout << i*100 << ": " << obj.test(i*100) << endl;
return 0;}
Онлайн всего: 2
Гостей: 2
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте