Bonsoir à tous!
J'ai un petit problème que je n'arrive pas à résoudre et je doit le remettre demain.
Alors si quelqu'un s'y connais un peu j'apprecierais votre aide.
Voici l'énoncé:
si r>n, alors C(n,r) =0;
si (r=n) ou (r=0), alors C(n,r)=1;
si 0<r<n, alors C(n,r)=C(n-1,r-1)+C(n-1,r).
Je doit donc construire 2 algoritmes pour évaluer C(n,r), 1 récursif ainsi que 1 non-récursif (Itératif) qui lui, minimise le nombres d'opérations exécutés et l'espace occupé.
Et voila, merci de votre temps et passé une bonne soirée!
En fait je vais être plus précise
Ce que je ne comprend pas c'est surtout: si 0<r<n, alors C(n,r)=C(n-1,r-1)+C(n-1,r).
Je ne sais pas quoi faire avec le + ..quest-ce que la procédure aurais au deuxieme appel si dison "r" était 3 et "n" était 6 au départ? ..Si vous pouvez seulement répondre à cela p-e que sa m'aiderais a comprendre.
La procédure ressemblerais donc à
procedure C (n,r : naturels) naturel
si r>n alors
retournez 0
si r=n ou r=0 alors
retournez 1
sinon
retournez C ......... (c'est là que je ne sait pas quoi écrire)
fin si
fin procedure
Merci de votre temps!
Bonjour
moi je mettrais
retourner C(n-1,r-1)+C(n-1,r)
ta procédure étant récursive elle va s'appeler elle-même pour calculer ces 2 termes
alors que dans les 2 autres cas elle se replie c'est à dire remonte la récursion.
est-ce que cela te suffit ?
En fait, c'est ce que je pensais mais mon vrai problème c'est que le "+" m'embrouille totalement
sinon retourner C(n-1,r-1)+C(n-1,r)
je ne vois pas quoi faire avec ce "+"...donc si quelqu'un pouvait me faire un début de trace avec dison n=6 et r=3 au départ...je crois que je comprendrais beaucoup mieu!
Et merci takhasys!
Sans parler de l'algorithme.
C(n,r)=C(n-1,r-1)+C(n-1,r).
-----
C(n,r) signifie très probablement le nombre de combinaisons de n objets pris r à r.
Il faut savoir que C(n,r) = n!/(r! . (n-r)!)
Avec ! signifiant factorielle.
Donc avec r = 3 et n = 6
C(n,r) = C(6,3) = 6!/((3!) . (6-3)!) = 6!/(3! . 3!) = (6*5*4*3*2)/((3*2) * (3*2)) = 20
C(n-1,r-1) = C(5,2) = 5!/((2!) * (5-2)!) = 5!/(2! * 3!) = (5*4*3*2)/(2 * 6) = 10
C(n-1 , r) = C(5,3) = 5!/(3! + (5-3)!) = 5!/(3! * 2!) = (5*4*3*2)/(6 * 2) = 10
Et on a donc bien: C(6,3) = C(5,2) + C(5,3)
-----
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :