通貨兌換(ダイナミック・プログラミング) - Pythonの実現

動的計画法の#を解決外貨両替問題
V1、V2の#通貨硬貨の金種がnあり、V3 ... VN、V1 = 1、両替の合計値とお金の使用は、どのようにコインの最小数を見つけるために、ここで、即ち、X1、X2、X3 ... XN最小合計
#入力:公称様々な通貨V1の値は、V2、V3 ... VN、お金の合計値を償還します
#出力:為替の最低額を取得
 
1枚の #の額面は、マネーシステムを変更し
2 V = [1,2,5,10,50 ]
 。3  金額が交換お金を変更する
。4マネー= 253
1つの 0の各々に対する貨幣の初期量
2 X = [0] * lenは(V)を
 3  為替テーブルの対応する数= Q [マネー+ 1] [LEN(V)+ +1]確立する
。4 Q = [([0を] *(LEN(V)+ +1))のための I における範囲(0、+マネー。1 )]
1つの Qのテーブル初期化:最初の列の最初の行は0に設定されている
2   Iを範囲(0、+マネー1 。3      Q [I] [0] = 0
 4。 ための I における範囲(0、LEN(V)+ +1  。5      Q [0] [I] = 0
1つの シート処理
2   I における範囲(1、金+ 1 。3       J における範囲(1、LEN(V)+ +1 ):
 4          IF V [J-1] == I:         #1 金種= I 
5              Q [I] [J] = 1。
 6。         ELIFの V [J-1]> I:        #1 金種> I 
。7              Q [I] [J] = Q [I]、[J-1 ]
 8。          #1 金種<私
9              Q [I] [J] = Q [IV [-J 1] [J] +。1つの         #のIV [j]は、iの公称値であります

関数の呼び出し:

。1つの 印刷(Q); 印刷' \ N- ' 2  印刷は、' 交換は通貨の最小数を得た:'、Q [マネー] [LEN(V)])

結果:

 通貨換算のための少なくともた数:7 

 

おすすめ

転載: www.cnblogs.com/aiyou-3344520/p/11696053.html