動的なプログラミングと貪欲法_ロープの質問をカット

問題:

あなたはN、Mカットしてくださいロープ部分(M、Nは整数であり、nは> 1およびM≧1)の長さの文字列を与えます。各セグメントの長さは、ロープK [0]、K [1]、...、K [M]と呼ぶことにします。K [0] * K [1] * ... * K [m]の最大の可能な生成物はどのくらいですか?ロープの長さが8である場合、例えば、我々は、最大の生成物を得るために、この時点で三つの部分2,3,3、18の長さにカット。

解決:

1.動的プログラミング
、動的プログラミングを検討し、最適なソリューション(最大値または最小値)を求め、問題はいくつかのサブ問題に分解することができること、及びより小さなサブ問題の副問題との間に重複がある
(1 )より小さな問題に大きな問題かどうかを分析することができる
(2)分解後の各小問題の最適解が存在する
3)が最適解(小さな問題は全体問題の最良の解決策を得るために組み合わされ

2.貪欲アルゴリズム:
各ステップは、この選択に基づいて貪欲な選択を行うことができ、最適なソリューションを決定することができます
1。この問題を解決するための貪欲アルゴリズムは、最高の全体として考えるべきではないとき、彼は地元の意味での最適なソリューションです行わ
2。貪欲な戦略は後に効果なしを持っている必要があります選択しない、すなわち、処理前の状態では、関連の現在の状態のみの状態の将来に影響することはありません
3。タイトル貪欲戦略:N> = 5、ロープ3のカット長のできるだけ;場合ロープ4の残りの長さ、ロープの2つの長さは、ロープをカット2

 

1.まず、再帰的な動的なプログラミング、動的プログラミングアプローチは、スペース効率の変化に実際に時間効率地区です。

Testクラス{パブリック
(N-INT)getMax int型のpublic static {
     // それは0を返し、所望の長さN> 1は、無効なエントリを示し

IF(N <2){
;戻り0
}
     // 2の長さは、必要なセグメント数カットM> 1は、それが最も大きい1 = 1x1-。

IF(N - == 2){
  リターン1;
}
     //長さは3、カットM> 1必要なセグメントの数であり、それはほとんどの2 = 1×2である

IF(== N-3) {
戻り2;
}
0-Nの最大長から//ストア結果
INT [] =もたらす新しい新しいINT [N- + 1];
結果[0] = 0;
結果= 1 [1];
結果[2] = 2;
RESULT = 3 [3];
//はボトムアップからの溶液始まる
INT最大= 0;
のために(INT I = 4; I <= N; I ++){
       //各製品最大空

0 =マックス;
       //計算するF(j)は、Fの最大値(IJ)を乗じ、及びjが繰り返されるよりIの半分以上が算出され、I Jを考慮することのみ必要であるので、より多くのケースの半分以下である

(INT J =用。1; J <= I / 2、J ++){
         //計算F(J)F()のIJを乗じて

INT = tempResult結果[J] *結果[のIJ];
IF(MAX <tempResultを){
最大= tempResult;
}
         //テーブルF(I)= MAX(F(J)・F()のIJ)が更新

; [I] = maxの結果
}
}
マックス= [N-その結果、
リターンmaxを;
}

}

貪欲なアルゴリズムを用いて得られた2最適なソリューション:
public static int getMaxValue(int n){
if(n<2) {
return 0;
}
if(n==2) {
return 1;
}
if(n==3) {
return 2;
}
//先求出长度为3的段一共有多少段
int countOfThree=n/3;
//再看除了长度为3的段,还剩下多少米,如果还剩1米则表示有(n-1)个3和一个4,
// 所以要把上一步算出来的3的个数减1,把最后的4剪成两段长度为2的绳子
if(n-countOfThree*3==1){
countOfThree-=1;
}
//当剩下的绳子长度为4时,把绳子剪成两段长度为2的绳子
int countOfTwo=(n-countOfThree*3)/2;
//计算所有的3的countOfThree次方,再乘以剩下2的countOfTwo次方
return (int) ((Math.pow(3, countOfThree))*(Math.pow(2, countOfTwo)));
}
 

おすすめ

転載: www.cnblogs.com/cdlyy/p/12153369.html