Представьте, что у вас есть критический компонент, который, как вы знаете, потерпит неудачу в 1 из N «использования» (для некоторого подходящего определения «использования»). Вы можете запланировать плановую замену компонента таким образом, чтобы его вероятность неудачи между рутинной заменой была меньше P%. Если сбои следуют за биномиальным распределением (каждое время компонент «используется» либо терпит неудачу, либо нет), то статическая функция члена binomial_distibution<>::find_maximum_number_of_trials можно использовать для оценки максимального количества «использований» этого компонента для определенного приемлемого уровня риска альфа.
Пример программы binomial_sample_sizes.cpp демонстрирует ее использование. Он сосредоточен на рутине, которая печатает таблицу максимальных размеров выборки для различных порогов вероятности:
void find_max_sample_size(
   double p,              
   unsigned successes)    
{
Затем рутина объявляет таблицу порогов вероятности: это максимально допустимая вероятность того, что успехи или меньше событий будут наблюдаться. В нашем примере success всегда будет нулевым, так как мы не хотим никаких сбоев компонентов, но в других ситуациях ненулевые значения вполне могут иметь смысл.
double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 };
Большая часть остальной части программы довольно-печатная, важная часть заключается в расчете максимального количества разрешенных испытаний для каждого значения альфа:
for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i)
{
   
   cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]);
   
   double t = binomial::find_maximum_number_of_trials(
                  successes, p, alpha[i]);
   t = floor(t);
   
   cout << fixed << setprecision(5) << setw(15) << right << t << endl;
}
Обратите внимание, что, поскольку мы вычисляем максимальное количество разрешенных испытаний, мы будем ошибаться на безопасной стороне и возьмем пол результата. Если бы мы рассчитывали minimum количество испытаний, необходимых для наблюдения определенного количества success, используя find_minimum_ number_of_trials, мы бы взяли потолок вместо этого.
Мы закончим, глядя на некоторые результаты выборки, во-первых, на 1 из 1000 шансов на отказ компонента с каждым использованием:
________________________
Maximum Number of Trials
________________________
Success ratio                           =  0.001
Maximum Number of "successes" permitted =  0
____________________________
Confidence        Max Number
 Value (%)        Of Trials
____________________________
    50.000            692
    75.000            287
    90.000            105
    95.000             51
    99.000             10
    99.900              0
    99.990              0
    99.999              0
Таким образом, 51 «использование» компонента даст 95% шанс, что никакие сбои компонентов не будут соблюдаться.
Сравните это с 1 из 1 миллиона шансов на отказ компонента:
________________________
Maximum Number of Trials
________________________
Success ratio                           =  0.0000010
Maximum Number of "successes" permitted =  0
____________________________
Confidence        Max Number
 Value (%)        Of Trials
____________________________
    50.000         693146
    75.000         287681
    90.000         105360
    95.000          51293
    99.000          10050
    99.900           1000
    99.990            100
    99.999             10
В этом случае даже 1000 применений компонента по-прежнему дают менее 1 из 1000 шансов на наблюдение за отказом компонента (т.е. 99,9% шансов на отсутствие сбоя).