Heim > Java > javaLernprogramm > Detaillierte Erläuterung des Änderungsproblems der dynamischen Programmierung

Detaillierte Erläuterung des Änderungsproblems der dynamischen Programmierung

零下一度
Freigeben: 2017-07-20 13:35:00
Original
2886 Leute haben es durchsucht

Wechselgeldproblem: Der benötigte Wechselgeldbetrag ist W, die Nennwerte der Münzen sind (d1, d2, d3,..., dm), wie viele Münzen werden mindestens benötigt.

Frage: Der benötigte Wechselgeldbetrag beträgt 8, die Nennwerte der Münzen sind (1, 3, 2, 5), wie viele Münzen werden mindestens benötigt.

Sei F(j) die minimale Anzahl an Wechselgeldern, wenn der Gesamtbetrag j ist, F(0) = 0, W den Wechselgeldbetrag darstellt und es einen Wechselgeldhaufen {d1, d2, d3 gibt ,..., dm} . Basierend auf früheren Erfahrungen muss es, um j zu erreichen, die Anzahl der Münzen mit einem Nennwert von j sein – di(1 <= i <= m) plus 1 Münze mit einem Nennwert von di >= di, das heißt F (j) = F(j - di) + 1, j >= di. Python3

Tag

 1 package com.algorithm.dynamicprogramming; 2  3 import java.util.Arrays; 4  5 /** 6  * 找零问题 7  * Created by yulinfeng on 7/5/17. 8  */ 9 public class Money {10     public static void main(String[] args) {11         int[] money = {1, 3, 2, 5};12         int sum = 8;13         int count = money(money, sum);14         System.out.println(count);15     }16 17     private static int money(int[] money, int sum) {18         int[] count = new int[sum + 1];19         count[0] = 0;20         for (int j = 1; j < sum + 1; j++) { //总金额数,1,2,3,……,sum21             int minCoins = j;22             for (int i = 0; i < money.length; i++) {    //遍历硬币的面值23                 if (j - money[i] >= 0) {24                     int temp = count[j - money[i]] + 1; //当前所需硬币数25                     if (temp < minCoins) {26                         minCoins = temp;27                     }28                 }29             }30 31             count[j] = minCoins;32         }33         System.out.println(Arrays.toString(count));34         return count[sum];35     }36 }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Änderungsproblems der dynamischen Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage