ホームページ >バックエンド開発 >C++ >C言語で二項係数の最大値はいくらですか?

C言語で二項係数の最大値はいくらですか?

WBOY
WBOY転載
2023-09-12 14:17:051404ブラウズ

C言語で二項係数の最大値はいくらですか?

正の整数「N」を指定します。すべての二項係数の中で最大の係数項を見つける必要があります。

二項係数シーケンスは nC0nC1nC2,…,nCr,…,nCn-2,n Cn-1nCn

nCr の最大値を求めます。

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

入力 - N=4

出力 - 最大係数 - 6

説明 - 4C0= 1、4C1 = 4、4C2 = 6 , 4C3 = 4, 4C4 = 1

したがって、この場合、最大の係数は次のようになります。 6.

入力 - N=5

出力 - 最大係数 - 10

説明 - 5C0= 1、5C1 = 5、5C2 =10、 5C3 = 10、5C4 = 5、5C5 = 1

したがって、この場合、最大係数は 10 です。

次のプログラムで使用されるメソッドは次のとおりです。

  • ユーザーから N の入力を取得します。

  • 関数 maxCoeff(int n) は 1 つの引数 'n' を受け取り、C[n 1][n 1] でこれまでに見つかった最大の係数を返します。

  • min 変数と max 変数を 0 で初期化します。 'min' は C[][] 配列を反復処理するために使用され、'max' は見つかった最大係数値を格納するために使用されます。

  • 0 から n までの i のループを使用して、C[][] 配列を初期化します。

  • 次に、別のループで「i」または「n」の小さい方に移動します。

  • i==j の場合、C[i][j]==1。それ以外の場合、C[i][j] = C[i-1][j-1] C[i-1][j]。

  • 次に、C[][] 全体を再度反復処理し、最大係数を max に保存します。

  • #結果を返します。

デモンストレーション

#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;
}

出力

上記のコードを実行すると、次の出力が生成されます -

リーリー

以上がC言語で二項係数の最大値はいくらですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。