disp('generation des principale lois usuelles a partir de l''instruction rand');
//
iloi=evstr(x_dialog('loi uniforme(0)normale(1)exponentielle(2) geometrique(3)biniomiale(4)poisson(5)','1'));
N=evstr(x_dialog('nombre de tirages','20000'));
//
xbasc()
if (iloi ==0) then
  n=evstr(x_dialog('nombre de classes de l''histogramme','20'));
  x=rand(1,N);
  histplot(n,x);
  plot2d([0,1],[1,1],2);
  xtitle('histogramme et loi de repartition uniforme','Classes','freq'); 
//
elseif (iloi==1)
  n=evstr(x_dialog('nombre de classes de l''histogramme','20'));
  x=rand(1,N,'n');
  histplot(n,x);
  deff('[y]=f(x)','y=exp(-x.*x/2)/sqrt(2*%pi);');
  t=min(x):0.1:max(x);
  g=exp(-t.*t/2)/sqrt(2*%pi);
  plot2d(t,g,2);
  xtitle('histogramme et loi de repartition gaussienne','Classes','freq');
// 
elseif (iloi ==2) then
  n=evstr(x_dialog('nombre de classes de l''histogramme','20')); 
  lambda=evstr(x_dialog('valeur de lambda','1'));
  x=expo(N,lambda);
  histplot(n,x);
  t=0:max(x)/100:max(x);
  plot2d(t,lambda*exp(-lambda*t),2);
  xtitle('histogramme et loi de repartition exponentielle','Classes','freq');
// 
elseif (iloi==3)
  p=evstr(x_dialog('valeur de p','0.1'));
  x=geom(N,p);
  histplot(0.5:(max(x)+0.5),x); 
  t=1:max(x);
  plot2d(t,p*(1-p).^(t-1),2);
  xtitle('histogramme et loi de repartition geometrique','Classes','freq'); 
//
elseif (iloi==4)
  n=evstr(x_dialog('valeur de n','10'));
  p=evstr(x_dialog('valeur de p','0.3'));
  x=binom(N,p,n);
  histplot(-0.5:(n+0.5),x); 
  t=0:n;c=t;
  deff('c=bin(k)','c=1;for i=1:k;c=c*(n-i+1)/i;end;c=c*p^k*(1-p)^(n-k)');
  for i=1:n+1
    c(i)=bin(i-1);
  end
  plot2d(t,c,2);
  xtitle('histogramme et loi de repartition binomiale','Classes','N(C)/Ntot'); 
//
elseif (iloi==5)
  p=evstr(x_dialog('valeur de p','3'));
  x=pois(N,p);
  histplot(-0.5:(max(x)+0.5),x); 
  t=0:max(x);c=t;
  deff('c=poisson(k)','c=exp(-p);for i=1:k;c=c*p/i;end');
  for i=1:max(x)+1
    c(i)=poisson(i-1);
  end
  plot2d(t,c,2);  
  xtitle('histogramme et loi de repartition poissonienne','Classes','N(C)/Ntot'); 
end 
