function aprox_pi = montecarlo_pi(n)
% aprox_pi = montecarlo_pi(n)
%
% vypocte obsah plochy ohranicene shora grafem funkce sqrt(1-x^2) na intervalu
% <0,1> a pomoci obsahu aproximuje cislo pi
%
% input:
% n ... pocet pokusu

if n <= 0 | n - floor(n) > eps
    error('n neni prirozene cislo')
end

suma=0;

for i=1:n
    bod=rand([1,2]); %generuje bod ve ctverci <0,1>x<0,1>
    x=bod(1);  %x-ova souradnice bodu
    y=bod(2);  %y-ova souradnice bodu
    
    if y <= sqrt(1-x^2)
        suma=suma+1; %bod lezi v plose ohranicene grafem funkce, osou x a primkami x=0, x=1
    end
end

obsah = suma/n;

aprox_pi=4*obsah;

disp(['Aproximace pi: ', num2str(aprox_pi)])
disp(['Absolutni chyba: ', num2str(abs(aprox_pi - pi))])
disp(['Relativni chyba: ', num2str(100*abs(aprox_pi - pi)/pi),'%'])

% konec
