Forumle du binôme

0/5 (3 avis)

Vue 6 507 fois - Téléchargée 386 fois

Description

Ceci programme développe l'expression de la forme(ax+b)^n. Pour ce faire, j'ai utilisé la formule de la loi binomiale.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
munstef676
Messages postés
4
Date d'inscription
dimanche 1 juin 2014
Statut
Membre
Dernière intervention
31 mai 2019

Modifié par jordane45 le 1/06/2014 à 02:45
un algorithme du calcul du binomial plus efficace et rapide :
C++ :
   template<typename T> T binomial(T& n, T& p) {
        if ((n < 0) || (p < 0) || (p > n)) return 0;
        T imax = (p > n / 2) ?  n - p : n;
        T n1 = n + 1;
        T result = 1;
        for(T i=1; i <= imax; ++i) result *= (n1 - i) / i;
        return result;
    }

C : pour les entiers :
unsigned binomial(unsigned n, unsigned p) {
     if (p > n) return 0;
     unsigned imax = (p > n / 2) ? n - p : n;
     unsigned n1 = n + 1;
     unsigned result = 1;
     for (unsigned i = 1; i <= imax; ++i) result *= (n1 - i) / i;
     return result;
}

ce code est facilement modifiable si l'on veut utiliser avec d'autre type entier, et renvoyer la valeur en un autre entier ou flottant

Message édité : Ajout des balises de code.
Tearsofdestiny
Messages postés
2
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
11 novembre 2009

29 mars 2010 à 09:35
Bonjour,

Merci de faire cette remarque que je vais naturellement prendre en compte. Je dois avouer que j'y ai pensé, mais j'ai ensuite oublié.

Encore merci

P.S: n'hésitez pas a critiquer aussi :-)
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
Modifié par jordane45 le 1/06/2014 à 02:46
Seulement protos et déclarations dans les *.h, jamais de code.
long int fact(long int a)
{
  long int res = 1, i;
  for(i = 0; i <= a; i++) {
    if(i != 0 && i != 1) res = res * i;
    else res = res;
  }
  return res;
}

res = res; // SUPER UTILE !!!

Puisque tu ne veux rien avant la valeur 2:
long int fact(long int a)
{
  long int res = 1;
  while(a >= 2) res *= a--;
  return res;
}


Message édité : Ajout des balises de code.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.