Loi de poisson (stats-proba)

Contenu du snippet

Bonjour :)

Autodidacte, le code reste imparfait mais correct.
Restant incertain sur la logique mathématique employée, j'attends vos remarques autant sur le code que sur la logique mathématique ;)

Loi binomiale : P(x=k) = (Combinaison k de n)*(p exposant k)* (q exposant(n-k))
Combinaison k de n = n! / (k!(n-k)!)
E(x) = np ecart type e(x) = racine carré de npq

Loi de Poisson : P(x=k) = exponentielle(-t)*(t exposant k)/k!
E(x) = t variance V (x = t) = t

Source / Exemple :


#include <stdio.h>
#include <math.h>

long fact(int i)
{
       long f;
       
       if (i==0)
       {
          return 1;
       }
       else
       {
           f = fact(i - 1);
           return i*f;
       }
       
}

main ()
{
     int n, k;
     double e, p, q, r, t, x, y, z;
     
     printf("entrez la valeur de k entier non nul positif\n");
     scanf("%d", &k);
     printf("entrez le nombre d'essais n entier non nul positif\n");
     scanf("%d", &n);
     
     x = fact(n);
     y = fact(k);
     z = fact(n-k);
     
     r = x/(y*z);
     
     printf("la combinaison n de k est : %lf\n", r);
     
     x = n-1;
     y = k-1;
     z = x-y;
     x = fact(x);
     y = fact(y);
     z = fact(z);    
  
     e = x/(y*z);
     e = e/x;
     p = pow(e, k);

     printf("la probabilite de succes k de n est : %lf\n", p);
     
     x = n-k;
     y = 1-p;
     q = pow(y, x);
     
     r = r*p*q;
     printf("le resultat de la loi binomiale est : %lf\n", r);
     e = n*p;
     printf("l'esperance est de : %lf\n", e);
     t = sqrt(e*q);
     printf("l'ecart type est de : %lf\n", t);
     
     x = exp(-e);
     y = pow (e,k);
     z = x*y;
     k = fact(k);     
     x = z/k;
     printf("la loi de poisson est : %g\n", x);
}

Conclusion :


Après 4 heures de mal de crâne en compagnie de Messieurs Claude Delannoy et Michel Divay (pour leurs bouquins ;) ), je tiens à remercier Pascal, Pascale et Laurent qui se reconnaîtront si d'aventure ils passent par là... (je sais, je peux optimiser !!!).

Le code reste certainement perfectible bien que je sois fier (modestement) d'avoir réussi à le faire fonctionner. Limité par le 32 bits, n'entrez pas de valeur trop élevées.

Dernière précision, les éditions Casteilla n'édite plus le phénoménal "Mémo formulaire" de M. Yves Déplanche d'où j'ai tiré des heures de programmation et les formules mathématiques de ce programme. Une réédition de cette bible serait la bienvenue pour tous les futurs techniciens...

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.