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 ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-09-12 14:17:05
avant
1492 Les gens l'ont consulté

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)!
Copier après la connexion

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;
}
Copier après la connexion

Sortie

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

Maximum Coefficient: 3
Copier après la connexion

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal