Предположим, что мы делаем эксперимент, в котором мы бросаем n шаров в n банок. X - независимая переменная, описывающая количество шаров в первой банке. Построение функции возвращает наименьшее целое число P (X> m) < 1/n^2.Код возвращает минимальный m s.t P (X> m) = 1/n^2 для биномиального эксперимента
распределение является биномиальным, так что я написал следующую функцию MatLab:
function m = intpq3(n)
flag=0;
par=1/n^2;
m=0;
P=0;
%Since X is non-neative integer
if(n==1)
m=-1*Inf;
else
while(flag==0 && m<=n)
m=m+1;
P=P+nchoosek(n,m)*(1/n)^m*(1-1/n)^(n-m);
if(1-P<=par)
flag=1;
end
end
end
disp(m)
end
Но для каждого «п» я даю, он возвращает либо ошибку или N-1. Что я делаю не так?
Я изменен мой ответ, пожалуйста, проверьте его. –