function bact(n)
Y=[1 [1:n]] 
X=grand(1,n,"exp",1)./[1:n]
X=[0 cumsum(X)];
xbasc();
plot2d2(X,Y,5)
x=[0:.01:max(X)]
plot2d(x,exp(x),2)

//Atteinte
function atteinte(n)
P=[0 1/2 1/2 0; 1/3 0 1/3 1/3; 1/3 1/3 0 1/3; 0 0 0 1]
T=zeros(1,n)
s=zeros(1,n-1)
for i=1:n
  x=1
  J=0
    while (x<>4) 
      J=J+grand(1,1,"exp",1)/(2*(x==1)+6*(x==2)+9*(x==3))
      x=grand(1,"markov",P,x)
    end
  T(i)=J
end 
xbasc()
for i=1:n-1
  s(i)=st_deviation(T(1:i+1)) 
end
s=[s(1) s];
plot2d([1:n],cumsum(T)./[1:n],5)
plot2d([1:n],cumsum(T)./[1:n]+1.96*s./sqrt([1:n]),3)
plot2d([1:n],cumsum(T)./[1:n]-1.96*s./sqrt([1:n]),3)
plot2d([1,n],[17/12,17/12],2)
xset("font size",3)
xtitle('Estimation du temps d''atteinte de 4 avec intervalle de confiance')

//Illustration de l'absence de mémoire
function ex(n,a)
X=grand(1,n,"exp",1)
Y=X((X>a))
xbasc()
histplot(100,Y-a)
X=[0:0.01:10]
plot2d(X,exp(-X),5)
xset("font size",3)
xtitle('Absence de mémoire de la loi exponentielle')

function y=Poisson1(t,l)
i=0
c=0
v=[0]
while i<= t
x=grand(1,"exp",1/l)
i=i+x
v=[v,i]
c=c+1
end
y=c



//TRAJECTOIRE D'UN PROCESSUS DE POISSON

function Poisson2(t,l)
i=0
c=0
v=[0]
while i<= t
x=grand(1,"exp",1/l)
i=i+x
v=[v,i]
c=c+1
end
xbasc()
xset("font size",3)
plot2d2(v,[0:c],4)
xtitle('Trajectoire d un processus de Poisson jusqu au temps ' +string(t))


//N(t) SUIT UNE LOI DE POISSON DE PARAMETRE l*t

function compar(t,n,l)
v=[]
for i=1:n
c=Poisson1(t,l)
v=[v,c]
end
xbasc()
histplot(100,v,2)
histplot(100,grand(1,n,"poi",l*t),3)
xtitle('Comparaison de la loi de Poisson avec la loi de N(t)')

function test(t,n,l)
v=[]
for i=1:n
c=Poisson1(t,l)
v=[v,c]
end
xbasc()
histplot([0:1:30],v-1,2)
histplot([0:1:30],grand(1,n,"poi",l*t),3)
xtitle('Comparaison de la loi de Poisson avec la loi de N(t)')



//TRAJECTOIRE D'UNE FILE D'ATTENTE DE TYPE M/M/1
function y=MM1(l,m,t)
N=[0,1]
U=grand(1,'exp',1/l)
T=[0,U]
while T($)<t
	V=grand(1,'exp',1/(l+m*(N($)==0)))
	T=[T,T($)+V]
        N=[N,N($)+2*(rand(1,1)<l/(l+m*(N($)<>0)))-1]	
end
xbasc()
y=[T;N]
xset("font size",3)
plot2d2(T,N,3)
xtitle('Trajectoire d une file d attente de type M/M/1')



//NOMBRE MOYEN DE GENS DANS LE SYSTEME ET DANS LA FILE D'ATTENTE

function nbmoyMM1(l,m,t)
v=MM1(l,m,t)
v1=v(1,:)
v2=v(2,:)
s=0
a=0
for i=2:length(v1)-1
s=s+(v2(i)*(v1(i+1)-v1(i)))
end
for i=3:length(v1)-1
if v2(i)<>0 then
a=a+((v2(i)-1)*(v1(i+1)-v1(i)))
end
end
disp('le nombre moyen de clients dans le systeme est: '+string (s/t))
disp('le nombre moyen de clients dans la file est: '+string (a/t))


//TRAJECTOIRE D'UNE FILE D'ATTENTE DE TYPE M/M/s
// Remarquer que l'on peut remplacer le test
// le fonction MM1 par un min
function y=MMS(l,m,s,t)
N=[0,1]
U=grand(1,'exp',1/l)
T=[0,U]
while T($)<t
	V=grand(1,'exp',1/(l+min(N($),s)*m))
	T=[T,T($)+V]
	N=[N,N($)+2*(rand(1,1)<l/(l+min(N($),s)*m))-1]	
end
xbasc()
y=[T;N]
plot2d2(T,N,3)
xtitle('Trajectoire d une file d attente de type M/M/'+string(s))


// //////////////////////////////////////////////////////
// Ancetres
function arbre(n)
ck=((.5*[n:-1:2].*[n-1:-1:1]).^(-1)).*grand(1,n-1,"exp",1)
T=[0 cumsum(ck)]
X=[n:-1:1]
xbasc()
for i=n:-1:1
  X=[i*ones(1,n-i) X(n+1-i:n)]
  plot2d2(T,X,i)
end


function long(n,N)
ck=zeros(1,N)
for i=1:N
  tk=((.5*[2:n].*[1:n-1]).^(-1)).*grand(1,n-1,"exp",1)
  ck(i)=sum([2:n].*tk)
end
xbasc()
histplot(50,ck-2*log(n))
x=[-5:.01:15]
plot2d(x,.5.*exp(-x/2).*exp(-exp(-x/2)),5)

function longr(n,N)
ck=zeros(1,N)
for i=1:N
  tk=((.5*[2:n].*[1:n-1]).^(-1)).*grand(1,n-1,"exp",1)
  ck(i)=sum([2:n].*tk)
end
xbasc()
ck=-sort(-ck)
plot2d([ck(1) ck]-2*log(n),[0:1/N:1],2)
x=[-5:.01:15]
plot2d(x,exp(-exp(-x/2)),5)