From 15e74d22b5cdc859a7f71b0828786a85e19e337b Mon Sep 17 00:00:00 2001 From: Hughes Perreault Date: Thu, 27 Oct 2016 04:15:08 -0400 Subject: A translation of dynamic programming in french (#2465) * A translation of dynamic programming in french Issue #2464 * few small corrections voir => le voir, correction du spacing entre "{" "}", ajout d'espaces avant les ":", suppression de " ``` " inutile, suppression du proverbe Issue #2465 --- fr-fr/dynamic-programming-fr.html.markdown | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 fr-fr/dynamic-programming-fr.html.markdown (limited to 'fr-fr/dynamic-programming-fr.html.markdown') diff --git a/fr-fr/dynamic-programming-fr.html.markdown b/fr-fr/dynamic-programming-fr.html.markdown new file mode 100644 index 00000000..24e8c95f --- /dev/null +++ b/fr-fr/dynamic-programming-fr.html.markdown @@ -0,0 +1,55 @@ +--- +category: Algorithms & Data Structures +name: Dynamic Programming +contributors: + - ["Akashdeep Goel", "http://github.com/akashdeepgoel"] +translators: + - ["Hughes Perreault", "https://github.com/hperreault"] +lang: fr-fr +--- + + +# Programmation dynamique + +## Introduction + +La programmation dynamique est une technique très efficace pour résoudre une certaine classe de problèmes, comme nous allons le voir. L'idée est très simple, si nous avons résolu un problème avec une certaine entrée, alors nous sauvons le résultat pour pouvoir y accéder plus tard, pour éviter d'avoir à le calculer à nouveau. + +## Moyens de résoudre ces problèmes + +1.) *De haut en bas* : Commençons à résoudre le problème en le séparant en morceaux. Si nous voyons que le problème a déjà été résolu, alors nous retournons la réponse précédemment sauvegardée. Si le problème n'a pas été résolu, alors nous le résolvons et sauvegardons la réponse. C'est généralement facile et intuitif de réfléchir de cette façon. Cela s'appelle la Mémorisation. + +2.) *De bas en haut* : Il faut analyser le problème et trouver les sous-problèmes, et l'ordre dans lequel il faut les résoudre. Ensuite, nous devons résoudre les sous-problèmes et monter jusqu'au problème que nous voulons résoudre. De cette façon, nous sommes assurés que les sous-problèmes sont résolus avant de résoudre le vrai problème. Cela s'appelle la Programmation Dynamique. + +## Exemple de Programmation Dynamique + +Le problème de la plus grande sous-chaîne croissante est de trouver la plus grande sous-chaîne croissante dans une chaîne. Soit la chaîne `S = {a1, a2, a3, a4, ............., an-1, an}`, nous avons à trouver la plus grande chaîne telle que pour tout `j` et `i`, `j a[j] and LS[i]