Probabilité nPr, nCr

Résolu
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 - 18 mars 2005 à 15:29
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 - 19 mars 2005 à 09:19
Bonjour,
Voilà ! J'ai un problème.
Je suis en train de faire une calculatrice en javascript et j'ai un problème pour l'emploi d'une fonction. J'aimerai utiliser une fonction nPr pour calculer le nombre de permutation en probabilité. L'algorithme étant le suivant : n! / ((n-p)!) pour nPr et :
n! / (p!(n-p)!) pour nCr. --> ! représente la factorielle du nombre.
J'ai fait une première fonction qui détermine n! et une seconde déterminant p!.
Si vous savez, comment je pourrais faire pour faire (n-p)! ET le plus important, comment je pourrais réunir ces trois fonctions (perso, j'ai pensé à un truc du genre :
y = fac() / facnp() pour nPr mais ça marche pas ?!?
Merci pour vos futures réponses et peut-être solutions (il faut l'avouer, mon problème n'est pas simple).

@++

5 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
18 mars 2005 à 21:34
Salut!

Après avoir fait une fonction qui calcule la factorielle, il suffisait d'utiliser la multiplication et la division pour arriver a tes fin...

Exemple :


<script type= "text/javascript">
// factorielle

function fact
(n
)
{

return
(n
==
0)?
1:(n
* fact
(n
-
1));

}
// combinaison

function nCr
(p
,n
)
{

return fact
(n
)/(fact
(p
)*fact
(n
-p
));

}
// permutation

function nPr
(p
,n
)
{

return fact
(n
)/fact
(n
-p
);

}

alert
(fact
(6)); // # factorielle de 6
alert
(nCr
(6,49)); //# combinaison loto
alert
(nPr
(6,49));// # permutation loto

</script>

A+, Ghislain
3
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
18 mars 2005 à 23:42
Salut!

Je n'ai pas mis de validation...

C'est certain que si tu utilisent les fonctions directement sur ta calculatrice sans validation, tu peut t'y retrouver avec des résultats bizarre.

La valeur de p doit toujours être plus petite ou égal que la valeur de n car on ne peut pas trouver de permutation ou de combinaison de 22 chiffres avec seulement 21 chiffres. Puisque j'utilises une fonction factorielle récursive, elle n'aboutit jamais et génère un stack overflow.

Il faut don faire une validation et retourner zero ou Erreur.

A+, Ghislain
3
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
18 mars 2005 à 22:16
Merci beaucoup ! Ca marche impec dans ma calculatrice javascript.


@++
0
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
18 mars 2005 à 23:12
C'est vraiment bizarre ! Ca marche pas pour toutes les valeurs...???
Essaie ça :
<script type= "text/javascript">
// factorielle

function fact
(
n
)

{

return
(
n
==

0
)
?
1
:(
n *
fact
(
n
-

1
))
;
}

// combinaison

function nCr
(
p
,
n
)

{

return fact
(
n
)/(
fact
(
p
)*
fact
(
n
-
p
))
;
}

alert(
fact
(
6
))
; // # factorielle de 6
alert(
nCr
(22
,21
))
; //# combinaison loto

</script>
Y'a quelque chose qui a du m'échapper..........
@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
19 mars 2005 à 09:19
Ah d'accord... Merci beaucoup.
@++
0
Rejoignez-nous