MATH_Combinaison [Statistiques]
Par Marc Duc-Jacquet (Math4D v1)
Nouvelle recherche
Si (Faux)
` MATH_Combinaison [Marc Duc-Jacquet 06/10/2002]
` ---------------------------------------------
` Rappels mathématiques :
` C(n,p) = n!/p!(n-p)!
` n! = factorielle de n = 1 x 2 x 3 x ;;; x n
` Combinaisons sans répétitions de p objets pris dans un ensemble de n objets
` = Nombre de sous-ensembles différents de p objets d'un ensemble de n objets
` ---------------------------------------------
` MATH_Combinaison (Nombre1; Nombre2) -> Numérique
` Nombre1 (Numérique) Nombre d'objets
` Nombre2 (Numérique) Nombre d'objets inclus dans chaque combinaison
` Résultat (Numérique) Nombre de combinaisons
` ---------------------------------------------
` MATHERROR
` 0 -> Pas d'erreur
` -1 -> Un des paramètres au moins est hors définition
` -2 -> 1er paramètre nul
` -3 -> 2ème paramètre p supérieur au 1er paramètre n
` -4 -> 2ème paramètre nul
` ---------------------------------------------
` EXEMPLES
` Combien de mains de 13 cartes peut-on avoir avec un jeu de 52 cartes
` MATH_Combinaison (52;13) = 635013559600
` Tiercés possibles avec 10 chevaux au départ
` MATH_Combinaison (10;3) = 120
`
Fin de si
C_ENTIER LONG(MATHERROR)
C_ENTIER LONG($1;$2)
C_REEL($0)
$0:=0
` Traitement des erreurs
Au cas ou
: (($1<0) | ($2<0))
MATHERROR:=-1
: ($1=0)
MATHERROR:=-2
: ($1<$2)
MATHERROR:=-3
: ($2=0)
MATHERROR:=-4
Sinon
MATHERROR:=0
Fin de cas
` Algorithme
Si (MATHERROR=0)
C_ENTIER LONG($N;$P;$i;$j;$h)
$N:=$1
$P:=$2
TABLEAU ENTIER LONG($Tab;$N+1;$P+1)
Boucle ($i;1;$N+1)
$Tab{$i}{1}:=1
Fin de boucle
Boucle ($j;2;$P+1)
$h:=$j
Boucle ($i;$h;$N+1)
$Tab{$i}{$j}:=$Tab{$i-1}{$j}+$Tab{$i-1}{$j-1}
Fin de boucle
Fin de boucle
$0:=$Tab{$N+1}{$P+1}
Fin de si