Cでの最大二項係数項の値
二項係数級数はnです。 C 0 、 n C 1 、 n C 2 、…。、 n C r 、…。、 n C n-2 、 n C n-1 、 n C n
nの最大値を見つけます C r 。
nCr = n! / r! * (n - r)!
入力 − n =4
出力 −最大係数− 6
説明 − 4 C 0 =1、 4 C 1 =4、 4 C 2 =6、 4 C 3 =4、 4 C 4 =1
したがって、この場合の最大係数は6です。
入力 − n =5
出力 −最大係数− 10
説明 − 5 C 0 =1、 5 C 1 =5、 5 C 2 =10、 5 C 3 =10、 5 C 4 =5、 5 C 5 =1
したがって、この場合の最大係数は10です。
以下のプログラムで使用されているアプローチは次のとおりです
-
Nについてはユーザーからの入力を受け取ります。
-
関数maxCoeff(int n)は、1つのパラメーター「n」を取り、C [n + 1] [n + 1]
に格納されているこれまでに見つかった最大係数を返します。 -
min変数とmax変数を0で初期化します。「min」はC[][]配列をトラバースするために使用され、「max」は検出された最大係数値を格納するために使用されます。
-
i =0からnまでのforループは、C[][]配列を初期化するために使用されます。
-
次に、「i」または「n」のいずれか最小になるまで、別のforループトラバースの内側に移動します。
-
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; }
出力
上記のコードを実行すると、次の出力が生成されます-
Maximum Coefficient: 3
-
Pythonで最大消去値を見つけるプログラム
nums(正の値のみ)という配列があり、一意の要素を含むサブ配列を消去するとします。サブアレイ要素の合計であるスコアを取得します。正確に1つのサブアレイを消去することで得られる最大スコアを見つける必要があります。 したがって、入力がnums =[6,3,2,3,6,3,2,3,6]のような場合、最適なサブ配列は[6,3,2]または[2,3,6]なので、合計は11です。 これを解決するには、次の手順に従います- 見た:=新しい地図 ans:=sum:=0 l:=0 インデックスrと値xnumごとに、実行します xが表示されている場合、 インデックス:=見た[x] l <=イン
-
Pythonで最小値が最大のパス
R行とC列の整数の行列Aがあるとすると、[0,0]で始まり[R-1、C-1]で終わるパスの最大スコアを見つける必要があります。ここで、スコアリング手法はそのパスの最小値になります。たとえば、パス8→4→5→9の値は4です。パスは、4つの主要な方向(北、東、西、南)のいずれかで、1つの訪問済みセルから隣接する未訪問セルに数回移動します。 。 たとえば、グリッドが-のような場合 5 4 5 1 2 6 7 4 6 オレンジ色のセルがパスになります。出力は4です これを解決するには、次の手順に従います- r:=行数およびc:=列数