Maison Java javaDidacticiel Explication détaillée du problème de changement de la programmation dynamique

Explication détaillée du problème de changement de la programmation dynamique

Jul 20, 2017 pm 01:35 PM
动态规划 问题

Problème de changement : le montant de la monnaie requis est W, les valeurs faciales des pièces sont (d1, d2, d3,..., dm), combien de pièces sont nécessaires au moins.

Question : Le montant de la monnaie requis est de 8, les valeurs nominales des pièces sont (1, 3, 2, 5), combien de pièces sont nécessaires au moins.

Soit F(j) représente le nombre minimum de monnaie lorsque le montant total est j, F(0) = 0, W représente le montant de la monnaie, et il y a un tas de monnaie {d1, d2, d3 ,..., dm} . Également basé sur l'expérience antérieure, pour atteindre j, il doit s'agir du nombre de pièces d'une valeur nominale de j – di(1 <= i <= m) plus 1 pièce d'une valeur nominale de di. Bien sûr, j. >= di, c'est-à-dire F (j) = F(j - di) + 1, j >= di. Python3

balise

 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 }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Problèmes d'évaluation de l'effet de clustering dans les algorithmes de clustering Problèmes d'évaluation de l'effet de clustering dans les algorithmes de clustering Oct 10, 2023 pm 01:12 PM

Le problème d'évaluation de l'effet de clustering dans l'algorithme de clustering nécessite des exemples de code spécifiques. Le clustering est une méthode d'apprentissage non supervisée qui regroupe des échantillons similaires dans une seule catégorie en regroupant les données. Dans les algorithmes de clustering, la manière d’évaluer l’effet du clustering est une question importante. Cet article présentera plusieurs indicateurs d'évaluation de l'effet de clustering couramment utilisés et donnera des exemples de code correspondants. 1. Indice d'évaluation de l'effet de clustering Coefficient Silhouette Le coefficient Silhouette évalue l'effet de clustering en calculant la proximité de l'échantillon et le degré de séparation des autres clusters.

Résoudre le problème « erreur : redéfinition de la classe 'ClassName' » qui apparaît dans le code C++ Résoudre le problème « erreur : redéfinition de la classe 'ClassName' » qui apparaît dans le code C++ Aug 25, 2023 pm 06:01 PM

Résolvez le problème « erreur : redéfinition de la classe 'ClassName » dans le code C++. Dans la programmation C++, nous rencontrons souvent diverses erreurs de compilation. L'une des erreurs courantes est "error: redefinitionofclass 'ClassName'" (erreur de redéfinition de la classe 'ClassName'). Cette erreur se produit généralement lorsque la même classe est définie plusieurs fois. Cet article sera

Comment écrire un algorithme de programmation dynamique en utilisant C# Comment écrire un algorithme de programmation dynamique en utilisant C# Sep 20, 2023 pm 04:03 PM

Comment utiliser C# pour écrire un algorithme de programmation dynamique Résumé : La programmation dynamique est un algorithme courant pour résoudre des problèmes d'optimisation et convient à une variété de scénarios. Cet article explique comment utiliser C# pour écrire des algorithmes de programmation dynamique et fournit des exemples de code spécifiques. 1. Qu'est-ce qu'un algorithme de programmation dynamique ? La programmation dynamique (DP) est une idée algorithmique utilisée pour résoudre des problèmes avec des sous-problèmes qui se chevauchent et des propriétés de sous-structure optimales. La programmation dynamique décompose le problème en plusieurs sous-problèmes à résoudre et enregistre la solution à chaque sous-problème.

Apprenez à diagnostiquer les problèmes courants de l'iPhone Apprenez à diagnostiquer les problèmes courants de l'iPhone Dec 03, 2023 am 08:15 AM

Connu pour ses performances puissantes et ses fonctionnalités polyvalentes, l’iPhone n’est pas à l’abri de contretemps ou de difficultés techniques occasionnelles, un trait commun aux appareils électroniques complexes. Rencontrer des problèmes avec votre iPhone peut être frustrant, mais aucune alarme n'est généralement nécessaire. Dans ce guide complet, nous visons à démystifier certains des défis les plus fréquemment rencontrés associés à l’utilisation de l’iPhone. Notre approche étape par étape est conçue pour vous aider à résoudre ces problèmes courants, en vous proposant des solutions pratiques et des conseils de dépannage pour remettre votre équipement en parfait état de fonctionnement. Que vous soyez confronté à un problème ou à un problème plus complexe, cet article peut vous aider à les résoudre efficacement. Conseils de dépannage généraux Avant de passer aux étapes de dépannage spécifiques, voici quelques conseils utiles

Analyse d'algorithme PHP : Comment utiliser un algorithme de programmation dynamique pour résoudre le problème de sous-chaîne palindrome la plus longue ? Analyse d'algorithme PHP : Comment utiliser un algorithme de programmation dynamique pour résoudre le problème de sous-chaîne palindrome la plus longue ? Sep 19, 2023 pm 12:19 PM

Analyse d'algorithme PHP : Comment utiliser un algorithme de programmation dynamique pour résoudre le problème de sous-chaîne palindrome la plus longue ? La programmation dynamique (programmation dynamique) est une idée d'algorithme couramment utilisée qui peut résoudre de nombreux problèmes complexes. L’un d’eux est le problème de la sous-chaîne palindrome la plus longue, qui consiste à trouver la longueur de la sous-chaîne palindrome la plus longue dans une chaîne. Cet article explique comment utiliser PHP pour écrire un algorithme de programmation dynamique afin de résoudre ce problème et fournit des exemples de code spécifiques. Définissons d’abord la sous-chaîne palindrome la plus longue. Une chaîne palindrome fait référence à une chaîne qui lit la même chose vers l'avant et vers l'arrière, et la chaîne palindrome

Comment utiliser l'algorithme du problème du sac à dos en C++ Comment utiliser l'algorithme du problème du sac à dos en C++ Sep 21, 2023 pm 02:18 PM

Comment utiliser l'algorithme du problème du sac à dos en C++ Le problème du sac à dos est l'un des problèmes classiques des algorithmes informatiques. Il implique la manière de sélectionner certains éléments à mettre dans le sac à dos en fonction d'une capacité donnée du sac à dos afin de maximiser la valeur totale des éléments. Cet article présentera en détail comment utiliser l'algorithme de programmation dynamique en C++ pour résoudre le problème du sac à dos et donnera des exemples de code spécifiques. Tout d’abord, nous devons définir l’entrée et la sortie du problème du sac à dos. L'entrée inclut le tableau de poids wt[] de l'article, le tableau de valeurs val[] de l'article et la capacité W du sac à dos. Le résultat est quels objets sont sélectionnés

Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Feb 19, 2024 pm 02:01 PM

Pour résoudre le problème selon lequel jQuery.val() ne peut pas être utilisé, des exemples de code spécifiques sont requis. Pour les développeurs front-end, l'utilisation de jQuery est l'une des opérations courantes. Parmi eux, utiliser la méthode .val() pour obtenir ou définir la valeur d'un élément de formulaire est une opération très courante. Cependant, dans certains cas précis, le problème de ne pas pouvoir utiliser la méthode .val() peut se poser. Cet article présentera quelques situations et solutions courantes, et fournira des exemples de code spécifiques. Description du problème Lorsque vous utilisez jQuery pour développer des pages frontales, vous rencontrerez parfois

Problème d'acquisition d'étiquettes dans l'apprentissage faiblement supervisé Problème d'acquisition d'étiquettes dans l'apprentissage faiblement supervisé Oct 08, 2023 am 09:18 AM

Le problème d'acquisition d'étiquettes dans l'apprentissage faiblement supervisé nécessite des exemples de code spécifiques Introduction : L'apprentissage faiblement supervisé est une méthode d'apprentissage automatique qui utilise des étiquettes faibles pour la formation. Différent de l’apprentissage supervisé traditionnel, l’apprentissage faiblement supervisé n’a besoin que d’utiliser moins d’étiquettes pour former le modèle, plutôt que chaque échantillon doit avoir une étiquette précise. Cependant, dans l’apprentissage faiblement supervisé, la manière d’obtenir avec précision des informations utiles à partir d’étiquettes faibles est une question clé. Cet article présentera le problème d'acquisition d'étiquettes dans l'apprentissage faiblement supervisé et donnera des exemples de code spécifiques. Introduction au problème d’acquisition de labels en apprentissage faiblement supervisé :

See all articles