bitcoin
bitcoin

$108759.469851 USD

0.56%

ethereum
ethereum

$2639.977809 USD

4.06%

tether
tether

$1.000245 USD

0.04%

xrp
xrp

$2.310605 USD

1.01%

bnb
bnb

$684.303317 USD

1.77%

solana
solana

$174.782159 USD

1.40%

usd-coin
usd-coin

$0.999788 USD

0.04%

dogecoin
dogecoin

$0.224130 USD

0.41%

cardano
cardano

$0.754271 USD

0.28%

tron
tron

$0.279161 USD

1.91%

sui
sui

$3.680142 USD

6.54%

hyperliquid
hyperliquid

$35.540472 USD

-2.94%

chainlink
chainlink

$15.864623 USD

3.29%

avalanche
avalanche

$23.620051 USD

3.57%

stellar
stellar

$0.287340 USD

1.17%

Vidéo d’actualité sur les crypto-monnaies

Résoudre le problème du changement de pièce: éviter les changements involontaires dans les dictionnaires Python

May 27, 2025 at 05:49 pm vlogize

Apprenez à résoudre efficacement le problème de changement de pièce dans Python, en abordant les pièges communs comme les changements de dictionnaire non désirés en utilisant la programmation dynamique. --- Cette vidéo est basée sur la question https://stackoverflow.com/q/68149114/ demandée par l'utilisateur 'Random' (https://stackoverflow.com/u/12984137/) et sur la réponse https://stackoverflow.com/a/68150207/ par l'utilisateur 'TRINCO https://stackoverflow.com/u/5459839/) sur le site "Stack Overflow '. Merci à ces grands utilisateurs et à la communauté StacKExchange pour leurs contributions. Visitez ces liens pour le contenu original et tout plus de détails, tels que des solutions alternatives, les dernières mises à jour / développements sur le sujet, les commentaires, l'historique de révision, etc. Par exemple, le titre original de la question était: les modifications involontaires dans le contenu du dictionnaire lors de la résolution du problème de changement de pièce également, le contenu (sauf de la musique) sous licence CC par https://meta. 'CC BY-SA 4.0' (https://creativecommons.org/licenses/by-sa/4.0/), et le poste de réponse original est concédé sous licence 'CC BY-SA 4.0' (https://cretivecomons.org/licenses/by-sa/4.0/). Si quelque chose vous semble, n'hésitez pas à m'écrire chez vlogize [at] gmail [dot] com. --- Attaquer le problème du changement de pièce: éviter les changements involontaires dans les dictionnaires Python Le problème de changement de pièce est un défi classique dans la conception d'algorithmes, souvent rencontré dans les entretiens codants et la programmation compétitive. La tâche est simple: étant donné une liste de dénominations de pièces et une somme cible, trouvez toutes les combinaisons possibles pour former cette somme en utilisant ces pièces avec l'option d'utiliser chaque pièce plusieurs fois. Par exemple, avec une somme cible de 4 et des pièces [1, 2, 3], les combinaisons incluraient [1,1,1,1], [1,1,2], [2,2], [1,3], et plus encore. Cependant, un problème courant se pose lors de la création d'une solution en utilisant des stratégies récursives avec une programmation dynamique. En particulier, des changements involontaires peuvent se produire dans le contenu des dictionnaires, ce qui conduit à des résultats incorrects. Plongeons plus profondément sur la façon de résoudre efficacement ce problème. Comprenant le problème dans l'extrait de code fourni, une tentative a été faite pour garder une trace des combinaisons à l'aide d'un dictionnaire appelé mémo. Ceci est conçu pour stocker des combinaisons précédemment calculées pour des sommes cibles spécifiques, ce qui améliore l'efficacité. Cependant, certaines erreurs peuvent entraîner des mutations dans les listes stockées, entraînant des sorties défectueuses. Le problème avec la mutabilité dans Python, les listes sont des objets mutables. Lorsqu'une liste est annexée ou modifiée d'une manière qui fait référence à une autre liste, elle peut conduire à un comportement inattendu: exemple de mutation: lorsque vous utilisez I.APPEND (NUM), si je me réfère à une liste déjà dans le mémo, cela modifiera également l'entrée dans le mémo. Ainsi, plusieurs combinaisons refléteront des changements inattendus dans leurs valeurs. La sortie incorrecte lors du test du code avec l'appel de fonction: [[voir la vidéo pour révéler cet extrait de texte ou de code]] Vous pouvez obtenir des résultats incorrects comme: [[voir la vidéo pour révéler cet extrait de texte ou de code]] Cela reflète que le dictionnaire mémo contient des entrées qui ne devraient pas afficher des valeurs connues précédemment dans un état muté. Étapes pour corriger l'approche pour obtenir une solution appropriée, nous devons nous concentrer sur les modifications suivantes: 1. Construire correctement les nouvelles listes au lieu de muter une liste existante, créez une nouvelle liste lors de l'ajout d'une pièce. La ligne de code mise à jour doit se lire: [[voir la vidéo pour révéler cet extrait de texte ou de code]] De cette façon, chaque combinaison créée est indépendante des autres déjà stockés dans Mémo. 2. Base Case Correction Instead of returning [[0]], which unnecessarily adds zero to each combination, return an empty list indicating there's one way to create a sum of zero: [[See Video to Reveal this Text or Code Snippet]] 3. Dynamic Calculation of Remainders Instead of keeping a separate remainder variable, directly compute the value during the recursive call: [[See Video to Reveal this Text or Code Snippet]] This eliminates the risk of changements cumulatifs involontaires. 4. Exclure les permutations Si vous avez besoin de combinaisons sans permutations, vous devez maintenir un sens de l'ordre lorsque vous envisagez des pièces: [[voir la vidéo pour révéler cet extrait de texte ou de code]] Cela nécessite des ajustements à vos appels récursifs et vous permet de spécifier quelles pièces peuvent toujours être utilisées. Solution finale En implémentant les corrections énumérées ci-dessus, voici une solution complète au problème de changement de pièce: [[voir la vidéo pour révéler cet extrait de texte ou de code]] Lorsque vous testez cette fonction raffinée avec: [[voir la vidéo pour révéler cet extrait de texte ou de code]] Vous devez recevoir les sorties précises attendues! Conclusion Le problème de changement de pièce est un excellent exemple de la façon dont les erreurs subtiles dans la manipulation des objets mutables peuvent conduire à des écarts majeurs dans les résultats. En appliquant des pointeurs prudents pour copier des listes et en utilisant efficacement les techniques de programmation dynamique, on peut résoudre ce problème efficacement. Happy Codin
Source vidéo:Youtube

Clause de non-responsabilité:info@kdj.com

Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!

Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.

Autres vidéos publiées sur May 29, 2025