Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

Question sur les algorithmes

Posté par CarolineR (invité) 07-12-04 à 22:31

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!

Posté par CarolineR (invité)re : Question sur les algorithmes 08-12-04 à 05:32

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!

Posté par
takhasys
re : Question sur les algorithmes 08-12-04 à 13:46

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 ?

Posté par CarolineR (invité)re : Question sur les algorithmes 08-12-04 à 18:00

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!

Posté par
J-P Posteur d'énigmes
re : Question sur les algorithmes 08-12-04 à 18:13

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)
-----

Posté par
takhasys
re : Question sur les algorithmes 08-12-04 à 19:14

Re
Si tu préfères tu peux écrire :
c1 = C(n-1,r-1)
c2 = C(n-1,r)
retourner (c1+c2)

Posté par Lagrange (invité)Verison itérative de l agorithme de combinatoire. 10-12-04 à 16:19

Bien le bonjour!

Je me demandais s'il y avait une version itérative de l'algorithme de combinatoire tel que mentionné plus haut.

C(n,r)=C(n-1,r-1)+C(n-1,r).

J'ai de la difficulté à me représenter ce calcul.

Merci!



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !