Comment implémenter un algorithme glouton en utilisant Python ?
Greedy Algorithm est un algorithme simple et efficace adapté à la résolution de problèmes avec des propriétés de sous-structure optimales. Il prend le meilleur choix dans l’état actuel à chaque étape de sélection, en espérant trouver la solution globale optimale. Dans cet article, nous présenterons comment utiliser Python pour implémenter l'algorithme glouton, avec des exemples de code spécifiques.
1. L'idée de base de l'algorithme glouton
L'idée de base de l'algorithme glouton est de sélectionner la solution optimale dans l'état actuel à chaque étape, puis de passer à l'étape suivante. L'algorithme glouton n'est pas un algorithme qui peut résoudre tous les problèmes, mais convient à certains problèmes avec des propriétés de sélection gloutonnes. Ces problèmes ont les deux caractéristiques suivantes :
Sur la base de ces deux caractéristiques, lorsque vous utilisez l'algorithme glouton, vous devez faire attention à savoir si le problème satisfait aux propriétés optimales de la sous-structure et sélectionner raisonnablement la solution optimale pour chaque étape.
2. Étapes de mise en œuvre de l'algorithme glouton
Les étapes de mise en œuvre de l'algorithme glouton comprennent généralement les étapes suivantes :
3. Exemple d'utilisation de Python pour implémenter l'algorithme glouton
Ce qui suit prend le problème du changement comme exemple pour montrer comment utiliser Python pour implémenter l'algorithme glouton.
Question : Supposons qu'il y ait des billets de 1 yuan, 2 yuans, 5 yuans, 10 yuans, 20 yuans, 50 yuans et 100 yuans, et que le nombre de monnaie requis pour rendre au client est de n yuans, comment utiliser le minimum nombre de billets pour changer de client client ?
Idée de mise en œuvre :
Ce qui suit est un exemple de code spécifique d'utilisation de Python pour implémenter un algorithme glouton pour résoudre le problème de changement :
def make_change(n): denominations = [100, 50, 20, 10, 5, 2, 1] count = 0 for denomination in denominations: count += n // denomination n = n % denomination return count # 测试示例 print(make_change(47)) # 输出结果为4,使用1个20元、2个2元和1个1元 print(make_change(123)) # 输出结果为6,使用1个100元、1个20元和3个1元
Dans le code ci-dessus, la fonction make_change reçoit un entier n en tant que paramètre, indiquant le nombre de changements requis. Tout d’abord, définissez une liste de coupures de billets de banque, classées par ordre décroissant. Ensuite, utilisez une boucle for pour parcourir chaque dénomination et calculer le nombre de billets requis et le montant restant. Enfin, renvoyez le nombre de billets comptés.
L'exemple ci-dessus montre comment utiliser Python pour implémenter un algorithme glouton afin de résoudre le problème du changement. Les étapes de mise en œuvre de l'algorithme glouton consistent à déterminer les propriétés de sélection glouton du problème, à décomposer le problème en plusieurs sous-problèmes, à concevoir un algorithme glouton pour résoudre chaque sous-problème et à fusionner les solutions optimales locales.
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!