/****************************************************/ /* Распределение Пуассона */ /****************************************************/ #include #include "gammaDF.h" ENTRY double poissonDF(double lambda, double n) /* Вычисляет вероятность того, что случайная величина, * подчиняющаяся распределению Пуассона с средним lambda, * не превосходит n. */ { assert(lambda > 0); return (n < 0) ? 0 : 1-GammaDF(n+1).value(lambda); }/*poissonDF*/ ENTRY double rev_poissonDF(double n, double q) /* По известной вероятности q того, что случайная величина, * подчиняющаяся распределению Пуассона, не превосходит n, * находит среднее lambda, для которого poissonDF(lambda, n) * вернет q. */ { assert((q >= 0) && (q <= 1)); return (q == 0) ? 0 : ((q == 1) ? 1 : 1-GammaDF(n+1).inv(q)); }/*rev_poissonDF*/ ENTRY double rightCI_Poisson(double n, double level) { assert((level >= 0.5) && (level < 1)); return rev_poissonDF(n, (1+y)/2); }/*rightCI_Poisson*/ ENTRY double leftCI_Poisson(double n, double level) { assert((level >= 0.5) && (level < 1)); return rev_poissonDF(n, (1-y)/2); }/*leftCI_Poisson*/