Maison >développement back-end >C++ >En langage C, quelle est la valeur maximale d'un coefficient binomial ?

En langage C, quelle est la valeur maximale d'un coefficient binomial ?

WBOY
WBOYavant
2023-09-12 14:17:051404parcourir

En langage C, quelle est la valeur maximale dun coefficient binomial ?

Étant donné un entier positif « N ». Nous devons trouver le terme de coefficient le plus grand parmi tous les coefficients binomiaux. La séquence des coefficients

binomiaux est nC0, nC1, nC2, …, nCr, …, nCn -2, nCn-1, nCn

Trouvez la valeur maximale de nCr.

<sub>n</sub>C<sub>r</sub> = n! / r! * (n - r)!

Entrée - N=4

Sortie - Coefficient maximum - 6

Explication - 4C0= 1, 4C1 = 4, 4 C 2 = 6, 4C3 = 4, 4C4 = 1

Donc, dans ce cas, le coefficient maximum est de 6.

Entrée - N=5

Sortie - Coefficient maximum - 10

Explication - 5C0= 1, 5C1 = 5, 5 C 2 =10, 5C3 = 10, 5C4 = 5, 5C5 = 1

Donc, dans ce cas, le coefficient maximum est de 10.

La méthode utilisée dans le programme ci-dessous est la suivante

  • Nous obtenons l'entrée de N de l'utilisateur.

  • La fonction maxCoeff(int n) accepte un paramètre 'n' et renvoie le plus grand coefficient trouvé jusqu'à présent dans C[n+1][n+1].

  • Initialisez les variables min et max avec 0. 'min' est utilisé pour parcourir le tableau C[][] et 'max' est utilisé pour stocker la valeur de coefficient maximale trouvée.

  • La boucle avec i de 0 à n est utilisée pour initialiser le tableau C[][].

  • Maintenant, parcourez le plus petit de «i» ou «n» dans une autre boucle.

  • Si i==j, alors C[i][j]==1. Sinon, C[i][j] = C[i-1][j-1] + C[i-1][j].

  • Maintenant, parcourez à nouveau l'intégralité du C[][] et stockez le coefficient maximum dans max.

  • Retour des résultats.

Exemple

Démonstration

#include <stdio.h>
int maxCoeff(int n){
   int C[n+1][n+1];
   int max=0,min=0;
   // Calculate value of Binomial Coefficient in
   for (int i = 0; i <= n; i++){
      min=i<n?i:n;
      for (int j = 0; j <= min; j++){
         if (j == 0 || j == i)
            C[i][j] = 1;
         else
            C[i][j] = C[i-1][j-1] + C[i-1][j];
      }
   }
   for (int i = 0; i <= n; i++){
      max = max> C[n][i] ? max: C[n][i];
   }
   return max;
}
int main(){
   int N = 3;
   printf("Maximum Coefficient :%d", maxCoeff(N) );
   return 0;
}

Sortie

Si nous exécutons le code ci-dessus, la sortie suivante sera générée −

Maximum Coefficient: 3

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer