2009-11-07 9 views
0

Donc, la question est maintenant, de combien de façons pouvons-nous mettre x crayons bleus et y dans la ligne? Exemple: nous avons 3 crayons rouges et 1 bleu. Ensuite, nous avons 4 façons différentes. Combinaisons: BRRR, RBRR, RRBR, RRRB.Récursivité et permutations

Donc avec 10 crayons rouges et 10 bleus, nous avons 184756 différentes façons de les aligner. Alors les gars, comment écrire de manière récursive?

Merci beaucoup pour votre aide.

+2

Est ce devoir? Si ce n'est pas le cas, pourquoi devez-vous utiliser la récursivité? Ne serait-il pas plus facile d'utiliser les formules appropriées pour les permutations et les combinaisons? –

+0

Bogue mineur: "Ensuite, nous avons 4 façons différentes Combinaisons: BRRR, RBRR, RRBR, RRRRB." devrait être "Puis nous avons 4 façons différentes Combinaisons: BRRR, RBRR, RRBR, RRRB." – daf

+0

Oui, c'est juste une partie d'un très gros devoirs :(Ainsi, façon récursive doit être @cartoonfox: j'ai édité, merci – Davor

Répondre

5

Cela sonne comme devoirs, alors voici quelques conseils:

Lorsque vous traitez avec récursion, vous devez penser à l'affaire de base. Ici, ce cas de base est 0 crayons. Combien de façons pouvez-vous commander 0 crayons? Ok, maintenant les cas récursifs: combien de façons pouvez-vous commander un nombre non-zéro de crayons? Si vous avez des crayons rouges alors vous pouvez commencer avec un crayon rouge, suivi par le reste des crayons. Si vous avez des crayons bleus alors vous pouvez commencer avec un crayon bleu, suivi par le reste des crayons.

0

Pensez arbre binaire, profondeur = nombre de crayons dans la ligne.

La racine est zéro crayons. Le niveau 1 avait un crayon bleu et un crayon rouge. Niveau 2 .... vous voyez le motif.

-1

il n'y a pas besoin de le faire sous forme de récursion, car il peut être calculé à l'aide (x+y)!/(x!y!) mais si u're insistante u peut utiliser quelque chose comme ceci: C(x,y)=C(x-1,y)+C(x,y-1) avec des cas de base: C(z,0)=C(0,z)=1 que z est un nombre naturel

+0

Désolé, -1 de moi pour "u're" et "u" Ce n'est pas Twitter - épelez-les – duffymo

+0

@David - ouais, c'est – duffymo

+0

Merci David, que la formule C (x, y) = ... était tout ce dont j'avais besoin.Niveau non récursif que vous avez suggéré est la deuxième partie du programme, mais nous ne pouvons pas utiliser de factorielle pour que la formule (x + y)!/(x! y!) ne compte pas, il faut utiliser le triangle de Pascal, mais je l'ai déjà compris;) – Davor