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
1443 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!

source:tutorialspoint.com
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