[{"data":1,"prerenderedAt":10200},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique":585,"\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique__counterpart":4272,"\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique__slides":5603,"annexes-memo:\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique":7332,"annexes-slides:\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique":8560},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",{"id":586,"title":578,"bo":587,"body":589,"description":4258,"eval":4259,"extension":4260,"labo":4259,"meta":4261,"navigation":4262,"path":579,"quizzes":4263,"readingTime":1421,"seo":4270,"stem":580,"tp":4259,"__hash__":4271},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.md",[588],"TE04",{"type":590,"value":591,"toc":4245},"minimark",[592,597,614,625,628,632,635,651,658,662,960,966,1403,1408,1509,1743,1747,1750,1877,2112,2122,2126,2162,2325,2412,2436,2440,2739,2753,2757,2964,3224,3265,3269,3276,3401,4021,4190,4210,4214,4241],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609,610,613],"p",{},"La ",[602,603,604],"strong",{},"programmation dynamique"," est une méthode qui s'applique aux problèmes\ndont la solution se décompose en ",[602,607,608],{},"sous-problèmes qui se chevauchent",".\nPlutôt que de recalculer chaque sous-problème à chaque fois qu'on le\nrencontre, on ",[602,611,612],{},"mémorise"," son résultat. Cette idée simple transforme\nsouvent un algorithme exponentiel en un algorithme polynomial.",[598,615,616,617,620,621,624],{},"C'est exactement la posture du ",[602,618,619],{},"caissier"," qui, pour rendre la monnaie,\nn'invente pas chaque fois la combinaison : il connaît déjà le rendu pour\nles petites sommes courantes et les combine. C'est aussi celle du joueur\nde ",[602,622,623],{},"Sudoku"," qui, plutôt que de tout recommencer, note dans chaque case\nles chiffres encore possibles — il mémorise ce qu'il a déjà déduit pour ne\npas le redéduire à chaque coup.",[626,627],"bo-ref",{"code":588},[593,629,631],{"id":630},"les-deux-conditions-dapplication","Les deux conditions d'application",[598,633,634],{},"Un problème se prête à la programmation dynamique si :",[636,637,638,645],"ol",{},[639,640,641,644],"li",{},[602,642,643],{},"Sous-structure optimale"," — la solution optimale du problème se construit\nà partir des solutions optimales de ses sous-problèmes.",[639,646,647,650],{},[602,648,649],{},"Chevauchement des sous-problèmes"," — les mêmes sous-problèmes apparaissent\nplusieurs fois dans la résolution récursive naïve.",[598,652,653,654,657],{},"Sans la condition 2, diviser pour régner suffit (chaque sous-problème est\nunique). Avec la condition 2, on ",[602,655,656],{},"doit"," mémoriser pour ne pas exploser.",[593,659,661],{"id":660},"exemple-central-le-rendu-de-monnaie","Exemple central : le rendu de monnaie",[598,663,664,667,668,899,900,930,931,959],{},[602,665,666],{},"Problème"," : étant donné un système de pièces ",[669,670,673,736],"span",{"className":671},[672],"katex",[669,674,677],{"className":675},[676],"katex-mathml",[678,679,681],"math",{"xmlns":680},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[682,683,684,731],"semantics",{},[685,686,687,691,695,699,708,712,719,721,724,728],"mrow",{},[688,689,690],"mi",{},"P",[692,693,694],"mo",{},"=",[692,696,698],{"stretchy":697},"false","{",[700,701,702,704],"msub",{},[688,703,598],{},[705,706,707],"mn",{},"1",[692,709,711],{"separator":710},"true",",",[700,713,714,716],{},[688,715,598],{},[705,717,718],{},"2",[692,720,711],{"separator":710},[692,722,723],{},"…",[725,726,727],"mtext",{}," ",[692,729,730],{"stretchy":697},"}",[732,733,735],"annotation",{"encoding":734},"application\u002Fx-tex","P = \\{p_1, p_2, \\dots\\}",[669,737,740,767],{"className":738,"ariaHidden":710},[739],"katex-html",[669,741,744,749,755,760,764],{"className":742},[743],"base",[669,745],{"className":746,"style":748},[747],"strut","height:0.6833em;",[669,750,690],{"className":751,"style":754},[752,753],"mord","mathnormal","margin-right:0.1389em;",[669,756],{"className":757,"style":759},[758],"mspace","margin-right:0.2778em;",[669,761,694],{"className":762},[763],"mrel",[669,765],{"className":766,"style":759},[758],[669,768,770,774,778,834,838,842,882,885,888,892,895],{"className":769},[743],[669,771],{"className":772,"style":773},[747],"height:1em;vertical-align:-0.25em;",[669,775,698],{"className":776},[777],"mopen",[669,779,781,784],{"className":780},[752],[669,782,598],{"className":783},[752,753],[669,785,788],{"className":786},[787],"msupsub",[669,789,793,825],{"className":790},[791,792],"vlist-t","vlist-t2",[669,794,797,820],{"className":795},[796],"vlist-r",[669,798,802],{"className":799,"style":801},[800],"vlist","height:0.3011em;",[669,803,805,810],{"style":804},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[669,806],{"className":807,"style":809},[808],"pstrut","height:2.7em;",[669,811,817],{"className":812},[813,814,815,816],"sizing","reset-size6","size3","mtight",[669,818,707],{"className":819},[752,816],[669,821,824],{"className":822},[823],"vlist-s","​",[669,826,828],{"className":827},[796],[669,829,832],{"className":830,"style":831},[800],"height:0.15em;",[669,833],{},[669,835,711],{"className":836},[837],"mpunct",[669,839],{"className":840,"style":841},[758],"margin-right:0.1667em;",[669,843,845,848],{"className":844},[752],[669,846,598],{"className":847},[752,753],[669,849,851],{"className":850},[787],[669,852,854,874],{"className":853},[791,792],[669,855,857,871],{"className":856},[796],[669,858,860],{"className":859,"style":801},[800],[669,861,862,865],{"style":804},[669,863],{"className":864,"style":809},[808],[669,866,868],{"className":867},[813,814,815,816],[669,869,718],{"className":870},[752,816],[669,872,824],{"className":873},[823],[669,875,877],{"className":876},[796],[669,878,880],{"className":879,"style":831},[800],[669,881],{},[669,883,711],{"className":884},[837],[669,886],{"className":887,"style":841},[758],[669,889,723],{"className":890},[891],"minner",[669,893],{"className":894,"style":841},[758],[669,896,730],{"className":897},[898],"mclose"," et\nune somme ",[669,901,903,917],{"className":902},[672],[669,904,906],{"className":905},[676],[678,907,908],{"xmlns":680},[682,909,910,915],{},[685,911,912],{},[688,913,914],{},"n",[732,916,914],{"encoding":734},[669,918,920],{"className":919,"ariaHidden":710},[739],[669,921,923,927],{"className":922},[743],[669,924],{"className":925,"style":926},[747],"height:0.4306em;",[669,928,914],{"className":929},[752,753],", combien de pièces au minimum pour rendre exactement ",[669,932,934,947],{"className":933},[672],[669,935,937],{"className":936},[676],[678,938,939],{"xmlns":680},[682,940,941,945],{},[685,942,943],{},[688,944,914],{},[732,946,914],{"encoding":734},[669,948,950],{"className":949,"ariaHidden":710},[739],[669,951,953,956],{"className":952},[743],[669,954],{"className":955,"style":926},[747],[669,957,914],{"className":958},[752,753]," ?",[598,961,962,965],{},[602,963,964],{},"Équation de récurrence"," :",[669,967,970],{"className":968},[969],"katex-display",[669,971,973,1102],{"className":972},[672],[669,974,976],{"className":975},[676],[678,977,979],{"xmlns":680,"display":978},"block",[682,980,981,1099],{},[685,982,983,986,989,991,994,996],{},[725,984,985],{},"rendre",[692,987,988],{"stretchy":697},"(",[688,990,914],{},[692,992,993],{"stretchy":697},")",[692,995,694],{},[685,997,998,1000],{},[692,999,698],{"fence":710},[1001,1002,1006,1035],"mtable",{"rowspacing":1003,"columnalign":1004,"columnspacing":1005},"0.36em","left left","1em",[1007,1008,1009,1018],"mtr",{},[1010,1011,1012],"mtd",{},[1013,1014,1016],"mstyle",{"scriptlevel":1015,"displaystyle":697},"0",[705,1017,1015],{},[1010,1019,1020],{},[1013,1021,1022],{"scriptlevel":1015,"displaystyle":697},[685,1023,1024,1027,1029,1031,1033],{},[725,1025,1026],{},"si ",[688,1028,914],{},[692,1030,694],{},[705,1032,1015],{},[692,1034,711],{"separator":710},[1007,1036,1037,1092],{},[1010,1038,1039],{},[1013,1040,1041],{"scriptlevel":1015,"displaystyle":697},[685,1042,1043,1045,1048,1079,1081,1083,1085,1088,1090],{},[705,1044,707],{},[692,1046,1047],{},"+",[700,1049,1050,1058],{},[685,1051,1052,1055],{},[688,1053,1054],{},"min",[692,1056,1057],{},"⁡",[685,1059,1060,1062,1065,1067,1069,1072,1074,1077],{},[688,1061,598],{},[692,1063,1064],{},"∈",[688,1066,690],{},[692,1068,711],{"separator":710},[725,1070,1071],{}," ",[688,1073,598],{},[692,1075,1076],{},"≤",[688,1078,914],{},[725,1080,985],{},[692,1082,988],{"stretchy":697},[688,1084,914],{},[692,1086,1087],{},"−",[688,1089,598],{},[692,1091,993],{"stretchy":697},[1010,1093,1094],{},[1013,1095,1096],{"scriptlevel":1015,"displaystyle":697},[725,1097,1098],{},"sinon.",[732,1100,1101],{"encoding":734},"\\text{rendre}(n) = \\begin{cases}\n0 & \\text{si } n = 0,\\\\\n1 + \\min_{p \\in P,\\ p \\le n} \\text{rendre}(n - p) & \\text{sinon.}\n\\end{cases}",[669,1103,1105,1136],{"className":1104,"ariaHidden":710},[739],[669,1106,1108,1111,1118,1121,1124,1127,1130,1133],{"className":1107},[743],[669,1109],{"className":1110,"style":773},[747],[669,1112,1115],{"className":1113},[752,1114],"text",[669,1116,985],{"className":1117},[752],[669,1119,988],{"className":1120},[777],[669,1122,914],{"className":1123},[752,753],[669,1125,993],{"className":1126},[898],[669,1128],{"className":1129,"style":759},[758],[669,1131,694],{"className":1132},[763],[669,1134],{"className":1135,"style":759},[758],[669,1137,1139,1143],{"className":1138},[743],[669,1140],{"className":1141,"style":1142},[747],"height:3em;vertical-align:-1.25em;",[669,1144,1146,1156,1399],{"className":1145},[891],[669,1147,1151],{"className":1148,"style":1150},[777,1149],"delimcenter","top:0em;",[669,1152,698],{"className":1153},[1154,1155],"delimsizing","size4",[669,1157,1159],{"className":1158},[752],[669,1160,1162,1325,1330],{"className":1161},[1001],[669,1163,1166],{"className":1164},[1165],"col-align-l",[669,1167,1169,1316],{"className":1168},[791,792],[669,1170,1172,1313],{"className":1171},[796],[669,1173,1176,1189],{"className":1174,"style":1175},[800],"height:1.69em;",[669,1177,1179,1183],{"style":1178},"top:-3.69em;",[669,1180],{"className":1181,"style":1182},[808],"height:3.008em;",[669,1184,1186],{"className":1185},[752],[669,1187,1015],{"className":1188},[752],[669,1190,1192,1195],{"style":1191},"top:-2.25em;",[669,1193],{"className":1194,"style":1182},[808],[669,1196,1198,1201,1205,1209,1212,1283,1286,1292,1295,1298,1301,1304,1307,1310],{"className":1197},[752],[669,1199,707],{"className":1200},[752],[669,1202],{"className":1203,"style":1204},[758],"margin-right:0.2222em;",[669,1206,1047],{"className":1207},[1208],"mbin",[669,1210],{"className":1211,"style":1204},[758],[669,1213,1216,1219],{"className":1214},[1215],"mop",[669,1217,1054],{"className":1218},[1215],[669,1220,1222],{"className":1221},[787],[669,1223,1225,1274],{"className":1224},[791,792],[669,1226,1228,1271],{"className":1227},[796],[669,1229,1232],{"className":1230,"style":1231},[800],"height:0.3283em;",[669,1233,1235,1238],{"style":1234},"top:-2.55em;margin-right:0.05em;",[669,1236],{"className":1237,"style":809},[808],[669,1239,1241],{"className":1240},[813,814,815,816],[669,1242,1244,1247,1250,1253,1256,1262,1265,1268],{"className":1243},[752,816],[669,1245,598],{"className":1246},[752,753,816],[669,1248,1064],{"className":1249},[763,816],[669,1251,690],{"className":1252,"style":754},[752,753,816],[669,1254,711],{"className":1255},[837,816],[669,1257,1259],{"className":1258},[758,816],[669,1260,1071],{"className":1261},[816],[669,1263,598],{"className":1264},[752,753,816],[669,1266,1076],{"className":1267},[763,816],[669,1269,914],{"className":1270},[752,753,816],[669,1272,824],{"className":1273},[823],[669,1275,1277],{"className":1276},[796],[669,1278,1281],{"className":1279,"style":1280},[800],"height:0.2861em;",[669,1282],{},[669,1284],{"className":1285,"style":841},[758],[669,1287,1289],{"className":1288},[752,1114],[669,1290,985],{"className":1291},[752],[669,1293,988],{"className":1294},[777],[669,1296,914],{"className":1297},[752,753],[669,1299],{"className":1300,"style":1204},[758],[669,1302,1087],{"className":1303},[1208],[669,1305],{"className":1306,"style":1204},[758],[669,1308,598],{"className":1309},[752,753],[669,1311,993],{"className":1312},[898],[669,1314,824],{"className":1315},[823],[669,1317,1319],{"className":1318},[796],[669,1320,1323],{"className":1321,"style":1322},[800],"height:1.19em;",[669,1324],{},[669,1326],{"className":1327,"style":1329},[1328],"arraycolsep","width:1em;",[669,1331,1333],{"className":1332},[1165],[669,1334,1336,1391],{"className":1335},[791,792],[669,1337,1339,1388],{"className":1338},[796],[669,1340,1342,1374],{"className":1341,"style":1175},[800],[669,1343,1344,1347],{"style":1178},[669,1345],{"className":1346,"style":1182},[808],[669,1348,1350,1356,1359,1362,1365,1368,1371],{"className":1349},[752],[669,1351,1353],{"className":1352},[752,1114],[669,1354,1026],{"className":1355},[752],[669,1357,914],{"className":1358},[752,753],[669,1360],{"className":1361,"style":759},[758],[669,1363,694],{"className":1364},[763],[669,1366],{"className":1367,"style":759},[758],[669,1369,1015],{"className":1370},[752],[669,1372,711],{"className":1373},[837],[669,1375,1376,1379],{"style":1191},[669,1377],{"className":1378,"style":1182},[808],[669,1380,1382],{"className":1381},[752],[669,1383,1385],{"className":1384},[752,1114],[669,1386,1098],{"className":1387},[752],[669,1389,824],{"className":1390},[823],[669,1392,1394],{"className":1393},[796],[669,1395,1397],{"className":1396,"style":1322},[800],[669,1398],{},[669,1400],{"className":1401},[898,1402],"nulldelimiter",[1404,1405,1407],"h3",{"id":1406},"version-récursive-naïve-exponentielle","Version récursive naïve — exponentielle",[1409,1410,1415],"pre",{"className":1411,"code":1412,"language":1413,"meta":1414,"style":1414},"language-python shiki shiki-themes github-light github-light github-dark","def rendre_naif(n, pieces):\n    if n == 0: return 0\n    return 1 + min(rendre_naif(n - p, pieces)\n                   for p in pieces if p \u003C= n)\n","python","",[1416,1417,1418,1434,1459,1483],"code",{"__ignoreMap":1414},[669,1419,1422,1426,1430],{"class":1420,"line":1421},"line",1,[669,1423,1425],{"class":1424},"s8jYJ","def",[669,1427,1429],{"class":1428},"snPdu"," rendre_naif",[669,1431,1433],{"class":1432},"sxrX7","(n, pieces):\n",[669,1435,1437,1440,1443,1446,1450,1453,1456],{"class":1420,"line":1436},2,[669,1438,1439],{"class":1424},"    if",[669,1441,1442],{"class":1432}," n ",[669,1444,1445],{"class":1424},"==",[669,1447,1449],{"class":1448},"sBjJW"," 0",[669,1451,1452],{"class":1432},": ",[669,1454,1455],{"class":1424},"return",[669,1457,1458],{"class":1448}," 0\n",[669,1460,1462,1465,1468,1471,1474,1477,1480],{"class":1420,"line":1461},3,[669,1463,1464],{"class":1424},"    return",[669,1466,1467],{"class":1448}," 1",[669,1469,1470],{"class":1424}," +",[669,1472,1473],{"class":1448}," min",[669,1475,1476],{"class":1432},"(rendre_naif(n ",[669,1478,1479],{"class":1424},"-",[669,1481,1482],{"class":1432}," p, pieces)\n",[669,1484,1486,1489,1492,1495,1498,1501,1503,1506],{"class":1420,"line":1485},4,[669,1487,1488],{"class":1424},"                   for",[669,1490,1491],{"class":1432}," p ",[669,1493,1494],{"class":1424},"in",[669,1496,1497],{"class":1432}," pieces ",[669,1499,1500],{"class":1424},"if",[669,1502,1491],{"class":1432},[669,1504,1505],{"class":1424},"\u003C=",[669,1507,1508],{"class":1432}," n)\n",[598,1510,1511,1512,1565,1566,1654,1655,1658,1659,1687,1688,1742],{},"Pour ",[669,1513,1515,1534],{"className":1514},[672],[669,1516,1518],{"className":1517},[676],[678,1519,1520],{"xmlns":680},[682,1521,1522,1531],{},[685,1523,1524,1526,1528],{},[688,1525,914],{},[692,1527,694],{},[705,1529,1530],{},"30",[732,1532,1533],{"encoding":734},"n = 30",[669,1535,1537,1555],{"className":1536,"ariaHidden":710},[739],[669,1538,1540,1543,1546,1549,1552],{"className":1539},[743],[669,1541],{"className":1542,"style":926},[747],[669,1544,914],{"className":1545},[752,753],[669,1547],{"className":1548,"style":759},[758],[669,1550,694],{"className":1551},[763],[669,1553],{"className":1554,"style":759},[758],[669,1556,1558,1562],{"className":1557},[743],[669,1559],{"className":1560,"style":1561},[747],"height:0.6444em;",[669,1563,1530],{"className":1564},[752]," et ",[669,1567,1569,1600],{"className":1568},[672],[669,1570,1572],{"className":1571},[676],[678,1573,1574],{"xmlns":680},[682,1575,1576,1597],{},[685,1577,1578,1580,1582,1584,1586,1588,1590,1592,1595],{},[688,1579,690],{},[692,1581,694],{},[692,1583,698],{"stretchy":697},[705,1585,707],{},[692,1587,711],{"separator":710},[705,1589,718],{},[692,1591,711],{"separator":710},[705,1593,1594],{},"5",[692,1596,730],{"stretchy":697},[732,1598,1599],{"encoding":734},"P = \\{1, 2, 5\\}",[669,1601,1603,1621],{"className":1602,"ariaHidden":710},[739],[669,1604,1606,1609,1612,1615,1618],{"className":1605},[743],[669,1607],{"className":1608,"style":748},[747],[669,1610,690],{"className":1611,"style":754},[752,753],[669,1613],{"className":1614,"style":759},[758],[669,1616,694],{"className":1617},[763],[669,1619],{"className":1620,"style":759},[758],[669,1622,1624,1627,1630,1633,1636,1639,1642,1645,1648,1651],{"className":1623},[743],[669,1625],{"className":1626,"style":773},[747],[669,1628,698],{"className":1629},[777],[669,1631,707],{"className":1632},[752],[669,1634,711],{"className":1635},[837],[669,1637],{"className":1638,"style":841},[758],[669,1640,718],{"className":1641},[752],[669,1643,711],{"className":1644},[837],[669,1646],{"className":1647,"style":841},[758],[669,1649,1594],{"className":1650},[752],[669,1652,730],{"className":1653},[898],", cet algorithme calcule des millions de\nfois les mêmes sous-problèmes. Son coût est ",[602,1656,1657],{},"exponentiel"," en ",[669,1660,1662,1675],{"className":1661},[672],[669,1663,1665],{"className":1664},[676],[678,1666,1667],{"xmlns":680},[682,1668,1669,1673],{},[685,1670,1671],{},[688,1672,914],{},[732,1674,914],{"encoding":734},[669,1676,1678],{"className":1677,"ariaHidden":710},[739],[669,1679,1681,1684],{"className":1680},[743],[669,1682],{"className":1683,"style":926},[747],[669,1685,914],{"className":1686},[752,753]," — autant\ndire qu'il est inutilisable au-delà de ",[669,1689,1691,1711],{"className":1690},[672],[669,1692,1694],{"className":1693},[676],[678,1695,1696],{"xmlns":680},[682,1697,1698,1708],{},[685,1699,1700,1702,1705],{},[688,1701,914],{},[692,1703,1704],{},"≈",[705,1706,1707],{},"25",[732,1709,1710],{"encoding":734},"n \\approx 25",[669,1712,1714,1733],{"className":1713,"ariaHidden":710},[739],[669,1715,1717,1721,1724,1727,1730],{"className":1716},[743],[669,1718],{"className":1719,"style":1720},[747],"height:0.4831em;",[669,1722,914],{"className":1723},[752,753],[669,1725],{"className":1726,"style":759},[758],[669,1728,1704],{"className":1729},[763],[669,1731],{"className":1732,"style":759},[758],[669,1734,1736,1739],{"className":1735},[743],[669,1737],{"className":1738,"style":1561},[747],[669,1740,1707],{"className":1741},[752],".",[1404,1744,1746],{"id":1745},"version-mémoïsée-top-down","Version mémoïsée — top-down",[598,1748,1749],{},"On ajoute un cache (un dictionnaire) qui mémorise les résultats déjà\ncalculés.",[1409,1751,1753],{"className":1411,"code":1752,"language":1413,"meta":1414,"style":1414},"def rendre_memo(n, pieces, cache=None):\n    if cache is None:\n        cache = {0: 0}\n    if n in cache:\n        return cache[n]\n    cache[n] = 1 + min(rendre_memo(n - p, pieces, cache)\n                       for p in pieces if p \u003C= n)\n    return cache[n]\n",[1416,1754,1755,1773,1789,1808,1819,1828,1850,1870],{"__ignoreMap":1414},[669,1756,1757,1759,1762,1765,1767,1770],{"class":1420,"line":1421},[669,1758,1425],{"class":1424},[669,1760,1761],{"class":1428}," rendre_memo",[669,1763,1764],{"class":1432},"(n, pieces, cache",[669,1766,694],{"class":1424},[669,1768,1769],{"class":1448},"None",[669,1771,1772],{"class":1432},"):\n",[669,1774,1775,1777,1780,1783,1786],{"class":1420,"line":1436},[669,1776,1439],{"class":1424},[669,1778,1779],{"class":1432}," cache ",[669,1781,1782],{"class":1424},"is",[669,1784,1785],{"class":1448}," None",[669,1787,1788],{"class":1432},":\n",[669,1790,1791,1794,1796,1799,1801,1803,1805],{"class":1420,"line":1461},[669,1792,1793],{"class":1432},"        cache ",[669,1795,694],{"class":1424},[669,1797,1798],{"class":1432}," {",[669,1800,1015],{"class":1448},[669,1802,1452],{"class":1432},[669,1804,1015],{"class":1448},[669,1806,1807],{"class":1432},"}\n",[669,1809,1810,1812,1814,1816],{"class":1420,"line":1485},[669,1811,1439],{"class":1424},[669,1813,1442],{"class":1432},[669,1815,1494],{"class":1424},[669,1817,1818],{"class":1432}," cache:\n",[669,1820,1822,1825],{"class":1420,"line":1821},5,[669,1823,1824],{"class":1424},"        return",[669,1826,1827],{"class":1432}," cache[n]\n",[669,1829,1831,1834,1836,1838,1840,1842,1845,1847],{"class":1420,"line":1830},6,[669,1832,1833],{"class":1432},"    cache[n] ",[669,1835,694],{"class":1424},[669,1837,1467],{"class":1448},[669,1839,1470],{"class":1424},[669,1841,1473],{"class":1448},[669,1843,1844],{"class":1432},"(rendre_memo(n ",[669,1846,1479],{"class":1424},[669,1848,1849],{"class":1432}," p, pieces, cache)\n",[669,1851,1853,1856,1858,1860,1862,1864,1866,1868],{"class":1420,"line":1852},7,[669,1854,1855],{"class":1424},"                       for",[669,1857,1491],{"class":1432},[669,1859,1494],{"class":1424},[669,1861,1497],{"class":1432},[669,1863,1500],{"class":1424},[669,1865,1491],{"class":1432},[669,1867,1505],{"class":1424},[669,1869,1508],{"class":1432},[669,1871,1873,1875],{"class":1420,"line":1872},8,[669,1874,1464],{"class":1424},[669,1876,1827],{"class":1432},[598,1878,1879,1880,1908,1909,1565,1937,1965,1966,1969,1970,2030,2031,2108,2109,1742],{},"Chaque valeur de ",[669,1881,1883,1896],{"className":1882},[672],[669,1884,1886],{"className":1885},[676],[678,1887,1888],{"xmlns":680},[682,1889,1890,1894],{},[685,1891,1892],{},[688,1893,914],{},[732,1895,914],{"encoding":734},[669,1897,1899],{"className":1898,"ariaHidden":710},[739],[669,1900,1902,1905],{"className":1901},[743],[669,1903],{"className":1904,"style":926},[747],[669,1906,914],{"className":1907},[752,753]," entre ",[669,1910,1912,1925],{"className":1911},[672],[669,1913,1915],{"className":1914},[676],[678,1916,1917],{"xmlns":680},[682,1918,1919,1923],{},[685,1920,1921],{},[705,1922,1015],{},[732,1924,1015],{"encoding":734},[669,1926,1928],{"className":1927,"ariaHidden":710},[739],[669,1929,1931,1934],{"className":1930},[743],[669,1932],{"className":1933,"style":1561},[747],[669,1935,1015],{"className":1936},[752],[669,1938,1940,1953],{"className":1939},[672],[669,1941,1943],{"className":1942},[676],[678,1944,1945],{"xmlns":680},[682,1946,1947,1951],{},[685,1948,1949],{},[688,1950,914],{},[732,1952,914],{"encoding":734},[669,1954,1956],{"className":1955,"ariaHidden":710},[739],[669,1957,1959,1962],{"className":1958},[743],[669,1960],{"className":1961,"style":926},[747],[669,1963,914],{"className":1964},[752,753]," est calculée ",[602,1967,1968],{},"une seule fois",", en\n",[669,1971,1973,2001],{"className":1972},[672],[669,1974,1976],{"className":1975},[676],[678,1977,1978],{"xmlns":680},[682,1979,1980,1998],{},[685,1981,1982,1986,1988,1992,1994,1996],{},[688,1983,1985],{"mathvariant":1984},"script","O",[692,1987,988],{"stretchy":697},[688,1989,1991],{"mathvariant":1990},"normal","∣",[688,1993,690],{},[688,1995,1991],{"mathvariant":1990},[692,1997,993],{"stretchy":697},[732,1999,2000],{"encoding":734},"\\mathcal{O}(|P|)",[669,2002,2004],{"className":2003,"ariaHidden":710},[739],[669,2005,2007,2010,2015,2018,2021,2024,2027],{"className":2006},[743],[669,2008],{"className":2009,"style":773},[747],[669,2011,1985],{"className":2012,"style":2014},[752,2013],"mathcal","margin-right:0.0278em;",[669,2016,988],{"className":2017},[777],[669,2019,1991],{"className":2020},[752],[669,2022,690],{"className":2023,"style":754},[752,753],[669,2025,1991],{"className":2026},[752],[669,2028,993],{"className":2029},[898]," par valeur. Coût total : ",[669,2032,2034,2063],{"className":2033},[672],[669,2035,2037],{"className":2036},[676],[678,2038,2039],{"xmlns":680},[682,2040,2041,2060],{},[685,2042,2043,2045,2047,2049,2052,2054,2056,2058],{},[688,2044,1985],{"mathvariant":1984},[692,2046,988],{"stretchy":697},[688,2048,914],{},[692,2050,2051],{},"⋅",[688,2053,1991],{"mathvariant":1990},[688,2055,690],{},[688,2057,1991],{"mathvariant":1990},[692,2059,993],{"stretchy":697},[732,2061,2062],{"encoding":734},"\\mathcal{O}(n \\cdot |P|)",[669,2064,2066,2090],{"className":2065,"ariaHidden":710},[739],[669,2067,2069,2072,2075,2078,2081,2084,2087],{"className":2068},[743],[669,2070],{"className":2071,"style":773},[747],[669,2073,1985],{"className":2074,"style":2014},[752,2013],[669,2076,988],{"className":2077},[777],[669,2079,914],{"className":2080},[752,753],[669,2082],{"className":2083,"style":1204},[758],[669,2085,2051],{"className":2086},[1208],[669,2088],{"className":2089,"style":1204},[758],[669,2091,2093,2096,2099,2102,2105],{"className":2092},[743],[669,2094],{"className":2095,"style":773},[747],[669,2097,1991],{"className":2098},[752],[669,2100,690],{"className":2101,"style":754},[752,753],[669,2103,1991],{"className":2104},[752],[669,2106,993],{"className":2107},[898]," —\n",[602,2110,2111],{},"polynomial",[2113,2114,2115],"tip",{},[598,2116,2117,2118,2121],{},"Python facilite ce schéma grâce à ",[1416,2119,2120],{},"functools.lru_cache"," qui mémorise\nautomatiquement les appels à une fonction. En classe, on l'écrit à la main\npour bien voir le mécanisme.",[1404,2123,2125],{"id":2124},"version-tabulée-bottom-up","Version tabulée — bottom-up",[598,2127,2128,2129,2157,2158,2161],{},"Au lieu de partir de ",[669,2130,2132,2145],{"className":2131},[672],[669,2133,2135],{"className":2134},[676],[678,2136,2137],{"xmlns":680},[682,2138,2139,2143],{},[685,2140,2141],{},[688,2142,914],{},[732,2144,914],{"encoding":734},[669,2146,2148],{"className":2147,"ariaHidden":710},[739],[669,2149,2151,2154],{"className":2150},[743],[669,2152],{"className":2153,"style":926},[747],[669,2155,914],{"className":2156},[752,753]," et descendre récursivement, on construit un\ntableau ",[1416,2159,2160],{},"dp[0..n]"," de bas en haut.",[1409,2163,2165],{"className":1411,"code":2164,"language":1413,"meta":1414,"style":1414},"def rendre_tabule(n, pieces):\n    INF = float('inf')\n    dp = [0] + [INF] * n                # dp[0] = 0, le reste à infini\n    for k in range(1, n + 1):\n        for p in pieces:\n            if p \u003C= k and dp[k - p] + 1 \u003C dp[k]:\n                dp[k] = dp[k - p] + 1\n    return dp[n]\n",[1416,2166,2167,2176,2196,2230,2256,2268,2300,2318],{"__ignoreMap":1414},[669,2168,2169,2171,2174],{"class":1420,"line":1421},[669,2170,1425],{"class":1424},[669,2172,2173],{"class":1428}," rendre_tabule",[669,2175,1433],{"class":1432},[669,2177,2178,2181,2184,2187,2189,2193],{"class":1420,"line":1436},[669,2179,2180],{"class":1448},"    INF",[669,2182,2183],{"class":1424}," =",[669,2185,2186],{"class":1448}," float",[669,2188,988],{"class":1432},[669,2190,2192],{"class":2191},"sIIMD","'inf'",[669,2194,2195],{"class":1432},")\n",[669,2197,2198,2201,2203,2206,2208,2211,2213,2215,2218,2220,2223,2226],{"class":1420,"line":1461},[669,2199,2200],{"class":1432},"    dp ",[669,2202,694],{"class":1424},[669,2204,2205],{"class":1432}," [",[669,2207,1015],{"class":1448},[669,2209,2210],{"class":1432},"] ",[669,2212,1047],{"class":1424},[669,2214,2205],{"class":1432},[669,2216,2217],{"class":1448},"INF",[669,2219,2210],{"class":1432},[669,2221,2222],{"class":1424},"*",[669,2224,2225],{"class":1432}," n                ",[669,2227,2229],{"class":2228},"sCsY4","# dp[0] = 0, le reste à infini\n",[669,2231,2232,2235,2238,2240,2243,2245,2247,2250,2252,2254],{"class":1420,"line":1485},[669,2233,2234],{"class":1424},"    for",[669,2236,2237],{"class":1432}," k ",[669,2239,1494],{"class":1424},[669,2241,2242],{"class":1448}," range",[669,2244,988],{"class":1432},[669,2246,707],{"class":1448},[669,2248,2249],{"class":1432},", n ",[669,2251,1047],{"class":1424},[669,2253,1467],{"class":1448},[669,2255,1772],{"class":1432},[669,2257,2258,2261,2263,2265],{"class":1420,"line":1821},[669,2259,2260],{"class":1424},"        for",[669,2262,1491],{"class":1432},[669,2264,1494],{"class":1424},[669,2266,2267],{"class":1432}," pieces:\n",[669,2269,2270,2273,2275,2277,2279,2282,2285,2287,2290,2292,2294,2297],{"class":1420,"line":1830},[669,2271,2272],{"class":1424},"            if",[669,2274,1491],{"class":1432},[669,2276,1505],{"class":1424},[669,2278,2237],{"class":1432},[669,2280,2281],{"class":1424},"and",[669,2283,2284],{"class":1432}," dp[k ",[669,2286,1479],{"class":1424},[669,2288,2289],{"class":1432}," p] ",[669,2291,1047],{"class":1424},[669,2293,1467],{"class":1448},[669,2295,2296],{"class":1424}," \u003C",[669,2298,2299],{"class":1432}," dp[k]:\n",[669,2301,2302,2305,2307,2309,2311,2313,2315],{"class":1420,"line":1852},[669,2303,2304],{"class":1432},"                dp[k] ",[669,2306,694],{"class":1424},[669,2308,2284],{"class":1432},[669,2310,1479],{"class":1424},[669,2312,2289],{"class":1432},[669,2314,1047],{"class":1424},[669,2316,2317],{"class":1448}," 1\n",[669,2319,2320,2322],{"class":1420,"line":1872},[669,2321,1464],{"class":1424},[669,2323,2324],{"class":1432}," dp[n]\n",[598,2326,2327,2328,2403,2404,2407,2408,2411],{},"Coût identique : ",[669,2329,2331,2358],{"className":2330},[672],[669,2332,2334],{"className":2333},[676],[678,2335,2336],{"xmlns":680},[682,2337,2338,2356],{},[685,2339,2340,2342,2344,2346,2348,2350,2352,2354],{},[688,2341,1985],{"mathvariant":1984},[692,2343,988],{"stretchy":697},[688,2345,914],{},[692,2347,2051],{},[688,2349,1991],{"mathvariant":1990},[688,2351,690],{},[688,2353,1991],{"mathvariant":1990},[692,2355,993],{"stretchy":697},[732,2357,2062],{"encoding":734},[669,2359,2361,2385],{"className":2360,"ariaHidden":710},[739],[669,2362,2364,2367,2370,2373,2376,2379,2382],{"className":2363},[743],[669,2365],{"className":2366,"style":773},[747],[669,2368,1985],{"className":2369,"style":2014},[752,2013],[669,2371,988],{"className":2372},[777],[669,2374,914],{"className":2375},[752,753],[669,2377],{"className":2378,"style":1204},[758],[669,2380,2051],{"className":2381},[1208],[669,2383],{"className":2384,"style":1204},[758],[669,2386,2388,2391,2394,2397,2400],{"className":2387},[743],[669,2389],{"className":2390,"style":773},[747],[669,2392,1991],{"className":2393},[752],[669,2395,690],{"className":2396,"style":754},[752,753],[669,2398,1991],{"className":2399},[752],[669,2401,993],{"className":2402},[898],". Mais on évite la récursion et\non peut souvent ",[602,2405,2406],{},"réduire la mémoire"," : si seul ",[1416,2409,2410],{},"dp[n]"," nous intéresse,\nparfois deux lignes suffisent (cf. plus loin).",[2413,2414,2416,2422],"self-eval-qcm",{"correct":707,"slug":2415},"programmation-dynamique-c1",[2417,2418,2419],"template",{"v-slot:question":1414},[598,2420,2421],{},"Quelle est la complexité du rendu de monnaie tabulé ?",[2417,2423,2424],{"v-slot:choices":1414},[2425,2426,2427,2430,2433],"ul",{},[639,2428,2429],{},"O(n)",[639,2431,2432],{},"O(n × |P|)",[639,2434,2435],{},"O(2^n)",[593,2437,2439],{"id":2438},"top-down-vs-bottom-up-le-trade-off","Top-down vs bottom-up — le trade-off",[2441,2442,2443,2459],"table",{},[2444,2445,2446],"thead",{},[2447,2448,2449,2453,2456],"tr",{},[2450,2451,2452],"th",{},"Aspect",[2450,2454,2455],{},"Mémoïsation (top-down)",[2450,2457,2458],{},"Tabulation (bottom-up)",[2460,2461,2462,2474,2485,2688,2728],"tbody",{},[2447,2463,2464,2468,2471],{},[2465,2466,2467],"td",{},"Style",[2465,2469,2470],{},"récursion + cache",[2465,2472,2473],{},"boucles imbriquées",[2447,2475,2476,2479,2482],{},[2465,2477,2478],{},"Calcule",[2465,2480,2481],{},"uniquement les sous-problèmes utiles",[2465,2483,2484],{},"tous les sous-problèmes",[2447,2486,2487,2490,2594],{},[2465,2488,2489],{},"Mémoire",[2465,2491,2492],{},[669,2493,2495,2530],{"className":2494},[672],[669,2496,2498],{"className":2497},[676],[678,2499,2500],{"xmlns":680},[682,2501,2502,2527],{},[685,2503,2504,2506,2508,2525],{},[688,2505,1985],{"mathvariant":1984},[692,2507,988],{"stretchy":697},[685,2509,2510,2513,2522],{},[725,2511,2512],{},"sous-probl",[2514,2515,2516,2519],"mover",{"accent":710},[725,2517,2518],{},"e",[692,2520,2521],{},"ˋ",[725,2523,2524],{},"mes vus",[692,2526,993],{"stretchy":697},[732,2528,2529],{"encoding":734},"\\mathcal{O}(\\text{sous-problèmes vus})",[669,2531,2533],{"className":2532,"ariaHidden":710},[739],[669,2534,2536,2539,2542,2545,2591],{"className":2535},[743],[669,2537],{"className":2538,"style":773},[747],[669,2540,1985],{"className":2541,"style":2014},[752,2013],[669,2543,988],{"className":2544},[777],[669,2546,2548,2551,2588],{"className":2547},[752,1114],[669,2549,2512],{"className":2550},[752],[669,2552,2555],{"className":2553},[752,2554],"accent",[669,2556,2558],{"className":2557},[791],[669,2559,2561],{"className":2560},[796],[669,2562,2565,2575],{"className":2563,"style":2564},[800],"height:0.6944em;",[669,2566,2568,2572],{"style":2567},"top:-3em;",[669,2569],{"className":2570,"style":2571},[808],"height:3em;",[669,2573,2518],{"className":2574},[752],[669,2576,2577,2580],{"style":2567},[669,2578],{"className":2579,"style":2571},[808],[669,2581,2585],{"className":2582,"style":2584},[2583],"accent-body","left:-0.25em;",[669,2586,2521],{"className":2587},[752],[669,2589,2524],{"className":2590},[752],[669,2592,993],{"className":2593},[898],[2465,2595,2596],{},[669,2597,2599,2630],{"className":2598},[672],[669,2600,2602],{"className":2601},[676],[678,2603,2604],{"xmlns":680},[682,2605,2606,2627],{},[685,2607,2608,2610,2612,2625],{},[688,2609,1985],{"mathvariant":1984},[692,2611,988],{"stretchy":697},[685,2613,2614,2616,2622],{},[725,2615,2512],{},[2514,2617,2618,2620],{"accent":710},[725,2619,2518],{},[692,2621,2521],{},[725,2623,2624],{},"mes totaux",[692,2626,993],{"stretchy":697},[732,2628,2629],{"encoding":734},"\\mathcal{O}(\\text{sous-problèmes totaux})",[669,2631,2633],{"className":2632,"ariaHidden":710},[739],[669,2634,2636,2639,2642,2645,2685],{"className":2635},[743],[669,2637],{"className":2638,"style":773},[747],[669,2640,1985],{"className":2641,"style":2014},[752,2013],[669,2643,988],{"className":2644},[777],[669,2646,2648,2651,2682],{"className":2647},[752,1114],[669,2649,2512],{"className":2650},[752],[669,2652,2654],{"className":2653},[752,2554],[669,2655,2657],{"className":2656},[791],[669,2658,2660],{"className":2659},[796],[669,2661,2663,2671],{"className":2662,"style":2564},[800],[669,2664,2665,2668],{"style":2567},[669,2666],{"className":2667,"style":2571},[808],[669,2669,2518],{"className":2670},[752],[669,2672,2673,2676],{"style":2567},[669,2674],{"className":2675,"style":2571},[808],[669,2677,2679],{"className":2678,"style":2584},[2583],[669,2680,2521],{"className":2681},[752],[669,2683,2624],{"className":2684},[752],[669,2686,993],{"className":2687},[898],[2447,2689,2690,2693,2725],{},[2465,2691,2692],{},"Pile d'appels",[2465,2694,2695,2696,2724],{},"risque de débordement pour ",[669,2697,2699,2712],{"className":2698},[672],[669,2700,2702],{"className":2701},[676],[678,2703,2704],{"xmlns":680},[682,2705,2706,2710],{},[685,2707,2708],{},[688,2709,914],{},[732,2711,914],{"encoding":734},[669,2713,2715],{"className":2714,"ariaHidden":710},[739],[669,2716,2718,2721],{"className":2717},[743],[669,2719],{"className":2720,"style":926},[747],[669,2722,914],{"className":2723},[752,753]," grand",[2465,2726,2727],{},"aucun risque",[2447,2729,2730,2733,2736],{},[2465,2731,2732],{},"Lisibilité",[2465,2734,2735],{},"proche de l'équation mathématique",[2465,2737,2738],{},"proche d'une matrice à remplir",[598,2740,2741,2744,2745,2748,2749,2752],{},[602,2742,2743],{},"Règle pratique"," : utiliser ",[602,2746,2747],{},"mémoïsation"," quand la récurrence est claire\nmais la tabulation peu intuitive ; ",[602,2750,2751],{},"tabulation"," quand on cherche à\noptimiser la mémoire ou à éviter la récursion profonde.",[593,2754,2756],{"id":2755},"le-coût-en-mémoire-un-levier-essentiel","Le coût en mémoire — un levier essentiel",[598,2758,2759,2760,2814,2815,2867,2868,2871,2872,2916,2917,2963],{},"Beaucoup de problèmes de programmation dynamique peuvent voir leur mémoire\nréduite. Exemple : pour le plus court chemin sur une grille\n",[669,2761,2763,2783],{"className":2762},[672],[669,2764,2766],{"className":2765},[676],[678,2767,2768],{"xmlns":680},[682,2769,2770,2780],{},[685,2771,2772,2775,2778],{},[688,2773,2774],{},"m",[692,2776,2777],{},"×",[688,2779,914],{},[732,2781,2782],{"encoding":734},"m \\times n",[669,2784,2786,2805],{"className":2785,"ariaHidden":710},[739],[669,2787,2789,2793,2796,2799,2802],{"className":2788},[743],[669,2790],{"className":2791,"style":2792},[747],"height:0.6667em;vertical-align:-0.0833em;",[669,2794,2774],{"className":2795},[752,753],[669,2797],{"className":2798,"style":1204},[758],[669,2800,2777],{"className":2801},[1208],[669,2803],{"className":2804,"style":1204},[758],[669,2806,2808,2811],{"className":2807},[743],[669,2809],{"className":2810,"style":926},[747],[669,2812,914],{"className":2813},[752,753],", la table de tailles ",[669,2816,2818,2836],{"className":2817},[672],[669,2819,2821],{"className":2820},[676],[678,2822,2823],{"xmlns":680},[682,2824,2825,2833],{},[685,2826,2827,2829,2831],{},[688,2828,2774],{},[692,2830,2051],{},[688,2832,914],{},[732,2834,2835],{"encoding":734},"m \\cdot n",[669,2837,2839,2858],{"className":2838,"ariaHidden":710},[739],[669,2840,2842,2846,2849,2852,2855],{"className":2841},[743],[669,2843],{"className":2844,"style":2845},[747],"height:0.4445em;",[669,2847,2774],{"className":2848},[752,753],[669,2850],{"className":2851,"style":1204},[758],[669,2853,2051],{"className":2854},[1208],[669,2856],{"className":2857,"style":1204},[758],[669,2859,2861,2864],{"className":2860},[743],[669,2862],{"className":2863,"style":926},[747],[669,2865,914],{"className":2866},[752,753]," peut souvent être ramenée à\n",[602,2869,2870],{},"deux lignes"," car chaque case ne dépend que de la ligne précédente\n(",[669,2873,2875,2895],{"className":2874},[672],[669,2876,2878],{"className":2877},[676],[678,2879,2880],{"xmlns":680},[682,2881,2882,2892],{},[685,2883,2884,2886,2888,2890],{},[688,2885,1985],{"mathvariant":1984},[692,2887,988],{"stretchy":697},[688,2889,914],{},[692,2891,993],{"stretchy":697},[732,2893,2894],{"encoding":734},"\\mathcal{O}(n)",[669,2896,2898],{"className":2897,"ariaHidden":710},[739],[669,2899,2901,2904,2907,2910,2913],{"className":2900},[743],[669,2902],{"className":2903,"style":773},[747],[669,2905,1985],{"className":2906,"style":2014},[752,2013],[669,2908,988],{"className":2909},[777],[669,2911,914],{"className":2912},[752,753],[669,2914,993],{"className":2915},[898]," au lieu de ",[669,2918,2920,2942],{"className":2919},[672],[669,2921,2923],{"className":2922},[676],[678,2924,2925],{"xmlns":680},[682,2926,2927,2939],{},[685,2928,2929,2931,2933,2935,2937],{},[688,2930,1985],{"mathvariant":1984},[692,2932,988],{"stretchy":697},[688,2934,2774],{},[688,2936,914],{},[692,2938,993],{"stretchy":697},[732,2940,2941],{"encoding":734},"\\mathcal{O}(mn)",[669,2943,2945],{"className":2944,"ariaHidden":710},[739],[669,2946,2948,2951,2954,2957,2960],{"className":2947},[743],[669,2949],{"className":2950,"style":773},[747],[669,2952,1985],{"className":2953,"style":2014},[752,2013],[669,2955,988],{"className":2956},[777],[669,2958,705],{"className":2959},[752,753],[669,2961,993],{"className":2962},[898],").",[1409,2965,2967],{"className":1411,"code":2966,"language":1413,"meta":1414,"style":1414},"def plus_court_chemin_grille(grille):\n    \"\"\"Coût minimal en partant du coin haut-gauche, en bas-droite, déplacements bas\u002Fdroite.\"\"\"\n    m, n = len(grille), len(grille[0])\n    precedente = [0] * n\n    precedente[0] = grille[0][0]\n    for j in range(1, n):\n        precedente[j] = precedente[j-1] + grille[0][j]\n    for i in range(1, m):\n        courante = [0] * n\n        courante[0] = precedente[0] + grille[i][0]\n        for j in range(1, n):\n            courante[j] = grille[i][j] + min(courante[j-1], precedente[j])\n        precedente = courante\n    return precedente[n-1]\n",[1416,2968,2969,2979,2984,3008,3026,3050,3068,3093,3111,3129,3157,3174,3199,3210],{"__ignoreMap":1414},[669,2970,2971,2973,2976],{"class":1420,"line":1421},[669,2972,1425],{"class":1424},[669,2974,2975],{"class":1428}," plus_court_chemin_grille",[669,2977,2978],{"class":1432},"(grille):\n",[669,2980,2981],{"class":1420,"line":1436},[669,2982,2983],{"class":2191},"    \"\"\"Coût minimal en partant du coin haut-gauche, en bas-droite, déplacements bas\u002Fdroite.\"\"\"\n",[669,2985,2986,2989,2991,2994,2997,3000,3003,3005],{"class":1420,"line":1461},[669,2987,2988],{"class":1432},"    m, n ",[669,2990,694],{"class":1424},[669,2992,2993],{"class":1448}," len",[669,2995,2996],{"class":1432},"(grille), ",[669,2998,2999],{"class":1448},"len",[669,3001,3002],{"class":1432},"(grille[",[669,3004,1015],{"class":1448},[669,3006,3007],{"class":1432},"])\n",[669,3009,3010,3013,3015,3017,3019,3021,3023],{"class":1420,"line":1485},[669,3011,3012],{"class":1432},"    precedente ",[669,3014,694],{"class":1424},[669,3016,2205],{"class":1432},[669,3018,1015],{"class":1448},[669,3020,2210],{"class":1432},[669,3022,2222],{"class":1424},[669,3024,3025],{"class":1432}," n\n",[669,3027,3028,3031,3033,3035,3037,3040,3042,3045,3047],{"class":1420,"line":1821},[669,3029,3030],{"class":1432},"    precedente[",[669,3032,1015],{"class":1448},[669,3034,2210],{"class":1432},[669,3036,694],{"class":1424},[669,3038,3039],{"class":1432}," grille[",[669,3041,1015],{"class":1448},[669,3043,3044],{"class":1432},"][",[669,3046,1015],{"class":1448},[669,3048,3049],{"class":1432},"]\n",[669,3051,3052,3054,3057,3059,3061,3063,3065],{"class":1420,"line":1830},[669,3053,2234],{"class":1424},[669,3055,3056],{"class":1432}," j ",[669,3058,1494],{"class":1424},[669,3060,2242],{"class":1448},[669,3062,988],{"class":1432},[669,3064,707],{"class":1448},[669,3066,3067],{"class":1432},", n):\n",[669,3069,3070,3073,3075,3078,3080,3082,3084,3086,3088,3090],{"class":1420,"line":1852},[669,3071,3072],{"class":1432},"        precedente[j] ",[669,3074,694],{"class":1424},[669,3076,3077],{"class":1432}," precedente[j",[669,3079,1479],{"class":1424},[669,3081,707],{"class":1448},[669,3083,2210],{"class":1432},[669,3085,1047],{"class":1424},[669,3087,3039],{"class":1432},[669,3089,1015],{"class":1448},[669,3091,3092],{"class":1432},"][j]\n",[669,3094,3095,3097,3100,3102,3104,3106,3108],{"class":1420,"line":1872},[669,3096,2234],{"class":1424},[669,3098,3099],{"class":1432}," i ",[669,3101,1494],{"class":1424},[669,3103,2242],{"class":1448},[669,3105,988],{"class":1432},[669,3107,707],{"class":1448},[669,3109,3110],{"class":1432},", m):\n",[669,3112,3114,3117,3119,3121,3123,3125,3127],{"class":1420,"line":3113},9,[669,3115,3116],{"class":1432},"        courante ",[669,3118,694],{"class":1424},[669,3120,2205],{"class":1432},[669,3122,1015],{"class":1448},[669,3124,2210],{"class":1432},[669,3126,2222],{"class":1424},[669,3128,3025],{"class":1432},[669,3130,3132,3135,3137,3139,3141,3144,3146,3148,3150,3153,3155],{"class":1420,"line":3131},10,[669,3133,3134],{"class":1432},"        courante[",[669,3136,1015],{"class":1448},[669,3138,2210],{"class":1432},[669,3140,694],{"class":1424},[669,3142,3143],{"class":1432}," precedente[",[669,3145,1015],{"class":1448},[669,3147,2210],{"class":1432},[669,3149,1047],{"class":1424},[669,3151,3152],{"class":1432}," grille[i][",[669,3154,1015],{"class":1448},[669,3156,3049],{"class":1432},[669,3158,3160,3162,3164,3166,3168,3170,3172],{"class":1420,"line":3159},11,[669,3161,2260],{"class":1424},[669,3163,3056],{"class":1432},[669,3165,1494],{"class":1424},[669,3167,2242],{"class":1448},[669,3169,988],{"class":1432},[669,3171,707],{"class":1448},[669,3173,3067],{"class":1432},[669,3175,3177,3180,3182,3185,3187,3189,3192,3194,3196],{"class":1420,"line":3176},12,[669,3178,3179],{"class":1432},"            courante[j] ",[669,3181,694],{"class":1424},[669,3183,3184],{"class":1432}," grille[i][j] ",[669,3186,1047],{"class":1424},[669,3188,1473],{"class":1448},[669,3190,3191],{"class":1432},"(courante[j",[669,3193,1479],{"class":1424},[669,3195,707],{"class":1448},[669,3197,3198],{"class":1432},"], precedente[j])\n",[669,3200,3202,3205,3207],{"class":1420,"line":3201},13,[669,3203,3204],{"class":1432},"        precedente ",[669,3206,694],{"class":1424},[669,3208,3209],{"class":1432}," courante\n",[669,3211,3213,3215,3218,3220,3222],{"class":1420,"line":3212},14,[669,3214,1464],{"class":1424},[669,3216,3217],{"class":1432}," precedente[n",[669,3219,1479],{"class":1424},[669,3221,707],{"class":1448},[669,3223,3049],{"class":1432},[3225,3226,3227],"warning",{},[598,3228,3229,3230,3232,3233,3261,3262,1742],{},"On garde ",[602,3231,2870],{}," plutôt que toute la table — gain mémoire d'un facteur\n",[669,3234,3236,3249],{"className":3235},[672],[669,3237,3239],{"className":3238},[676],[678,3240,3241],{"xmlns":680},[682,3242,3243,3247],{},[685,3244,3245],{},[688,3246,2774],{},[732,3248,2774],{"encoding":734},[669,3250,3252],{"className":3251,"ariaHidden":710},[739],[669,3253,3255,3258],{"className":3254},[743],[669,3256],{"className":3257,"style":926},[747],[669,3259,2774],{"className":3260},[752,753],". C'est le compromis classique : ",[602,3263,3264],{},"plus de mémoire intermédiaire = code\nplus simple, moins de mémoire = code plus subtil",[593,3266,3268],{"id":3267},"alignement-de-séquences-un-survol","Alignement de séquences — un survol",[598,3270,3271,3272,3275],{},"L'",[602,3273,3274],{},"alignement de séquences"," est un problème central en bio-informatique :\nétant données deux chaînes (par exemple deux brins d'ADN), trouver l'alignement\nqui maximise le nombre de coïncidences en autorisant des insertions, des\nsuppressions et des substitutions.",[598,3277,3278,3279,3341,3342,1565,3371,3400],{},"L'équation de récurrence sur le score ",[669,3280,3282,3309],{"className":3281},[672],[669,3283,3285],{"className":3284},[676],[678,3286,3287],{"xmlns":680},[682,3288,3289,3306],{},[685,3290,3291,3294,3296,3299,3301,3304],{},[688,3292,3293],{},"S",[692,3295,988],{"stretchy":697},[688,3297,3298],{},"i",[692,3300,711],{"separator":710},[688,3302,3303],{},"j",[692,3305,993],{"stretchy":697},[732,3307,3308],{"encoding":734},"S(i, j)",[669,3310,3312],{"className":3311,"ariaHidden":710},[739],[669,3313,3315,3318,3322,3325,3328,3331,3334,3338],{"className":3314},[743],[669,3316],{"className":3317,"style":773},[747],[669,3319,3293],{"className":3320,"style":3321},[752,753],"margin-right:0.0576em;",[669,3323,988],{"className":3324},[777],[669,3326,3298],{"className":3327},[752,753],[669,3329,711],{"className":3330},[837],[669,3332],{"className":3333,"style":841},[758],[669,3335,3303],{"className":3336,"style":3337},[752,753],"margin-right:0.0572em;",[669,3339,993],{"className":3340},[898]," entre les préfixes de longueurs\n",[669,3343,3345,3358],{"className":3344},[672],[669,3346,3348],{"className":3347},[676],[678,3349,3350],{"xmlns":680},[682,3351,3352,3356],{},[685,3353,3354],{},[688,3355,3298],{},[732,3357,3298],{"encoding":734},[669,3359,3361],{"className":3360,"ariaHidden":710},[739],[669,3362,3364,3368],{"className":3363},[743],[669,3365],{"className":3366,"style":3367},[747],"height:0.6595em;",[669,3369,3298],{"className":3370},[752,753],[669,3372,3374,3387],{"className":3373},[672],[669,3375,3377],{"className":3376},[676],[678,3378,3379],{"xmlns":680},[682,3380,3381,3385],{},[685,3382,3383],{},[688,3384,3303],{},[732,3386,3303],{"encoding":734},[669,3388,3390],{"className":3389,"ariaHidden":710},[739],[669,3391,3393,3397],{"className":3392},[743],[669,3394],{"className":3395,"style":3396},[747],"height:0.854em;vertical-align:-0.1944em;",[669,3398,3303],{"className":3399,"style":3337},[752,753]," est :",[669,3402,3404],{"className":3403},[969],[669,3405,3407,3554],{"className":3406},[672],[669,3408,3410],{"className":3409},[676],[678,3411,3412],{"xmlns":680,"display":978},[682,3413,3414,3551],{},[685,3415,3416,3418,3420,3422,3424,3426,3428,3430,3433,3435],{},[688,3417,3293],{},[692,3419,988],{"stretchy":697},[688,3421,3298],{},[692,3423,711],{"separator":710},[688,3425,3303],{},[692,3427,993],{"stretchy":697},[692,3429,694],{},[688,3431,3432],{},"max",[692,3434,1057],{},[685,3436,3437,3439],{},[692,3438,698],{"fence":710},[1001,3440,3441,3494,3523],{"rowspacing":1003,"columnalign":1004,"columnspacing":1005},[1007,3442,3443],{},[1010,3444,3445],{},[1013,3446,3447],{"scriptlevel":1015,"displaystyle":697},[685,3448,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3474,3476,3483,3485,3492],{},[688,3450,3293],{},[692,3452,988],{"stretchy":697},[688,3454,3298],{},[692,3456,1087],{},[705,3458,707],{},[692,3460,711],{"separator":710},[688,3462,3303],{},[692,3464,1087],{},[705,3466,707],{},[692,3468,993],{"stretchy":697},[692,3470,1047],{},[725,3472,3473],{},"match",[692,3475,988],{"stretchy":697},[700,3477,3478,3481],{},[688,3479,3480],{},"a",[688,3482,3298],{},[692,3484,711],{"separator":710},[700,3486,3487,3490],{},[688,3488,3489],{},"b",[688,3491,3303],{},[692,3493,993],{"stretchy":697},[1007,3495,3496],{},[1010,3497,3498],{},[1013,3499,3500],{"scriptlevel":1015,"displaystyle":697},[685,3501,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520],{},[688,3503,3293],{},[692,3505,988],{"stretchy":697},[688,3507,3298],{},[692,3509,1087],{},[705,3511,707],{},[692,3513,711],{"separator":710},[688,3515,3303],{},[692,3517,993],{"stretchy":697},[692,3519,1047],{},[725,3521,3522],{},"indel",[1007,3524,3525],{},[1010,3526,3527],{},[1013,3528,3529],{"scriptlevel":1015,"displaystyle":697},[685,3530,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549],{},[688,3532,3293],{},[692,3534,988],{"stretchy":697},[688,3536,3298],{},[692,3538,711],{"separator":710},[688,3540,3303],{},[692,3542,1087],{},[705,3544,707],{},[692,3546,993],{"stretchy":697},[692,3548,1047],{},[725,3550,3522],{},[732,3552,3553],{"encoding":734},"S(i, j) = \\max \\begin{cases}\nS(i-1, j-1) + \\text{match}(a_i, b_j) \\\\\nS(i-1, j) + \\text{indel} \\\\\nS(i, j-1) + \\text{indel}\n\\end{cases}",[669,3555,3557,3593],{"className":3556,"ariaHidden":710},[739],[669,3558,3560,3563,3566,3569,3572,3575,3578,3581,3584,3587,3590],{"className":3559},[743],[669,3561],{"className":3562,"style":773},[747],[669,3564,3293],{"className":3565,"style":3321},[752,753],[669,3567,988],{"className":3568},[777],[669,3570,3298],{"className":3571},[752,753],[669,3573,711],{"className":3574},[837],[669,3576],{"className":3577,"style":841},[758],[669,3579,3303],{"className":3580,"style":3337},[752,753],[669,3582,993],{"className":3583},[898],[669,3585],{"className":3586,"style":759},[758],[669,3588,694],{"className":3589},[763],[669,3591],{"className":3592,"style":759},[758],[669,3594,3596,3600,3603,3606],{"className":3595},[743],[669,3597],{"className":3598,"style":3599},[747],"height:4.32em;vertical-align:-1.91em;",[669,3601,3432],{"className":3602},[1215],[669,3604],{"className":3605,"style":841},[758],[669,3607,3609,3711,4018],{"className":3608},[891],[669,3610,3612],{"className":3611},[777],[669,3613,3616],{"className":3614},[1154,3615],"mult",[669,3617,3619,3702],{"className":3618},[791,792],[669,3620,3622,3699],{"className":3621},[796],[669,3623,3626,3641,3663,3675,3687],{"className":3624,"style":3625},[800],"height:2.35em;",[669,3627,3629,3633],{"style":3628},"top:-2.2em;",[669,3630],{"className":3631,"style":3632},[808],"height:3.15em;",[669,3634,3638],{"className":3635},[3636,3637],"delimsizinginner","delim-size4",[669,3639,3640],{},"⎩",[669,3642,3644,3647],{"style":3643},"top:-2.192em;",[669,3645],{"className":3646,"style":3632},[808],[669,3648,3650],{"style":3649},"height:0.316em;width:0.8889em;",[3651,3652,3659],"svg",{"xmlns":3653,"width":3654,"height":3655,"style":3656,"viewBox":3657,"preserveAspectRatio":3658},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","0.8889em","0.316em","width:0.8889em","0 0 888.89 316","xMinYMin",[3660,3661],"path",{"d":3662},"M384 0 H504 V316 H384z M384 0 H504 V316 H384z",[669,3664,3666,3669],{"style":3665},"top:-3.15em;",[669,3667],{"className":3668,"style":3632},[808],[669,3670,3672],{"className":3671},[3636,3637],[669,3673,3674],{},"⎨",[669,3676,3678,3681],{"style":3677},"top:-4.292em;",[669,3679],{"className":3680,"style":3632},[808],[669,3682,3683],{"style":3649},[3651,3684,3685],{"xmlns":3653,"width":3654,"height":3655,"style":3656,"viewBox":3657,"preserveAspectRatio":3658},[3660,3686],{"d":3662},[669,3688,3690,3693],{"style":3689},"top:-4.6em;",[669,3691],{"className":3692,"style":3632},[808],[669,3694,3696],{"className":3695},[3636,3637],[669,3697,3698],{},"⎧",[669,3700,824],{"className":3701},[823],[669,3703,3705],{"className":3704},[796],[669,3706,3709],{"className":3707,"style":3708},[800],"height:1.85em;",[669,3710],{},[669,3712,3714],{"className":3713},[752],[669,3715,3717],{"className":3716},[1001],[669,3718,3720],{"className":3719},[1165],[669,3721,3723,4009],{"className":3722},[791,792],[669,3724,3726,4006],{"className":3725},[796],[669,3727,3730,3892,3949],{"className":3728,"style":3729},[800],"height:2.41em;",[669,3731,3733,3736],{"style":3732},"top:-4.41em;",[669,3734],{"className":3735,"style":1182},[808],[669,3737,3739,3742,3745,3748,3751,3754,3757,3760,3763,3766,3769,3772,3775,3778,3781,3784,3787,3790,3793,3799,3802,3843,3846,3849,3889],{"className":3738},[752],[669,3740,3293],{"className":3741,"style":3321},[752,753],[669,3743,988],{"className":3744},[777],[669,3746,3298],{"className":3747},[752,753],[669,3749],{"className":3750,"style":1204},[758],[669,3752,1087],{"className":3753},[1208],[669,3755],{"className":3756,"style":1204},[758],[669,3758,707],{"className":3759},[752],[669,3761,711],{"className":3762},[837],[669,3764],{"className":3765,"style":841},[758],[669,3767,3303],{"className":3768,"style":3337},[752,753],[669,3770],{"className":3771,"style":1204},[758],[669,3773,1087],{"className":3774},[1208],[669,3776],{"className":3777,"style":1204},[758],[669,3779,707],{"className":3780},[752],[669,3782,993],{"className":3783},[898],[669,3785],{"className":3786,"style":1204},[758],[669,3788,1047],{"className":3789},[1208],[669,3791],{"className":3792,"style":1204},[758],[669,3794,3796],{"className":3795},[752,1114],[669,3797,3473],{"className":3798},[752],[669,3800,988],{"className":3801},[777],[669,3803,3805,3808],{"className":3804},[752],[669,3806,3480],{"className":3807},[752,753],[669,3809,3811],{"className":3810},[787],[669,3812,3814,3835],{"className":3813},[791,792],[669,3815,3817,3832],{"className":3816},[796],[669,3818,3821],{"className":3819,"style":3820},[800],"height:0.3117em;",[669,3822,3823,3826],{"style":804},[669,3824],{"className":3825,"style":809},[808],[669,3827,3829],{"className":3828},[813,814,815,816],[669,3830,3298],{"className":3831},[752,753,816],[669,3833,824],{"className":3834},[823],[669,3836,3838],{"className":3837},[796],[669,3839,3841],{"className":3840,"style":831},[800],[669,3842],{},[669,3844,711],{"className":3845},[837],[669,3847],{"className":3848,"style":841},[758],[669,3850,3852,3855],{"className":3851},[752],[669,3853,3489],{"className":3854},[752,753],[669,3856,3858],{"className":3857},[787],[669,3859,3861,3881],{"className":3860},[791,792],[669,3862,3864,3878],{"className":3863},[796],[669,3865,3867],{"className":3866,"style":3820},[800],[669,3868,3869,3872],{"style":804},[669,3870],{"className":3871,"style":809},[808],[669,3873,3875],{"className":3874},[813,814,815,816],[669,3876,3303],{"className":3877,"style":3337},[752,753,816],[669,3879,824],{"className":3880},[823],[669,3882,3884],{"className":3883},[796],[669,3885,3887],{"className":3886,"style":1280},[800],[669,3888],{},[669,3890,993],{"className":3891},[898],[669,3893,3895,3898],{"style":3894},"top:-2.97em;",[669,3896],{"className":3897,"style":1182},[808],[669,3899,3901,3904,3907,3910,3913,3916,3919,3922,3925,3928,3931,3934,3937,3940,3943],{"className":3900},[752],[669,3902,3293],{"className":3903,"style":3321},[752,753],[669,3905,988],{"className":3906},[777],[669,3908,3298],{"className":3909},[752,753],[669,3911],{"className":3912,"style":1204},[758],[669,3914,1087],{"className":3915},[1208],[669,3917],{"className":3918,"style":1204},[758],[669,3920,707],{"className":3921},[752],[669,3923,711],{"className":3924},[837],[669,3926],{"className":3927,"style":841},[758],[669,3929,3303],{"className":3930,"style":3337},[752,753],[669,3932,993],{"className":3933},[898],[669,3935],{"className":3936,"style":1204},[758],[669,3938,1047],{"className":3939},[1208],[669,3941],{"className":3942,"style":1204},[758],[669,3944,3946],{"className":3945},[752,1114],[669,3947,3522],{"className":3948},[752],[669,3950,3952,3955],{"style":3951},"top:-1.53em;",[669,3953],{"className":3954,"style":1182},[808],[669,3956,3958,3961,3964,3967,3970,3973,3976,3979,3982,3985,3988,3991,3994,3997,4000],{"className":3957},[752],[669,3959,3293],{"className":3960,"style":3321},[752,753],[669,3962,988],{"className":3963},[777],[669,3965,3298],{"className":3966},[752,753],[669,3968,711],{"className":3969},[837],[669,3971],{"className":3972,"style":841},[758],[669,3974,3303],{"className":3975,"style":3337},[752,753],[669,3977],{"className":3978,"style":1204},[758],[669,3980,1087],{"className":3981},[1208],[669,3983],{"className":3984,"style":1204},[758],[669,3986,707],{"className":3987},[752],[669,3989,993],{"className":3990},[898],[669,3992],{"className":3993,"style":1204},[758],[669,3995,1047],{"className":3996},[1208],[669,3998],{"className":3999,"style":1204},[758],[669,4001,4003],{"className":4002},[752,1114],[669,4004,3522],{"className":4005},[752],[669,4007,824],{"className":4008},[823],[669,4010,4012],{"className":4011},[796],[669,4013,4016],{"className":4014,"style":4015},[800],"height:1.91em;",[669,4017],{},[669,4019],{"className":4020},[898,1402],[598,4022,4023,4024,1658,4095,4181,4182,4185,4186,4189],{},"C'est exactement le schéma de programmation dynamique : on remplit une table\n",[669,4025,4027,4053],{"className":4026},[672],[669,4028,4030],{"className":4029},[676],[678,4031,4032],{"xmlns":680},[682,4033,4034,4050],{},[685,4035,4036,4038,4040,4042,4044,4046,4048],{},[688,4037,1991],{"mathvariant":1990},[688,4039,3480],{},[688,4041,1991],{"mathvariant":1990},[692,4043,2777],{},[688,4045,1991],{"mathvariant":1990},[688,4047,3489],{},[688,4049,1991],{"mathvariant":1990},[732,4051,4052],{"encoding":734},"|a| \\times |b|",[669,4054,4056,4080],{"className":4055,"ariaHidden":710},[739],[669,4057,4059,4062,4065,4068,4071,4074,4077],{"className":4058},[743],[669,4060],{"className":4061,"style":773},[747],[669,4063,1991],{"className":4064},[752],[669,4066,3480],{"className":4067},[752,753],[669,4069,1991],{"className":4070},[752],[669,4072],{"className":4073,"style":1204},[758],[669,4075,2777],{"className":4076},[1208],[669,4078],{"className":4079,"style":1204},[758],[669,4081,4083,4086,4089,4092],{"className":4082},[743],[669,4084],{"className":4085,"style":773},[747],[669,4087,1991],{"className":4088},[752],[669,4090,3489],{"className":4091},[752,753],[669,4093,1991],{"className":4094},[752],[669,4096,4098,4130],{"className":4097},[672],[669,4099,4101],{"className":4100},[676],[678,4102,4103],{"xmlns":680},[682,4104,4105,4127],{},[685,4106,4107,4109,4111,4113,4115,4117,4119,4121,4123,4125],{},[688,4108,1985],{"mathvariant":1984},[692,4110,988],{"stretchy":697},[688,4112,1991],{"mathvariant":1990},[688,4114,3480],{},[688,4116,1991],{"mathvariant":1990},[692,4118,2051],{},[688,4120,1991],{"mathvariant":1990},[688,4122,3489],{},[688,4124,1991],{"mathvariant":1990},[692,4126,993],{"stretchy":697},[732,4128,4129],{"encoding":734},"\\mathcal{O}(|a| \\cdot |b|)",[669,4131,4133,4163],{"className":4132,"ariaHidden":710},[739],[669,4134,4136,4139,4142,4145,4148,4151,4154,4157,4160],{"className":4135},[743],[669,4137],{"className":4138,"style":773},[747],[669,4140,1985],{"className":4141,"style":2014},[752,2013],[669,4143,988],{"className":4144},[777],[669,4146,1991],{"className":4147},[752],[669,4149,3480],{"className":4150},[752,753],[669,4152,1991],{"className":4153},[752],[669,4155],{"className":4156,"style":1204},[758],[669,4158,2051],{"className":4159},[1208],[669,4161],{"className":4162,"style":1204},[758],[669,4164,4166,4169,4172,4175,4178],{"className":4165},[743],[669,4167],{"className":4168,"style":773},[747],[669,4170,1991],{"className":4171},[752],[669,4173,3489],{"className":4174},[752,753],[669,4176,1991],{"className":4177},[752],[669,4179,993],{"className":4180},[898],". L'algorithme ",[602,4183,4184],{},"Needleman-Wunsch","\nfait cela et a révolutionné l'analyse de génomes ; l'outil ",[602,4187,4188],{},"BLAST",",\nutilisé quotidiennement par les biologistes pour comparer des séquences\nADN à une banque de référence, en est une descendance directe.",[2413,4191,4193,4198],{"correct":718,"slug":4192},"programmation-dynamique-c2",[2417,4194,4195],{"v-slot:question":1414},[598,4196,4197],{},"Sans mémoïsation, le rendu de monnaie naïf est…",[2417,4199,4200],{"v-slot:choices":1414},[2425,4201,4202,4205,4208],{},[639,4203,4204],{},"linéaire",[639,4206,4207],{},"quadratique",[639,4209,1657],{},[593,4211,4213],{"id":4212},"pour-aller-plus-loin","Pour aller plus loin",[598,4215,4216,4217,4220,4221,4224,4225,4228,4229,4233,4234,4237,4238,1742],{},"La programmation dynamique est une technique très générale : elle s'applique\nau ",[602,4218,4219],{},"plus court chemin"," dans un DAG, à la ",[602,4222,4223],{},"distance d'édition"," (Levenshtein),\nau ",[602,4226,4227],{},"sac à dos"," (",[4230,4231,4232],"em",{},"knapsack","), à la ",[602,4235,4236],{},"multiplication de matrices chaînée",", à\nde nombreuses questions de théorie des jeux… La difficulté n'est pas dans\nl'algorithme mais dans l'",[602,4239,4240],{},"identification de la bonne récurrence",[4242,4243,4244],"style",{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":1414,"searchDepth":1436,"depth":1436,"links":4246},[4247,4248,4249,4254,4255,4256,4257],{"id":595,"depth":1436,"text":596},{"id":630,"depth":1436,"text":631},{"id":660,"depth":1436,"text":661,"children":4250},[4251,4252,4253],{"id":1406,"depth":1461,"text":1407},{"id":1745,"depth":1461,"text":1746},{"id":2124,"depth":1461,"text":2125},{"id":2438,"depth":1436,"text":2439},{"id":2755,"depth":1436,"text":2756},{"id":3267,"depth":1436,"text":3268},{"id":4212,"depth":1436,"text":4213},"Mémoriser les sous-problèmes déjà résolus pour éviter de les recalculer — la stratégie qui transforme un exponentiel en polynomial.",null,"md",{},true,[4264,4268],{"slug":2415,"kind":4265,"question":2421,"choices":4266,"correct":707,"multi":4267,"explanation":1414},"qcm",[2429,2432,2435],false,{"slug":4192,"kind":4265,"question":4197,"choices":4269,"correct":718,"multi":4267,"explanation":1414},[4204,4207,1657],{"title":578,"description":4258},"105bkV_6wmtoTzYEGGPyudtZBu6i4ph_u48X_Be-sqk",{"id":4273,"title":4274,"bo":4275,"body":4276,"description":5596,"eval":4259,"extension":4260,"labo":4259,"meta":5597,"navigation":4267,"path":5598,"quizzes":5599,"readingTime":1421,"seo":5600,"stem":5601,"tp":4259,"__hash__":5602},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.memo.md","Programmation dynamique — l'essentiel",[588],{"type":590,"value":4277,"toc":5587},[4278,4282,4292,4296,4678,4682,4966,4970,5121,5125,5353,5357,5495,5499,5584],[593,4279,4281],{"id":4280},"en-une-phrase","En une phrase",[598,4283,4284,4285,4288,4289,4291],{},"Quand les sous-problèmes ",[602,4286,4287],{},"se chevauchent",", on les ",[602,4290,612],{}," au lieu de les\nrecalculer — l'exponentiel devient polynomial.",[593,4293,4295],{"id":4294},"à-mémoriser","À mémoriser",[2425,4297,4298,4304,4318,4672],{},[639,4299,4300,4303],{},[602,4301,4302],{},"Deux conditions"," : sous-structure optimale + chevauchement des sous-problèmes.",[639,4305,4306,4309,4310,4313,4314,4317],{},[602,4307,4308],{},"Deux styles"," : mémoïsation ",[602,4311,4312],{},"top-down"," (récursion + cache), tabulation\n",[602,4315,4316],{},"bottom-up"," (boucles + tableau).",[639,4319,4320,4323,4324,4526,4527,4596,4597,1742],{},[602,4321,4322],{},"Rendu de monnaie"," :\n",[669,4325,4327,4381],{"className":4326},[672],[669,4328,4330],{"className":4329},[676],[678,4331,4332],{"xmlns":680},[682,4333,4334,4378],{},[685,4335,4336,4338,4340,4342,4344,4346,4348,4350,4366,4368,4370,4372,4374,4376],{},[725,4337,985],{},[692,4339,988],{"stretchy":697},[688,4341,914],{},[692,4343,993],{"stretchy":697},[692,4345,694],{},[705,4347,707],{},[692,4349,1047],{},[700,4351,4352,4358],{},[685,4353,4354,4356],{},[688,4355,1054],{},[692,4357,1057],{},[685,4359,4360,4362,4364],{},[688,4361,598],{},[692,4363,1076],{},[688,4365,914],{},[725,4367,985],{},[692,4369,988],{"stretchy":697},[688,4371,914],{},[692,4373,1087],{},[688,4375,598],{},[692,4377,993],{"stretchy":697},[732,4379,4380],{"encoding":734},"\\text{rendre}(n) = 1 + \\min_{p \\le n} \\text{rendre}(n - p)",[669,4382,4384,4414,4433,4514],{"className":4383,"ariaHidden":710},[739],[669,4385,4387,4390,4396,4399,4402,4405,4408,4411],{"className":4386},[743],[669,4388],{"className":4389,"style":773},[747],[669,4391,4393],{"className":4392},[752,1114],[669,4394,985],{"className":4395},[752],[669,4397,988],{"className":4398},[777],[669,4400,914],{"className":4401},[752,753],[669,4403,993],{"className":4404},[898],[669,4406],{"className":4407,"style":759},[758],[669,4409,694],{"className":4410},[763],[669,4412],{"className":4413,"style":759},[758],[669,4415,4417,4421,4424,4427,4430],{"className":4416},[743],[669,4418],{"className":4419,"style":4420},[747],"height:0.7278em;vertical-align:-0.0833em;",[669,4422,707],{"className":4423},[752],[669,4425],{"className":4426,"style":1204},[758],[669,4428,1047],{"className":4429},[1208],[669,4431],{"className":4432,"style":1204},[758],[669,4434,4436,4440,4490,4493,4499,4502,4505,4508,4511],{"className":4435},[743],[669,4437],{"className":4438,"style":4439},[747],"height:1.0361em;vertical-align:-0.2861em;",[669,4441,4443,4446],{"className":4442},[1215],[669,4444,1054],{"className":4445},[1215],[669,4447,4449],{"className":4448},[787],[669,4450,4452,4482],{"className":4451},[791,792],[669,4453,4455,4479],{"className":4454},[796],[669,4456,4459],{"className":4457,"style":4458},[800],"height:0.2952em;",[669,4460,4461,4464],{"style":1234},[669,4462],{"className":4463,"style":809},[808],[669,4465,4467],{"className":4466},[813,814,815,816],[669,4468,4470,4473,4476],{"className":4469},[752,816],[669,4471,598],{"className":4472},[752,753,816],[669,4474,1076],{"className":4475},[763,816],[669,4477,914],{"className":4478},[752,753,816],[669,4480,824],{"className":4481},[823],[669,4483,4485],{"className":4484},[796],[669,4486,4488],{"className":4487,"style":1280},[800],[669,4489],{},[669,4491],{"className":4492,"style":841},[758],[669,4494,4496],{"className":4495},[752,1114],[669,4497,985],{"className":4498},[752],[669,4500,988],{"className":4501},[777],[669,4503,914],{"className":4504},[752,753],[669,4506],{"className":4507,"style":1204},[758],[669,4509,1087],{"className":4510},[1208],[669,4512],{"className":4513,"style":1204},[758],[669,4515,4517,4520,4523],{"className":4516},[743],[669,4518],{"className":4519,"style":773},[747],[669,4521,598],{"className":4522},[752,753],[669,4524,993],{"className":4525},[898],", ",[669,4528,4530,4554],{"className":4529},[672],[669,4531,4533],{"className":4532},[676],[678,4534,4535],{"xmlns":680},[682,4536,4537,4551],{},[685,4538,4539,4541,4543,4545,4547,4549],{},[725,4540,985],{},[692,4542,988],{"stretchy":697},[705,4544,1015],{},[692,4546,993],{"stretchy":697},[692,4548,694],{},[705,4550,1015],{},[732,4552,4553],{"encoding":734},"\\text{rendre}(0) = 0",[669,4555,4557,4587],{"className":4556,"ariaHidden":710},[739],[669,4558,4560,4563,4569,4572,4575,4578,4581,4584],{"className":4559},[743],[669,4561],{"className":4562,"style":773},[747],[669,4564,4566],{"className":4565},[752,1114],[669,4567,985],{"className":4568},[752],[669,4570,988],{"className":4571},[777],[669,4573,1015],{"className":4574},[752],[669,4576,993],{"className":4577},[898],[669,4579],{"className":4580,"style":759},[758],[669,4582,694],{"className":4583},[763],[669,4585],{"className":4586,"style":759},[758],[669,4588,4590,4593],{"className":4589},[743],[669,4591],{"className":4592,"style":1561},[747],[669,4594,1015],{"className":4595},[752],".\nCoût ",[669,4598,4600,4627],{"className":4599},[672],[669,4601,4603],{"className":4602},[676],[678,4604,4605],{"xmlns":680},[682,4606,4607,4625],{},[685,4608,4609,4611,4613,4615,4617,4619,4621,4623],{},[688,4610,1985],{"mathvariant":1984},[692,4612,988],{"stretchy":697},[688,4614,914],{},[692,4616,2051],{},[688,4618,1991],{"mathvariant":1990},[688,4620,690],{},[688,4622,1991],{"mathvariant":1990},[692,4624,993],{"stretchy":697},[732,4626,2062],{"encoding":734},[669,4628,4630,4654],{"className":4629,"ariaHidden":710},[739],[669,4631,4633,4636,4639,4642,4645,4648,4651],{"className":4632},[743],[669,4634],{"className":4635,"style":773},[747],[669,4637,1985],{"className":4638,"style":2014},[752,2013],[669,4640,988],{"className":4641},[777],[669,4643,914],{"className":4644},[752,753],[669,4646],{"className":4647,"style":1204},[758],[669,4649,2051],{"className":4650},[1208],[669,4652],{"className":4653,"style":1204},[758],[669,4655,4657,4660,4663,4666,4669],{"className":4656},[743],[669,4658],{"className":4659,"style":773},[747],[669,4661,1991],{"className":4662},[752],[669,4664,690],{"className":4665,"style":754},[752,753],[669,4667,1991],{"className":4668},[752],[669,4670,993],{"className":4671},[898],[639,4673,4674,4677],{},[602,4675,4676],{},"Mémoire réductible"," : souvent, seules 1 ou 2 lignes du tableau sont\nnécessaires en même temps.",[593,4679,4681],{"id":4680},"coûts-à-connaître","Coûts à connaître",[2441,4683,4684,4696],{},[2444,4685,4686],{},[2447,4687,4688,4690,4693],{},[2450,4689,666],{},[2450,4691,4692],{},"Naïf",[2450,4694,4695],{},"Programmé dynamiquement",[2460,4697,4698,4737,4956],{},[2447,4699,4700,4732,4734],{},[2465,4701,4702,4703,4731],{},"Rendu de monnaie (",[669,4704,4706,4719],{"className":4705},[672],[669,4707,4709],{"className":4708},[676],[678,4710,4711],{"xmlns":680},[682,4712,4713,4717],{},[685,4714,4715],{},[688,4716,914],{},[732,4718,914],{"encoding":734},[669,4720,4722],{"className":4721,"ariaHidden":710},[739],[669,4723,4725,4728],{"className":4724},[743],[669,4726],{"className":4727,"style":926},[747],[669,4729,914],{"className":4730},[752,753],", $",[2465,4733,690],{},[2465,4735,4736],{},"$ pièces)",[2447,4738,4739,4792,4888],{},[2465,4740,4741,4742],{},"Plus court chemin sur grille ",[669,4743,4745,4762],{"className":4744},[672],[669,4746,4748],{"className":4747},[676],[678,4749,4750],{"xmlns":680},[682,4751,4752,4760],{},[685,4753,4754,4756,4758],{},[688,4755,2774],{},[692,4757,2777],{},[688,4759,914],{},[732,4761,2782],{"encoding":734},[669,4763,4765,4783],{"className":4764,"ariaHidden":710},[739],[669,4766,4768,4771,4774,4777,4780],{"className":4767},[743],[669,4769],{"className":4770,"style":2792},[747],[669,4772,2774],{"className":4773},[752,753],[669,4775],{"className":4776,"style":1204},[758],[669,4778,2777],{"className":4779},[1208],[669,4781],{"className":4782,"style":1204},[758],[669,4784,4786,4789],{"className":4785},[743],[669,4787],{"className":4788,"style":926},[747],[669,4790,914],{"className":4791},[752,753],[2465,4793,4794],{},[669,4795,4797,4829],{"className":4796},[672],[669,4798,4800],{"className":4799},[676],[678,4801,4802],{"xmlns":680},[682,4803,4804,4826],{},[685,4805,4806,4809,4811,4824],{},[688,4807,4808],{"mathvariant":1990},"Ω",[692,4810,988],{"stretchy":697},[4812,4813,4814,4816],"msup",{},[705,4815,718],{},[685,4817,4818,4820,4822],{},[688,4819,2774],{},[692,4821,1047],{},[688,4823,914],{},[692,4825,993],{"stretchy":697},[732,4827,4828],{"encoding":734},"\\Omega(2^{m+n})",[669,4830,4832],{"className":4831,"ariaHidden":710},[739],[669,4833,4835,4839,4842,4845,4885],{"className":4834},[743],[669,4836],{"className":4837,"style":4838},[747],"height:1.0213em;vertical-align:-0.25em;",[669,4840,4808],{"className":4841},[752],[669,4843,988],{"className":4844},[777],[669,4846,4848,4851],{"className":4847},[752],[669,4849,718],{"className":4850},[752],[669,4852,4854],{"className":4853},[787],[669,4855,4857],{"className":4856},[791],[669,4858,4860],{"className":4859},[796],[669,4861,4864],{"className":4862,"style":4863},[800],"height:0.7713em;",[669,4865,4867,4870],{"style":4866},"top:-3.063em;margin-right:0.05em;",[669,4868],{"className":4869,"style":809},[808],[669,4871,4873],{"className":4872},[813,814,815,816],[669,4874,4876,4879,4882],{"className":4875},[752,816],[669,4877,2774],{"className":4878},[752,753,816],[669,4880,1047],{"className":4881},[1208,816],[669,4883,914],{"className":4884},[752,753,816],[669,4886,993],{"className":4887},[898],[2465,4889,4890],{},[669,4891,4893,4917],{"className":4892},[672],[669,4894,4896],{"className":4895},[676],[678,4897,4898],{"xmlns":680},[682,4899,4900,4914],{},[685,4901,4902,4904,4906,4908,4910,4912],{},[688,4903,1985],{"mathvariant":1984},[692,4905,988],{"stretchy":697},[688,4907,2774],{},[692,4909,2051],{},[688,4911,914],{},[692,4913,993],{"stretchy":697},[732,4915,4916],{"encoding":734},"\\mathcal{O}(m \\cdot n)",[669,4918,4920,4944],{"className":4919,"ariaHidden":710},[739],[669,4921,4923,4926,4929,4932,4935,4938,4941],{"className":4922},[743],[669,4924],{"className":4925,"style":773},[747],[669,4927,1985],{"className":4928,"style":2014},[752,2013],[669,4930,988],{"className":4931},[777],[669,4933,2774],{"className":4934},[752,753],[669,4936],{"className":4937,"style":1204},[758],[669,4939,2051],{"className":4940},[1208],[669,4942],{"className":4943,"style":1204},[758],[669,4945,4947,4950,4953],{"className":4946},[743],[669,4948],{"className":4949,"style":773},[747],[669,4951,914],{"className":4952},[752,753],[669,4954,993],{"className":4955},[898],[2447,4957,4958,4961,4963],{},[2465,4959,4960],{},"Alignement de séquences $",[2465,4962,3480],{},[2465,4964,4965],{},"\\times",[593,4967,4969],{"id":4968},"top-down-vs-bottom-up","Top-down vs bottom-up",[2441,4971,4972,4985],{},[2444,4973,4974],{},[2447,4975,4976,4979,4982],{},[2450,4977,4978],{},"Critère",[2450,4980,4981],{},"Top-down",[2450,4983,4984],{},"Bottom-up",[2460,4986,4987,4998,5007,5017],{},[2447,4988,4989,4992,4995],{},[2465,4990,4991],{},"Mécanique",[2465,4993,4994],{},"récursion + dict cache",[2465,4996,4997],{},"boucles + tableau",[2447,4999,5000,5002,5005],{},[2465,5001,2478],{},[2465,5003,5004],{},"sous-problèmes utiles",[2465,5006,2484],{},[2447,5008,5009,5011,5014],{},[2465,5010,2692],{},[2465,5012,5013],{},"risque débordement",[2465,5015,5016],{},"sûr",[2447,5018,5019,5021,5071],{},[2465,5020,2489],{},[2465,5022,5023],{},[669,5024,5026,5047],{"className":5025},[672],[669,5027,5029],{"className":5028},[676],[678,5030,5031],{"xmlns":680},[682,5032,5033,5044],{},[685,5034,5035,5037,5039,5042],{},[688,5036,1985],{"mathvariant":1984},[692,5038,988],{"stretchy":697},[725,5040,5041],{},"vus",[692,5043,993],{"stretchy":697},[732,5045,5046],{"encoding":734},"\\mathcal{O}(\\text{vus})",[669,5048,5050],{"className":5049,"ariaHidden":710},[739],[669,5051,5053,5056,5059,5062,5068],{"className":5052},[743],[669,5054],{"className":5055,"style":773},[747],[669,5057,1985],{"className":5058,"style":2014},[752,2013],[669,5060,988],{"className":5061},[777],[669,5063,5065],{"className":5064},[752,1114],[669,5066,5041],{"className":5067},[752],[669,5069,993],{"className":5070},[898],[2465,5072,5073,5120],{},[669,5074,5076,5096],{"className":5075},[672],[669,5077,5079],{"className":5078},[676],[678,5080,5081],{"xmlns":680},[682,5082,5083,5093],{},[685,5084,5085,5087,5089,5091],{},[688,5086,1985],{"mathvariant":1984},[692,5088,988],{"stretchy":697},[725,5090,2441],{},[692,5092,993],{"stretchy":697},[732,5094,5095],{"encoding":734},"\\mathcal{O}(\\text{table})",[669,5097,5099],{"className":5098,"ariaHidden":710},[739],[669,5100,5102,5105,5108,5111,5117],{"className":5101},[743],[669,5103],{"className":5104,"style":773},[747],[669,5106,1985],{"className":5107,"style":2014},[752,2013],[669,5109,988],{"className":5110},[777],[669,5112,5114],{"className":5113},[752,1114],[669,5115,2441],{"className":5116},[752],[669,5118,993],{"className":5119},[898],", souvent réductible",[593,5122,5124],{"id":5123},"à-savoir-reconnaître","À savoir reconnaître",[2441,5126,5127,5137],{},[2444,5128,5129],{},[2447,5130,5131,5134],{},[2450,5132,5133],{},"Indice",[2450,5135,5136],{},"Approche",[2460,5138,5139,5147,5345],{},[2447,5140,5141,5144],{},[2465,5142,5143],{},"Récursion qui re-calcule les mêmes valeurs",[2465,5145,5146],{},"mémoïser",[2447,5148,5149,5342],{},[2465,5150,5151,5152],{},"Équation ",[669,5153,5155,5217],{"className":5154},[672],[669,5156,5158],{"className":5157},[676],[678,5159,5160],{"xmlns":680},[682,5161,5162,5214],{},[685,5163,5164,5167,5169,5171,5173,5175,5178,5180,5182,5184,5186,5188,5190,5192,5194,5196,5198,5200,5202,5204,5206,5208,5210,5212],{},[688,5165,5166],{},"f",[692,5168,988],{"stretchy":697},[688,5170,3298],{},[692,5172,993],{"stretchy":697},[692,5174,694],{},[688,5176,5177],{},"g",[692,5179,988],{"stretchy":697},[688,5181,5166],{},[692,5183,988],{"stretchy":697},[688,5185,3298],{},[692,5187,1087],{},[705,5189,707],{},[692,5191,993],{"stretchy":697},[692,5193,711],{"separator":710},[688,5195,5166],{},[692,5197,988],{"stretchy":697},[688,5199,3298],{},[692,5201,1087],{},[705,5203,718],{},[692,5205,993],{"stretchy":697},[692,5207,711],{"separator":710},[692,5209,723],{},[725,5211,727],{},[692,5213,993],{"stretchy":697},[732,5215,5216],{"encoding":734},"f(i) = g(f(i-1), f(i-2), \\dots)",[669,5218,5220,5248,5279,5315],{"className":5219,"ariaHidden":710},[739],[669,5221,5223,5226,5230,5233,5236,5239,5242,5245],{"className":5222},[743],[669,5224],{"className":5225,"style":773},[747],[669,5227,5166],{"className":5228,"style":5229},[752,753],"margin-right:0.1076em;",[669,5231,988],{"className":5232},[777],[669,5234,3298],{"className":5235},[752,753],[669,5237,993],{"className":5238},[898],[669,5240],{"className":5241,"style":759},[758],[669,5243,694],{"className":5244},[763],[669,5246],{"className":5247,"style":759},[758],[669,5249,5251,5254,5258,5261,5264,5267,5270,5273,5276],{"className":5250},[743],[669,5252],{"className":5253,"style":773},[747],[669,5255,5177],{"className":5256,"style":5257},[752,753],"margin-right:0.0359em;",[669,5259,988],{"className":5260},[777],[669,5262,5166],{"className":5263,"style":5229},[752,753],[669,5265,988],{"className":5266},[777],[669,5268,3298],{"className":5269},[752,753],[669,5271],{"className":5272,"style":1204},[758],[669,5274,1087],{"className":5275},[1208],[669,5277],{"className":5278,"style":1204},[758],[669,5280,5282,5285,5288,5291,5294,5297,5300,5303,5306,5309,5312],{"className":5281},[743],[669,5283],{"className":5284,"style":773},[747],[669,5286,707],{"className":5287},[752],[669,5289,993],{"className":5290},[898],[669,5292,711],{"className":5293},[837],[669,5295],{"className":5296,"style":841},[758],[669,5298,5166],{"className":5299,"style":5229},[752,753],[669,5301,988],{"className":5302},[777],[669,5304,3298],{"className":5305},[752,753],[669,5307],{"className":5308,"style":1204},[758],[669,5310,1087],{"className":5311},[1208],[669,5313],{"className":5314,"style":1204},[758],[669,5316,5318,5321,5324,5327,5330,5333,5336,5339],{"className":5317},[743],[669,5319],{"className":5320,"style":773},[747],[669,5322,718],{"className":5323},[752],[669,5325,993],{"className":5326},[898],[669,5328,711],{"className":5329},[837],[669,5331],{"className":5332,"style":841},[758],[669,5334,723],{"className":5335},[891],[669,5337],{"className":5338,"style":841},[758],[669,5340,993],{"className":5341},[898],[2465,5343,5344],{},"tabuler",[2447,5346,5347,5350],{},[2465,5348,5349],{},"Seule la dernière ligne intéresse",[2465,5351,5352],{},"garder 1–2 lignes seulement",[593,5354,5356],{"id":5355},"pièges-courants","Pièges courants",[2425,5358,5359,5362,5484],{},[639,5360,5361],{},"Choisir un encodage de l'état trop riche → table inutilement grande.",[639,5363,5364,5365,5417,5418,5483],{},"Oublier les conditions ",[669,5366,5368,5386],{"className":5367},[672],[669,5369,5371],{"className":5370},[676],[678,5372,5373],{"xmlns":680},[682,5374,5375,5383],{},[685,5376,5377,5379,5381],{},[688,5378,598],{},[692,5380,1076],{},[688,5382,914],{},[732,5384,5385],{"encoding":734},"p \\le n",[669,5387,5389,5408],{"className":5388,"ariaHidden":710},[739],[669,5390,5392,5396,5399,5402,5405],{"className":5391},[743],[669,5393],{"className":5394,"style":5395},[747],"height:0.8304em;vertical-align:-0.1944em;",[669,5397,598],{"className":5398},[752,753],[669,5400],{"className":5401,"style":759},[758],[669,5403,1076],{"className":5404},[763],[669,5406],{"className":5407,"style":759},[758],[669,5409,5411,5414],{"className":5410},[743],[669,5412],{"className":5413,"style":926},[747],[669,5415,914],{"className":5416},[752,753]," ou ",[669,5419,5421,5444],{"className":5420},[672],[669,5422,5424],{"className":5423},[676],[678,5425,5426],{"xmlns":680},[682,5427,5428,5441],{},[685,5429,5430,5432,5434,5436,5439],{},[688,5431,3298],{},[692,5433,711],{"separator":710},[688,5435,3303],{},[692,5437,5438],{},"≥",[705,5440,1015],{},[732,5442,5443],{"encoding":734},"i, j \\ge 0",[669,5445,5447,5474],{"className":5446,"ariaHidden":710},[739],[669,5448,5450,5453,5456,5459,5462,5465,5468,5471],{"className":5449},[743],[669,5451],{"className":5452,"style":3396},[747],[669,5454,3298],{"className":5455},[752,753],[669,5457,711],{"className":5458},[837],[669,5460],{"className":5461,"style":841},[758],[669,5463,3303],{"className":5464,"style":3337},[752,753],[669,5466],{"className":5467,"style":759},[758],[669,5469,5438],{"className":5470},[763],[669,5472],{"className":5473,"style":759},[758],[669,5475,5477,5480],{"className":5476},[743],[669,5478],{"className":5479,"style":1561},[747],[669,5481,1015],{"className":5482},[752]," → IndexError.",[639,5485,5486,5487,5490,5491,5494],{},"Confondre ",[602,5488,5489],{},"diviser pour régner"," (sous-problèmes disjoints) et ",[602,5492,5493],{},"programmation\ndynamique"," (sous-problèmes qui se chevauchent).",[593,5496,5498],{"id":5497},"syntaxe-python-à-retenir","Syntaxe Python (à retenir)",[1409,5500,5502],{"className":1411,"code":5501,"language":1413,"meta":1414,"style":1414},"def rendre(n, pieces, cache={0: 0}):\n    if n in cache: return cache[n]\n    cache[n] = 1 + min(rendre(n - p, pieces, cache)\n                       for p in pieces if p \u003C= n)\n    return cache[n]\n",[1416,5503,5504,5526,5541,5560,5578],{"__ignoreMap":1414},[669,5505,5506,5508,5511,5513,5515,5517,5519,5521,5523],{"class":1420,"line":1421},[669,5507,1425],{"class":1424},[669,5509,5510],{"class":1428}," rendre",[669,5512,1764],{"class":1432},[669,5514,694],{"class":1424},[669,5516,698],{"class":1432},[669,5518,1015],{"class":1448},[669,5520,1452],{"class":1432},[669,5522,1015],{"class":1448},[669,5524,5525],{"class":1432},"}):\n",[669,5527,5528,5530,5532,5534,5537,5539],{"class":1420,"line":1436},[669,5529,1439],{"class":1424},[669,5531,1442],{"class":1432},[669,5533,1494],{"class":1424},[669,5535,5536],{"class":1432}," cache: ",[669,5538,1455],{"class":1424},[669,5540,1827],{"class":1432},[669,5542,5543,5545,5547,5549,5551,5553,5556,5558],{"class":1420,"line":1461},[669,5544,1833],{"class":1432},[669,5546,694],{"class":1424},[669,5548,1467],{"class":1448},[669,5550,1470],{"class":1424},[669,5552,1473],{"class":1448},[669,5554,5555],{"class":1432},"(rendre(n ",[669,5557,1479],{"class":1424},[669,5559,1849],{"class":1432},[669,5561,5562,5564,5566,5568,5570,5572,5574,5576],{"class":1420,"line":1485},[669,5563,1855],{"class":1424},[669,5565,1491],{"class":1432},[669,5567,1494],{"class":1424},[669,5569,1497],{"class":1432},[669,5571,1500],{"class":1424},[669,5573,1491],{"class":1432},[669,5575,1505],{"class":1424},[669,5577,1508],{"class":1432},[669,5579,5580,5582],{"class":1420,"line":1821},[669,5581,1464],{"class":1424},[669,5583,1827],{"class":1432},[4242,5585,5586],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1414,"searchDepth":1436,"depth":1436,"links":5588},[5589,5590,5591,5592,5593,5594,5595],{"id":4280,"depth":1436,"text":4281},{"id":4294,"depth":1436,"text":4295},{"id":4680,"depth":1436,"text":4681},{"id":4968,"depth":1436,"text":4969},{"id":5123,"depth":1436,"text":5124},{"id":5355,"depth":1436,"text":5356},{"id":5497,"depth":1436,"text":5498},"Mémo de révision sur la programmation dynamique, mémoïsation et tabulation.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique.memo",[],{"title":4274,"description":5596},"2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.memo","i5HVNwzNun70thtn6ZdEAzJYz_Rx2FM1FEw8aRSpxVY",{"id":5604,"title":5605,"body":5606,"description":7326,"extension":4260,"meta":7327,"navigation":4267,"path":7328,"seo":7329,"stem":7330,"__hash__":7331},"coursSlides\u002F2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.slides.md","Programmation dynamique — diapositives",{"type":590,"value":5607,"toc":7324},[5608,5612,5615,5618,5622,5629,5632,5634,5637,5650,5652,5656,5896,5967,5969,5973,6040,6097,6099,6102,6186,6264,6266,6269,6366,6369,6371,6373,6379,6381,6385,6826,6828,6832,6835,7221,7309,7311,7315,7322],[5609,5610,578],"h1",{"id":5611},"programmation-dynamique",[598,5613,5614],{},"TE04 — mémoïsation, tabulation, rendu de monnaie.",[5616,5617],"hr",{},[5609,5619,5621],{"id":5620},"le-problème","Le problème",[598,5623,5624,5625,5628],{},"Une récursion naïve ",[602,5626,5627],{},"re-calcule les mêmes sous-problèmes"," des milliers de fois.",[598,5630,5631],{},"→ Garder les résultats en mémoire.",[5616,5633],{},[5609,5635,4302],{"id":5636},"deux-conditions",[636,5638,5639,5644],{},[639,5640,5641,5643],{},[602,5642,643],{}," : la solution se construit à partir de\nsolutions optimales de sous-problèmes.",[639,5645,5646,5649],{},[602,5647,5648],{},"Chevauchement"," : les mêmes sous-problèmes reviennent souvent.",[5616,5651],{},[5609,5653,5655],{"id":5654},"rendu-de-monnaie-récurrence","Rendu de monnaie — récurrence",[669,5657,5659],{"className":5658},[969],[669,5660,5662,5727],{"className":5661},[672],[669,5663,5665],{"className":5664},[676],[678,5666,5667],{"xmlns":680,"display":978},[682,5668,5669,5724],{},[685,5670,5671,5673,5675,5677,5679,5681,5683,5685,5712,5714,5716,5718,5720,5722],{},[725,5672,985],{},[692,5674,988],{"stretchy":697},[688,5676,914],{},[692,5678,993],{"stretchy":697},[692,5680,694],{},[705,5682,707],{},[692,5684,1047],{},[5686,5687,5688,5694],"munder",{},[685,5689,5690,5692],{},[688,5691,1054],{},[692,5693,1057],{},[685,5695,5696,5698,5700,5702,5704,5706,5708,5710],{},[688,5697,598],{},[692,5699,1064],{},[688,5701,690],{},[692,5703,711],{"separator":710},[725,5705,1071],{},[688,5707,598],{},[692,5709,1076],{},[688,5711,914],{},[725,5713,985],{},[692,5715,988],{"stretchy":697},[688,5717,914],{},[692,5719,1087],{},[688,5721,598],{},[692,5723,993],{"stretchy":697},[732,5725,5726],{"encoding":734},"\\text{rendre}(n) = 1 + \\min_{p \\in P,\\ p \\le n} \\text{rendre}(n - p)",[669,5728,5730,5760,5778,5884],{"className":5729,"ariaHidden":710},[739],[669,5731,5733,5736,5742,5745,5748,5751,5754,5757],{"className":5732},[743],[669,5734],{"className":5735,"style":773},[747],[669,5737,5739],{"className":5738},[752,1114],[669,5740,985],{"className":5741},[752],[669,5743,988],{"className":5744},[777],[669,5746,914],{"className":5747},[752,753],[669,5749,993],{"className":5750},[898],[669,5752],{"className":5753,"style":759},[758],[669,5755,694],{"className":5756},[763],[669,5758],{"className":5759,"style":759},[758],[669,5761,5763,5766,5769,5772,5775],{"className":5762},[743],[669,5764],{"className":5765,"style":4420},[747],[669,5767,707],{"className":5768},[752],[669,5770],{"className":5771,"style":1204},[758],[669,5773,1047],{"className":5774},[1208],[669,5776],{"className":5777,"style":1204},[758],[669,5779,5781,5785,5860,5863,5869,5872,5875,5878,5881],{"className":5780},[743],[669,5782],{"className":5783,"style":5784},[747],"height:1.6304em;vertical-align:-0.8804em;",[669,5786,5789],{"className":5787},[1215,5788],"op-limits",[669,5790,5792,5851],{"className":5791},[791,792],[669,5793,5795,5848],{"className":5794},[796],[669,5796,5799,5838],{"className":5797,"style":5798},[800],"height:0.6679em;",[669,5800,5802,5805],{"style":5801},"top:-2.3557em;margin-left:0em;",[669,5803],{"className":5804,"style":2571},[808],[669,5806,5808],{"className":5807},[813,814,815,816],[669,5809,5811,5814,5817,5820,5823,5829,5832,5835],{"className":5810},[752,816],[669,5812,598],{"className":5813},[752,753,816],[669,5815,1064],{"className":5816},[763,816],[669,5818,690],{"className":5819,"style":754},[752,753,816],[669,5821,711],{"className":5822},[837,816],[669,5824,5826],{"className":5825},[758,816],[669,5827,1071],{"className":5828},[816],[669,5830,598],{"className":5831},[752,753,816],[669,5833,1076],{"className":5834},[763,816],[669,5836,914],{"className":5837},[752,753,816],[669,5839,5840,5843],{"style":2567},[669,5841],{"className":5842,"style":2571},[808],[669,5844,5845],{},[669,5846,1054],{"className":5847},[1215],[669,5849,824],{"className":5850},[823],[669,5852,5854],{"className":5853},[796],[669,5855,5858],{"className":5856,"style":5857},[800],"height:0.8804em;",[669,5859],{},[669,5861],{"className":5862,"style":841},[758],[669,5864,5866],{"className":5865},[752,1114],[669,5867,985],{"className":5868},[752],[669,5870,988],{"className":5871},[777],[669,5873,914],{"className":5874},[752,753],[669,5876],{"className":5877,"style":1204},[758],[669,5879,1087],{"className":5880},[1208],[669,5882],{"className":5883,"style":1204},[758],[669,5885,5887,5890,5893],{"className":5886},[743],[669,5888],{"className":5889,"style":773},[747],[669,5891,598],{"className":5892},[752,753],[669,5894,993],{"className":5895},[898],[598,5897,5898,5899,1742],{},"avec ",[669,5900,5902,5925],{"className":5901},[672],[669,5903,5905],{"className":5904},[676],[678,5906,5907],{"xmlns":680},[682,5908,5909,5923],{},[685,5910,5911,5913,5915,5917,5919,5921],{},[725,5912,985],{},[692,5914,988],{"stretchy":697},[705,5916,1015],{},[692,5918,993],{"stretchy":697},[692,5920,694],{},[705,5922,1015],{},[732,5924,4553],{"encoding":734},[669,5926,5928,5958],{"className":5927,"ariaHidden":710},[739],[669,5929,5931,5934,5940,5943,5946,5949,5952,5955],{"className":5930},[743],[669,5932],{"className":5933,"style":773},[747],[669,5935,5937],{"className":5936},[752,1114],[669,5938,985],{"className":5939},[752],[669,5941,988],{"className":5942},[777],[669,5944,1015],{"className":5945},[752],[669,5947,993],{"className":5948},[898],[669,5950],{"className":5951,"style":759},[758],[669,5953,694],{"className":5954},[763],[669,5956],{"className":5957,"style":759},[758],[669,5959,5961,5964],{"className":5960},[743],[669,5962],{"className":5963,"style":1561},[747],[669,5965,1015],{"className":5966},[752],[5616,5968],{},[5609,5970,5972],{"id":5971},"naïf-exponentiel","Naïf — exponentiel",[1409,5974,5976],{"className":1411,"code":5975,"language":1413,"meta":1414,"style":1414},"def rendre_naif(n, P):\n    if n == 0: return 0\n    return 1 + min(rendre_naif(n-p, P)\n                   for p in P if p \u003C= n)\n",[1416,5977,5978,5987,6003,6021],{"__ignoreMap":1414},[669,5979,5980,5982,5984],{"class":1420,"line":1421},[669,5981,1425],{"class":1424},[669,5983,1429],{"class":1428},[669,5985,5986],{"class":1432},"(n, P):\n",[669,5988,5989,5991,5993,5995,5997,5999,6001],{"class":1420,"line":1436},[669,5990,1439],{"class":1424},[669,5992,1442],{"class":1432},[669,5994,1445],{"class":1424},[669,5996,1449],{"class":1448},[669,5998,1452],{"class":1432},[669,6000,1455],{"class":1424},[669,6002,1458],{"class":1448},[669,6004,6005,6007,6009,6011,6013,6016,6018],{"class":1420,"line":1461},[669,6006,1464],{"class":1424},[669,6008,1467],{"class":1448},[669,6010,1470],{"class":1424},[669,6012,1473],{"class":1448},[669,6014,6015],{"class":1432},"(rendre_naif(n",[669,6017,1479],{"class":1424},[669,6019,6020],{"class":1432},"p, P)\n",[669,6022,6023,6025,6027,6029,6032,6034,6036,6038],{"class":1420,"line":1485},[669,6024,1488],{"class":1424},[669,6026,1491],{"class":1432},[669,6028,1494],{"class":1424},[669,6030,6031],{"class":1432}," P ",[669,6033,1500],{"class":1424},[669,6035,1491],{"class":1432},[669,6037,1505],{"class":1424},[669,6039,1508],{"class":1432},[598,6041,1511,6042,6092,6093,6096],{},[669,6043,6045,6062],{"className":6044},[672],[669,6046,6048],{"className":6047},[676],[678,6049,6050],{"xmlns":680},[682,6051,6052,6060],{},[685,6053,6054,6056,6058],{},[688,6055,914],{},[692,6057,694],{},[705,6059,1530],{},[732,6061,1533],{"encoding":734},[669,6063,6065,6083],{"className":6064,"ariaHidden":710},[739],[669,6066,6068,6071,6074,6077,6080],{"className":6067},[743],[669,6069],{"className":6070,"style":926},[747],[669,6072,914],{"className":6073},[752,753],[669,6075],{"className":6076,"style":759},[758],[669,6078,694],{"className":6079},[763],[669,6081],{"className":6082,"style":759},[758],[669,6084,6086,6089],{"className":6085},[743],[669,6087],{"className":6088,"style":1561},[747],[669,6090,1530],{"className":6091},[752],", des ",[602,6094,6095],{},"millions"," d'appels redondants.",[5616,6098],{},[5609,6100,2455],{"id":6101},"mémoïsation-top-down",[1409,6103,6105],{"className":1411,"code":6104,"language":1413,"meta":1414,"style":1414},"def rendre(n, P, cache={0: 0}):\n    if n in cache: return cache[n]\n    cache[n] = 1 + min(rendre(n-p, P, cache)\n                       for p in P if p \u003C= n)\n    return cache[n]\n",[1416,6106,6107,6128,6142,6162,6180],{"__ignoreMap":1414},[669,6108,6109,6111,6113,6116,6118,6120,6122,6124,6126],{"class":1420,"line":1421},[669,6110,1425],{"class":1424},[669,6112,5510],{"class":1428},[669,6114,6115],{"class":1432},"(n, P, cache",[669,6117,694],{"class":1424},[669,6119,698],{"class":1432},[669,6121,1015],{"class":1448},[669,6123,1452],{"class":1432},[669,6125,1015],{"class":1448},[669,6127,5525],{"class":1432},[669,6129,6130,6132,6134,6136,6138,6140],{"class":1420,"line":1436},[669,6131,1439],{"class":1424},[669,6133,1442],{"class":1432},[669,6135,1494],{"class":1424},[669,6137,5536],{"class":1432},[669,6139,1455],{"class":1424},[669,6141,1827],{"class":1432},[669,6143,6144,6146,6148,6150,6152,6154,6157,6159],{"class":1420,"line":1461},[669,6145,1833],{"class":1432},[669,6147,694],{"class":1424},[669,6149,1467],{"class":1448},[669,6151,1470],{"class":1424},[669,6153,1473],{"class":1448},[669,6155,6156],{"class":1432},"(rendre(n",[669,6158,1479],{"class":1424},[669,6160,6161],{"class":1432},"p, P, cache)\n",[669,6163,6164,6166,6168,6170,6172,6174,6176,6178],{"class":1420,"line":1485},[669,6165,1855],{"class":1424},[669,6167,1491],{"class":1432},[669,6169,1494],{"class":1424},[669,6171,6031],{"class":1432},[669,6173,1500],{"class":1424},[669,6175,1491],{"class":1432},[669,6177,1505],{"class":1424},[669,6179,1508],{"class":1432},[669,6181,6182,6184],{"class":1420,"line":1821},[669,6183,1464],{"class":1424},[669,6185,1827],{"class":1432},[598,6187,6188,6189,1742],{},"→ ",[669,6190,6192,6219],{"className":6191},[672],[669,6193,6195],{"className":6194},[676],[678,6196,6197],{"xmlns":680},[682,6198,6199,6217],{},[685,6200,6201,6203,6205,6207,6209,6211,6213,6215],{},[688,6202,1985],{"mathvariant":1984},[692,6204,988],{"stretchy":697},[688,6206,914],{},[692,6208,2051],{},[688,6210,1991],{"mathvariant":1990},[688,6212,690],{},[688,6214,1991],{"mathvariant":1990},[692,6216,993],{"stretchy":697},[732,6218,2062],{"encoding":734},[669,6220,6222,6246],{"className":6221,"ariaHidden":710},[739],[669,6223,6225,6228,6231,6234,6237,6240,6243],{"className":6224},[743],[669,6226],{"className":6227,"style":773},[747],[669,6229,1985],{"className":6230,"style":2014},[752,2013],[669,6232,988],{"className":6233},[777],[669,6235,914],{"className":6236},[752,753],[669,6238],{"className":6239,"style":1204},[758],[669,6241,2051],{"className":6242},[1208],[669,6244],{"className":6245,"style":1204},[758],[669,6247,6249,6252,6255,6258,6261],{"className":6248},[743],[669,6250],{"className":6251,"style":773},[747],[669,6253,1991],{"className":6254},[752],[669,6256,690],{"className":6257,"style":754},[752,753],[669,6259,1991],{"className":6260},[752],[669,6262,993],{"className":6263},[898],[5616,6265],{},[5609,6267,2458],{"id":6268},"tabulation-bottom-up",[1409,6270,6272],{"className":1411,"code":6271,"language":1413,"meta":1414,"style":1414},"dp = [0] + [inf] * n\nfor k in range(1, n+1):\n    for p in P:\n        if p \u003C= k:\n            dp[k] = min(dp[k], dp[k-p] + 1)\n",[1416,6273,6274,6296,6320,6331,6343],{"__ignoreMap":1414},[669,6275,6276,6279,6281,6283,6285,6287,6289,6292,6294],{"class":1420,"line":1421},[669,6277,6278],{"class":1432},"dp ",[669,6280,694],{"class":1424},[669,6282,2205],{"class":1432},[669,6284,1015],{"class":1448},[669,6286,2210],{"class":1432},[669,6288,1047],{"class":1424},[669,6290,6291],{"class":1432}," [inf] ",[669,6293,2222],{"class":1424},[669,6295,3025],{"class":1432},[669,6297,6298,6301,6303,6305,6307,6309,6311,6314,6316,6318],{"class":1420,"line":1436},[669,6299,6300],{"class":1424},"for",[669,6302,2237],{"class":1432},[669,6304,1494],{"class":1424},[669,6306,2242],{"class":1448},[669,6308,988],{"class":1432},[669,6310,707],{"class":1448},[669,6312,6313],{"class":1432},", n",[669,6315,1047],{"class":1424},[669,6317,707],{"class":1448},[669,6319,1772],{"class":1432},[669,6321,6322,6324,6326,6328],{"class":1420,"line":1461},[669,6323,2234],{"class":1424},[669,6325,1491],{"class":1432},[669,6327,1494],{"class":1424},[669,6329,6330],{"class":1432}," P:\n",[669,6332,6333,6336,6338,6340],{"class":1420,"line":1485},[669,6334,6335],{"class":1424},"        if",[669,6337,1491],{"class":1432},[669,6339,1505],{"class":1424},[669,6341,6342],{"class":1432}," k:\n",[669,6344,6345,6348,6350,6352,6355,6357,6360,6362,6364],{"class":1420,"line":1821},[669,6346,6347],{"class":1432},"            dp[k] ",[669,6349,694],{"class":1424},[669,6351,1473],{"class":1448},[669,6353,6354],{"class":1432},"(dp[k], dp[k",[669,6356,1479],{"class":1424},[669,6358,6359],{"class":1432},"p] ",[669,6361,1047],{"class":1424},[669,6363,1467],{"class":1448},[669,6365,2195],{"class":1432},[598,6367,6368],{},"→ même coût, sans récursion.",[5616,6370],{},[5609,6372,4969],{"id":4968},[6374,6375],"illustration",{"alt":4969,"kind":6376,"src":6377,"svg":6378},"schema","\u002Fillustrations\u002F2.nsi-tale\u002Fte-algorithmique\u002Ftopdown-vs-bottomup.svg","\u003Csvg class=\"illustration-svg\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 480 280\" role=\"img\" aria-label=\"Comparaison : à gauche l'approche top-down, un arbre récursif descendant des grands sous-problèmes vers les petits ; à droite l'approche bottom-up, un tableau dont les cases se remplissent de gauche à droite, des petits sous-problèmes vers les grands\">\n  \u003Ctitle>Top-down vs bottom-up\u003C\u002Ftitle>\n  \u003Cstyle>\n    .tb-title { fill: var(--diagram-text); font-family: Geist, Inter, system-ui, sans-serif; font-size: 13px; font-weight: 600; }\n    .tb-sub   { fill: var(--diagram-line); font-family: Geist, Inter, system-ui, sans-serif; font-size: 11px; }\n    .tb-node  { fill: var(--diagram-node-bg); stroke: var(--diagram-node-border); stroke-width: 1.5; }\n    .tb-nlbl  { fill: var(--diagram-text); font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 500; }\n    .tb-edge  { stroke: var(--diagram-line); stroke-width: 1.5; fill: none; }\n    .tb-arrow { fill: var(--diagram-line); }\n    .tb-cell      { fill: var(--diagram-node-bg); stroke: var(--diagram-node-border); stroke-width: 1.5; }\n    .tb-cell-todo { fill: var(--diagram-surface-alt); stroke: var(--diagram-border); stroke-width: 1.5; }\n    .tb-cval  { fill: var(--diagram-text); font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 500; }\n    .tb-cval-todo { fill: var(--diagram-line); font-family: 'JetBrains Mono', monospace; font-size: 13px; }\n    .tb-key   { fill: var(--diagram-line); font-family: 'JetBrains Mono', monospace; font-size: 10px; }\n    .tb-divider { stroke: var(--diagram-border); stroke-width: 1.5; stroke-dasharray: 4 4; }\n    .tb-flow  { stroke: var(--diagram-node-border); stroke-width: 2; fill: none; }\n    .tb-flowhead { fill: var(--diagram-node-border); }\n  \u003C\u002Fstyle>\n\n  \u003Cline class=\"tb-divider\" x1=\"240\" y1=\"30\" x2=\"240\" y2=\"260\"\u002F>\n\n  \u003C!-- ░░ TOP-DOWN (gauche) ░░ -->\n  \u003Ctext x=\"120\" y=\"24\" text-anchor=\"middle\" class=\"tb-title\">top-down\u003C\u002Ftext>\n  \u003Ctext x=\"120\" y=\"40\" text-anchor=\"middle\" class=\"tb-sub\">mémoïsation, on descend\u003C\u002Ftext>\n\n  \u003C!-- arêtes (sous les nœuds) -->\n  \u003Cpath class=\"tb-edge\" d=\"M 120 78 L 70 122\"\u002F>\n  \u003Cpath class=\"tb-edge\" d=\"M 120 78 L 170 122\"\u002F>\n  \u003Cpath class=\"tb-edge\" d=\"M 70 158 L 45 202\"\u002F>\n  \u003Cpath class=\"tb-edge\" d=\"M 70 158 L 95 202\"\u002F>\n  \u003Cpath class=\"tb-edge\" d=\"M 170 158 L 145 202\"\u002F>\n  \u003C!-- têtes de flèche descendantes -->\n  \u003Cpolygon class=\"tb-arrow\" points=\"70,124 64,114 78,116\"\u002F>\n  \u003Cpolygon class=\"tb-arrow\" points=\"170,124 162,116 176,114\"\u002F>\n  \u003Cpolygon class=\"tb-arrow\" points=\"45,204 41,193 53,197\"\u002F>\n  \u003Cpolygon class=\"tb-arrow\" points=\"95,204 87,197 99,193\"\u002F>\n  \u003Cpolygon class=\"tb-arrow\" points=\"145,204 137,193 149,197\"\u002F>\n\n  \u003C!-- nœuds -->\n  \u003Cg>\n    \u003Ccircle cx=\"120\" cy=\"64\"  r=\"18\" class=\"tb-node\"\u002F>\u003Ctext x=\"120\" y=\"68\"  text-anchor=\"middle\" class=\"tb-nlbl\">n\u003C\u002Ftext>\n    \u003Ccircle cx=\"70\"  cy=\"140\" r=\"18\" class=\"tb-node\"\u002F>\u003Ctext x=\"70\"  y=\"144\" text-anchor=\"middle\" class=\"tb-nlbl\">n-1\u003C\u002Ftext>\n    \u003Ccircle cx=\"170\" cy=\"140\" r=\"18\" class=\"tb-node\"\u002F>\u003Ctext x=\"170\" y=\"144\" text-anchor=\"middle\" class=\"tb-nlbl\">n-2\u003C\u002Ftext>\n    \u003Ccircle cx=\"45\"  cy=\"220\" r=\"16\" class=\"tb-node\"\u002F>\u003Ctext x=\"45\"  y=\"224\" text-anchor=\"middle\" class=\"tb-nlbl\">…\u003C\u002Ftext>\n    \u003Ccircle cx=\"95\"  cy=\"220\" r=\"16\" class=\"tb-node\"\u002F>\u003Ctext x=\"95\"  y=\"224\" text-anchor=\"middle\" class=\"tb-nlbl\">…\u003C\u002Ftext>\n    \u003Ccircle cx=\"145\" cy=\"220\" r=\"16\" class=\"tb-node\"\u002F>\u003Ctext x=\"145\" y=\"224\" text-anchor=\"middle\" class=\"tb-nlbl\">…\u003C\u002Ftext>\n  \u003C\u002Fg>\n\n  \u003C!-- ░░ BOTTOM-UP (droite) ░░ -->\n  \u003Ctext x=\"360\" y=\"24\" text-anchor=\"middle\" class=\"tb-title\">bottom-up\u003C\u002Ftext>\n  \u003Ctext x=\"360\" y=\"40\" text-anchor=\"middle\" class=\"tb-sub\">tabulation, on remonte\u003C\u002Ftext>\n\n  \u003C!-- table dp : cases remplies de gauche à droite -->\n  \u003Cg>\n    \u003Crect x=\"276\" y=\"120\" width=\"38\" height=\"40\" rx=\"4\" class=\"tb-cell\"\u002F>\u003Ctext x=\"295\" y=\"146\" text-anchor=\"middle\" class=\"tb-cval\">0\u003C\u002Ftext>\n    \u003Crect x=\"316\" y=\"120\" width=\"38\" height=\"40\" rx=\"4\" class=\"tb-cell\"\u002F>\u003Ctext x=\"335\" y=\"146\" text-anchor=\"middle\" class=\"tb-cval\">1\u003C\u002Ftext>\n    \u003Crect x=\"356\" y=\"120\" width=\"38\" height=\"40\" rx=\"4\" class=\"tb-cell\"\u002F>\u003Ctext x=\"375\" y=\"146\" text-anchor=\"middle\" class=\"tb-cval\">1\u003C\u002Ftext>\n    \u003Crect x=\"396\" y=\"120\" width=\"38\" height=\"40\" rx=\"4\" class=\"tb-cell-todo\"\u002F>\u003Ctext x=\"415\" y=\"146\" text-anchor=\"middle\" class=\"tb-cval-todo\">·\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003C!-- indices dp[k] -->\n  \u003Ctext x=\"295\" y=\"176\" text-anchor=\"middle\" class=\"tb-key\">0\u003C\u002Ftext>\n  \u003Ctext x=\"335\" y=\"176\" text-anchor=\"middle\" class=\"tb-key\">1\u003C\u002Ftext>\n  \u003Ctext x=\"375\" y=\"176\" text-anchor=\"middle\" class=\"tb-key\">2\u003C\u002Ftext>\n  \u003Ctext x=\"415\" y=\"176\" text-anchor=\"middle\" class=\"tb-key\">3\u003C\u002Ftext>\n\n  \u003C!-- flèche de remplissage gauche → droite -->\n  \u003Cpath class=\"tb-flow\" d=\"M 280 200 L 426 200\"\u002F>\n  \u003Cpolygon class=\"tb-flowhead\" points=\"434,200 423,195 423,205\"\u002F>\n  \u003Ctext x=\"354\" y=\"222\" text-anchor=\"middle\" class=\"tb-sub\">on remplit dp[0], dp[1], …\u003C\u002Ftext>\n\u003C\u002Fsvg>\n",[5616,6380],{},[5609,6382,6384],{"id":6383},"plus-court-chemin-sur-grille","Plus court chemin sur grille",[2425,6386,6387,6679,6778],{},[639,6388,6389,6390,1742],{},"Récurrence : ",[669,6391,6393,6476],{"className":6392},[672],[669,6394,6396],{"className":6395},[676],[678,6397,6398],{"xmlns":680},[682,6399,6400,6473],{},[685,6401,6402,6405,6407,6409,6411,6413,6415,6417,6429,6431,6433,6435,6437,6439,6441,6443,6445,6447,6449,6451,6453,6455,6457,6459,6461,6463,6465,6467,6469,6471],{},[688,6403,6404],{},"C",[692,6406,988],{"stretchy":697},[688,6408,3298],{},[692,6410,711],{"separator":710},[688,6412,3303],{},[692,6414,993],{"stretchy":697},[692,6416,694],{},[700,6418,6419,6421],{},[688,6420,5177],{},[685,6422,6423,6425,6427],{},[688,6424,3298],{},[692,6426,711],{"separator":710},[688,6428,3303],{},[692,6430,1047],{},[688,6432,1054],{},[692,6434,1057],{},[692,6436,988],{"stretchy":697},[688,6438,6404],{},[692,6440,988],{"stretchy":697},[688,6442,3298],{},[692,6444,1087],{},[705,6446,707],{},[692,6448,711],{"separator":710},[688,6450,3303],{},[692,6452,993],{"stretchy":697},[692,6454,711],{"separator":710},[688,6456,6404],{},[692,6458,988],{"stretchy":697},[688,6460,3298],{},[692,6462,711],{"separator":710},[688,6464,3303],{},[692,6466,1087],{},[705,6468,707],{},[692,6470,993],{"stretchy":697},[692,6472,993],{"stretchy":697},[732,6474,6475],{"encoding":734},"C(i,j) = g_{i,j} + \\min(C(i-1,j), C(i,j-1))",[669,6477,6479,6516,6582,6612,6666],{"className":6478,"ariaHidden":710},[739],[669,6480,6482,6485,6489,6492,6495,6498,6501,6504,6507,6510,6513],{"className":6481},[743],[669,6483],{"className":6484,"style":773},[747],[669,6486,6404],{"className":6487,"style":6488},[752,753],"margin-right:0.0715em;",[669,6490,988],{"className":6491},[777],[669,6493,3298],{"className":6494},[752,753],[669,6496,711],{"className":6497},[837],[669,6499],{"className":6500,"style":841},[758],[669,6502,3303],{"className":6503,"style":3337},[752,753],[669,6505,993],{"className":6506},[898],[669,6508],{"className":6509,"style":759},[758],[669,6511,694],{"className":6512},[763],[669,6514],{"className":6515,"style":759},[758],[669,6517,6519,6523,6573,6576,6579],{"className":6518},[743],[669,6520],{"className":6521,"style":6522},[747],"height:0.8694em;vertical-align:-0.2861em;",[669,6524,6526,6529],{"className":6525},[752],[669,6527,5177],{"className":6528,"style":5257},[752,753],[669,6530,6532],{"className":6531},[787],[669,6533,6535,6565],{"className":6534},[791,792],[669,6536,6538,6562],{"className":6537},[796],[669,6539,6541],{"className":6540,"style":3820},[800],[669,6542,6544,6547],{"style":6543},"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;",[669,6545],{"className":6546,"style":809},[808],[669,6548,6550],{"className":6549},[813,814,815,816],[669,6551,6553,6556,6559],{"className":6552},[752,816],[669,6554,3298],{"className":6555},[752,753,816],[669,6557,711],{"className":6558},[837,816],[669,6560,3303],{"className":6561,"style":3337},[752,753,816],[669,6563,824],{"className":6564},[823],[669,6566,6568],{"className":6567},[796],[669,6569,6571],{"className":6570,"style":1280},[800],[669,6572],{},[669,6574],{"className":6575,"style":1204},[758],[669,6577,1047],{"className":6578},[1208],[669,6580],{"className":6581,"style":1204},[758],[669,6583,6585,6588,6591,6594,6597,6600,6603,6606,6609],{"className":6584},[743],[669,6586],{"className":6587,"style":773},[747],[669,6589,1054],{"className":6590},[1215],[669,6592,988],{"className":6593},[777],[669,6595,6404],{"className":6596,"style":6488},[752,753],[669,6598,988],{"className":6599},[777],[669,6601,3298],{"className":6602},[752,753],[669,6604],{"className":6605,"style":1204},[758],[669,6607,1087],{"className":6608},[1208],[669,6610],{"className":6611,"style":1204},[758],[669,6613,6615,6618,6621,6624,6627,6630,6633,6636,6639,6642,6645,6648,6651,6654,6657,6660,6663],{"className":6614},[743],[669,6616],{"className":6617,"style":773},[747],[669,6619,707],{"className":6620},[752],[669,6622,711],{"className":6623},[837],[669,6625],{"className":6626,"style":841},[758],[669,6628,3303],{"className":6629,"style":3337},[752,753],[669,6631,993],{"className":6632},[898],[669,6634,711],{"className":6635},[837],[669,6637],{"className":6638,"style":841},[758],[669,6640,6404],{"className":6641,"style":6488},[752,753],[669,6643,988],{"className":6644},[777],[669,6646,3298],{"className":6647},[752,753],[669,6649,711],{"className":6650},[837],[669,6652],{"className":6653,"style":841},[758],[669,6655,3303],{"className":6656,"style":3337},[752,753],[669,6658],{"className":6659,"style":1204},[758],[669,6661,1087],{"className":6662},[1208],[669,6664],{"className":6665,"style":1204},[758],[669,6667,6669,6672,6675],{"className":6668},[743],[669,6670],{"className":6671,"style":773},[747],[669,6673,707],{"className":6674},[752],[669,6676,6678],{"className":6677},[898],"))",[639,6680,6681,6682,6732,6733,1742],{},"Table ",[669,6683,6685,6702],{"className":6684},[672],[669,6686,6688],{"className":6687},[676],[678,6689,6690],{"xmlns":680},[682,6691,6692,6700],{},[685,6693,6694,6696,6698],{},[688,6695,2774],{},[692,6697,2777],{},[688,6699,914],{},[732,6701,2782],{"encoding":734},[669,6703,6705,6723],{"className":6704,"ariaHidden":710},[739],[669,6706,6708,6711,6714,6717,6720],{"className":6707},[743],[669,6709],{"className":6710,"style":2792},[747],[669,6712,2774],{"className":6713},[752,753],[669,6715],{"className":6716,"style":1204},[758],[669,6718,2777],{"className":6719},[1208],[669,6721],{"className":6722,"style":1204},[758],[669,6724,6726,6729],{"className":6725},[743],[669,6727],{"className":6728,"style":926},[747],[669,6730,914],{"className":6731},[752,753]," → ",[669,6734,6736,6757],{"className":6735},[672],[669,6737,6739],{"className":6738},[676],[678,6740,6741],{"xmlns":680},[682,6742,6743,6755],{},[685,6744,6745,6747,6749,6751,6753],{},[688,6746,1985],{"mathvariant":1984},[692,6748,988],{"stretchy":697},[688,6750,2774],{},[688,6752,914],{},[692,6754,993],{"stretchy":697},[732,6756,2941],{"encoding":734},[669,6758,6760],{"className":6759,"ariaHidden":710},[739],[669,6761,6763,6766,6769,6772,6775],{"className":6762},[743],[669,6764],{"className":6765,"style":773},[747],[669,6767,1985],{"className":6768,"style":2014},[752,2013],[669,6770,988],{"className":6771},[777],[669,6773,705],{"className":6774},[752,753],[669,6776,993],{"className":6777},[898],[639,6779,6780,6782,6783,1742],{},[602,6781,2489],{}," réductible à 2 lignes → ",[669,6784,6786,6805],{"className":6785},[672],[669,6787,6789],{"className":6788},[676],[678,6790,6791],{"xmlns":680},[682,6792,6793,6803],{},[685,6794,6795,6797,6799,6801],{},[688,6796,1985],{"mathvariant":1984},[692,6798,988],{"stretchy":697},[688,6800,914],{},[692,6802,993],{"stretchy":697},[732,6804,2894],{"encoding":734},[669,6806,6808],{"className":6807,"ariaHidden":710},[739],[669,6809,6811,6814,6817,6820,6823],{"className":6810},[743],[669,6812],{"className":6813,"style":773},[747],[669,6815,1985],{"className":6816,"style":2014},[752,2013],[669,6818,988],{"className":6819},[777],[669,6821,914],{"className":6822},[752,753],[669,6824,993],{"className":6825},[898],[5616,6827],{},[5609,6829,6831],{"id":6830},"alignement-de-séquences","Alignement de séquences",[598,6833,6834],{},"Bio-info : aligner deux brins ADN.",[669,6836,6838],{"className":6837},[969],[669,6839,6841,6949],{"className":6840},[672],[669,6842,6844],{"className":6843},[676],[678,6845,6846],{"xmlns":680,"display":978},[682,6847,6848,6946],{},[685,6849,6850,6852,6854,6856,6858,6860,6862,6864,6866,6868,6871,6873,6875,6877,6879,6881,6883,6885,6887,6889,6891,6893,6895,6897,6900,6902,6904,6906,6908,6910,6912,6914,6916,6918,6920,6922,6924,6926,6928,6930,6932,6934,6936,6938,6940,6942,6944],{},[688,6851,3293],{},[692,6853,988],{"stretchy":697},[688,6855,3298],{},[692,6857,711],{"separator":710},[688,6859,3303],{},[692,6861,993],{"stretchy":697},[692,6863,694],{},[688,6865,3432],{},[692,6867,1057],{},[692,6869,988],{"fence":697,"stretchy":710,"minsize":6870,"maxsize":6870},"1.2em",[688,6872,3293],{},[692,6874,988],{"stretchy":697},[688,6876,3298],{},[692,6878,1087],{},[705,6880,707],{},[692,6882,711],{"separator":710},[688,6884,3303],{},[692,6886,1087],{},[705,6888,707],{},[692,6890,993],{"stretchy":697},[692,6892,1047],{},[688,6894,2774],{},[692,6896,711],{"separator":710},[725,6898,6899],{},"  ",[688,6901,3293],{},[692,6903,988],{"stretchy":697},[688,6905,3298],{},[692,6907,1087],{},[705,6909,707],{},[692,6911,711],{"separator":710},[688,6913,3303],{},[692,6915,993],{"stretchy":697},[692,6917,1047],{},[688,6919,5177],{},[692,6921,711],{"separator":710},[725,6923,6899],{},[688,6925,3293],{},[692,6927,988],{"stretchy":697},[688,6929,3298],{},[692,6931,711],{"separator":710},[688,6933,3303],{},[692,6935,1087],{},[705,6937,707],{},[692,6939,993],{"stretchy":697},[692,6941,1047],{},[688,6943,5177],{},[692,6945,993],{"fence":697,"stretchy":710,"minsize":6870,"maxsize":6870},[732,6947,6948],{"encoding":734},"S(i,j) = \\max\\big(S(i-1,j-1) + m, \\; S(i-1,j) + g, \\; S(i,j-1) + g\\big)",[669,6950,6952,6988,7026,7053,7074,7110,7140,7185,7206],{"className":6951,"ariaHidden":710},[739],[669,6953,6955,6958,6961,6964,6967,6970,6973,6976,6979,6982,6985],{"className":6954},[743],[669,6956],{"className":6957,"style":773},[747],[669,6959,3293],{"className":6960,"style":3321},[752,753],[669,6962,988],{"className":6963},[777],[669,6965,3298],{"className":6966},[752,753],[669,6968,711],{"className":6969},[837],[669,6971],{"className":6972,"style":841},[758],[669,6974,3303],{"className":6975,"style":3337},[752,753],[669,6977,993],{"className":6978},[898],[669,6980],{"className":6981,"style":759},[758],[669,6983,694],{"className":6984},[763],[669,6986],{"className":6987,"style":759},[758],[669,6989,6991,6995,6998,7001,7008,7011,7014,7017,7020,7023],{"className":6990},[743],[669,6992],{"className":6993,"style":6994},[747],"height:1.2em;vertical-align:-0.35em;",[669,6996,3432],{"className":6997},[1215],[669,6999],{"className":7000,"style":841},[758],[669,7002,7004],{"className":7003},[752],[669,7005,988],{"className":7006},[1154,7007],"size1",[669,7009,3293],{"className":7010,"style":3321},[752,753],[669,7012,988],{"className":7013},[777],[669,7015,3298],{"className":7016},[752,753],[669,7018],{"className":7019,"style":1204},[758],[669,7021,1087],{"className":7022},[1208],[669,7024],{"className":7025,"style":1204},[758],[669,7027,7029,7032,7035,7038,7041,7044,7047,7050],{"className":7028},[743],[669,7030],{"className":7031,"style":3396},[747],[669,7033,707],{"className":7034},[752],[669,7036,711],{"className":7037},[837],[669,7039],{"className":7040,"style":841},[758],[669,7042,3303],{"className":7043,"style":3337},[752,753],[669,7045],{"className":7046,"style":1204},[758],[669,7048,1087],{"className":7049},[1208],[669,7051],{"className":7052,"style":1204},[758],[669,7054,7056,7059,7062,7065,7068,7071],{"className":7055},[743],[669,7057],{"className":7058,"style":773},[747],[669,7060,707],{"className":7061},[752],[669,7063,993],{"className":7064},[898],[669,7066],{"className":7067,"style":1204},[758],[669,7069,1047],{"className":7070},[1208],[669,7072],{"className":7073,"style":1204},[758],[669,7075,7077,7080,7083,7086,7089,7092,7095,7098,7101,7104,7107],{"className":7076},[743],[669,7078],{"className":7079,"style":773},[747],[669,7081,2774],{"className":7082},[752,753],[669,7084,711],{"className":7085},[837],[669,7087],{"className":7088,"style":759},[758],[669,7090],{"className":7091,"style":841},[758],[669,7093,3293],{"className":7094,"style":3321},[752,753],[669,7096,988],{"className":7097},[777],[669,7099,3298],{"className":7100},[752,753],[669,7102],{"className":7103,"style":1204},[758],[669,7105,1087],{"className":7106},[1208],[669,7108],{"className":7109,"style":1204},[758],[669,7111,7113,7116,7119,7122,7125,7128,7131,7134,7137],{"className":7112},[743],[669,7114],{"className":7115,"style":773},[747],[669,7117,707],{"className":7118},[752],[669,7120,711],{"className":7121},[837],[669,7123],{"className":7124,"style":841},[758],[669,7126,3303],{"className":7127,"style":3337},[752,753],[669,7129,993],{"className":7130},[898],[669,7132],{"className":7133,"style":1204},[758],[669,7135,1047],{"className":7136},[1208],[669,7138],{"className":7139,"style":1204},[758],[669,7141,7143,7146,7149,7152,7155,7158,7161,7164,7167,7170,7173,7176,7179,7182],{"className":7142},[743],[669,7144],{"className":7145,"style":773},[747],[669,7147,5177],{"className":7148,"style":5257},[752,753],[669,7150,711],{"className":7151},[837],[669,7153],{"className":7154,"style":759},[758],[669,7156],{"className":7157,"style":841},[758],[669,7159,3293],{"className":7160,"style":3321},[752,753],[669,7162,988],{"className":7163},[777],[669,7165,3298],{"className":7166},[752,753],[669,7168,711],{"className":7169},[837],[669,7171],{"className":7172,"style":841},[758],[669,7174,3303],{"className":7175,"style":3337},[752,753],[669,7177],{"className":7178,"style":1204},[758],[669,7180,1087],{"className":7181},[1208],[669,7183],{"className":7184,"style":1204},[758],[669,7186,7188,7191,7194,7197,7200,7203],{"className":7187},[743],[669,7189],{"className":7190,"style":773},[747],[669,7192,707],{"className":7193},[752],[669,7195,993],{"className":7196},[898],[669,7198],{"className":7199,"style":1204},[758],[669,7201,1047],{"className":7202},[1208],[669,7204],{"className":7205,"style":1204},[758],[669,7207,7209,7212,7215],{"className":7208},[743],[669,7210],{"className":7211,"style":6994},[747],[669,7213,5177],{"className":7214,"style":5257},[752,753],[669,7216,7218],{"className":7217},[752],[669,7219,993],{"className":7220},[1154,7007],[598,7222,7223,7308],{},[669,7224,7226,7257],{"className":7225},[672],[669,7227,7229],{"className":7228},[676],[678,7230,7231],{"xmlns":680},[682,7232,7233,7255],{},[685,7234,7235,7237,7239,7241,7243,7245,7247,7249,7251,7253],{},[688,7236,1985],{"mathvariant":1984},[692,7238,988],{"stretchy":697},[688,7240,1991],{"mathvariant":1990},[688,7242,3480],{},[688,7244,1991],{"mathvariant":1990},[692,7246,2051],{},[688,7248,1991],{"mathvariant":1990},[688,7250,3489],{},[688,7252,1991],{"mathvariant":1990},[692,7254,993],{"stretchy":697},[732,7256,4129],{"encoding":734},[669,7258,7260,7290],{"className":7259,"ariaHidden":710},[739],[669,7261,7263,7266,7269,7272,7275,7278,7281,7284,7287],{"className":7262},[743],[669,7264],{"className":7265,"style":773},[747],[669,7267,1985],{"className":7268,"style":2014},[752,2013],[669,7270,988],{"className":7271},[777],[669,7273,1991],{"className":7274},[752],[669,7276,3480],{"className":7277},[752,753],[669,7279,1991],{"className":7280},[752],[669,7282],{"className":7283,"style":1204},[758],[669,7285,2051],{"className":7286},[1208],[669,7288],{"className":7289,"style":1204},[758],[669,7291,7293,7296,7299,7302,7305],{"className":7292},[743],[669,7294],{"className":7295,"style":773},[747],[669,7297,1991],{"className":7298},[752],[669,7300,3489],{"className":7301},[752,753],[669,7303,1991],{"className":7304},[752],[669,7306,993],{"className":7307},[898]," — Needleman-Wunsch.",[5616,7310],{},[5609,7312,7314],{"id":7313},"à-retenir","À retenir",[598,7316,7317,7318,7321],{},"La programmation dynamique = ",[602,7319,7320],{},"mémoire contre temps",". Trouver la bonne\nrécurrence est le vrai défi ; l'implémentation suit.",[4242,7323,5586],{},{"title":1414,"searchDepth":1436,"depth":1436,"links":7325},[],"Deck projetable pour la séance sur la programmation dynamique.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique.slides",{"title":5605,"description":7326},"2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.slides","qFoQscMpNbkoEp2jlSGGQ5DppAReuOUSWdssD_flN1A",{"id":4273,"title":4274,"bo":7333,"body":7334,"description":5596,"eval":4259,"extension":4260,"labo":4259,"meta":8557,"navigation":4267,"path":5598,"quizzes":8558,"readingTime":1421,"seo":8559,"stem":5601,"tp":4259,"__hash__":5602},[588],{"type":590,"value":7335,"toc":8548},[7336,7338,7344,7346,7709,7711,7980,7982,8120,8122,8337,8339,8464,8466,8546],[593,7337,4281],{"id":4280},[598,7339,4284,7340,4288,7342,4291],{},[602,7341,4287],{},[602,7343,612],{},[593,7345,4295],{"id":4294},[2425,7347,7348,7352,7360,7705],{},[639,7349,7350,4303],{},[602,7351,4302],{},[639,7353,7354,4309,7356,4313,7358,4317],{},[602,7355,4308],{},[602,7357,4312],{},[602,7359,4316],{},[639,7361,7362,4323,7364,4526,7562,4596,7630,1742],{},[602,7363,4322],{},[669,7365,7367,7420],{"className":7366},[672],[669,7368,7370],{"className":7369},[676],[678,7371,7372],{"xmlns":680},[682,7373,7374,7418],{},[685,7375,7376,7378,7380,7382,7384,7386,7388,7390,7406,7408,7410,7412,7414,7416],{},[725,7377,985],{},[692,7379,988],{"stretchy":697},[688,7381,914],{},[692,7383,993],{"stretchy":697},[692,7385,694],{},[705,7387,707],{},[692,7389,1047],{},[700,7391,7392,7398],{},[685,7393,7394,7396],{},[688,7395,1054],{},[692,7397,1057],{},[685,7399,7400,7402,7404],{},[688,7401,598],{},[692,7403,1076],{},[688,7405,914],{},[725,7407,985],{},[692,7409,988],{"stretchy":697},[688,7411,914],{},[692,7413,1087],{},[688,7415,598],{},[692,7417,993],{"stretchy":697},[732,7419,4380],{"encoding":734},[669,7421,7423,7453,7471,7550],{"className":7422,"ariaHidden":710},[739],[669,7424,7426,7429,7435,7438,7441,7444,7447,7450],{"className":7425},[743],[669,7427],{"className":7428,"style":773},[747],[669,7430,7432],{"className":7431},[752,1114],[669,7433,985],{"className":7434},[752],[669,7436,988],{"className":7437},[777],[669,7439,914],{"className":7440},[752,753],[669,7442,993],{"className":7443},[898],[669,7445],{"className":7446,"style":759},[758],[669,7448,694],{"className":7449},[763],[669,7451],{"className":7452,"style":759},[758],[669,7454,7456,7459,7462,7465,7468],{"className":7455},[743],[669,7457],{"className":7458,"style":4420},[747],[669,7460,707],{"className":7461},[752],[669,7463],{"className":7464,"style":1204},[758],[669,7466,1047],{"className":7467},[1208],[669,7469],{"className":7470,"style":1204},[758],[669,7472,7474,7477,7526,7529,7535,7538,7541,7544,7547],{"className":7473},[743],[669,7475],{"className":7476,"style":4439},[747],[669,7478,7480,7483],{"className":7479},[1215],[669,7481,1054],{"className":7482},[1215],[669,7484,7486],{"className":7485},[787],[669,7487,7489,7518],{"className":7488},[791,792],[669,7490,7492,7515],{"className":7491},[796],[669,7493,7495],{"className":7494,"style":4458},[800],[669,7496,7497,7500],{"style":1234},[669,7498],{"className":7499,"style":809},[808],[669,7501,7503],{"className":7502},[813,814,815,816],[669,7504,7506,7509,7512],{"className":7505},[752,816],[669,7507,598],{"className":7508},[752,753,816],[669,7510,1076],{"className":7511},[763,816],[669,7513,914],{"className":7514},[752,753,816],[669,7516,824],{"className":7517},[823],[669,7519,7521],{"className":7520},[796],[669,7522,7524],{"className":7523,"style":1280},[800],[669,7525],{},[669,7527],{"className":7528,"style":841},[758],[669,7530,7532],{"className":7531},[752,1114],[669,7533,985],{"className":7534},[752],[669,7536,988],{"className":7537},[777],[669,7539,914],{"className":7540},[752,753],[669,7542],{"className":7543,"style":1204},[758],[669,7545,1087],{"className":7546},[1208],[669,7548],{"className":7549,"style":1204},[758],[669,7551,7553,7556,7559],{"className":7552},[743],[669,7554],{"className":7555,"style":773},[747],[669,7557,598],{"className":7558},[752,753],[669,7560,993],{"className":7561},[898],[669,7563,7565,7588],{"className":7564},[672],[669,7566,7568],{"className":7567},[676],[678,7569,7570],{"xmlns":680},[682,7571,7572,7586],{},[685,7573,7574,7576,7578,7580,7582,7584],{},[725,7575,985],{},[692,7577,988],{"stretchy":697},[705,7579,1015],{},[692,7581,993],{"stretchy":697},[692,7583,694],{},[705,7585,1015],{},[732,7587,4553],{"encoding":734},[669,7589,7591,7621],{"className":7590,"ariaHidden":710},[739],[669,7592,7594,7597,7603,7606,7609,7612,7615,7618],{"className":7593},[743],[669,7595],{"className":7596,"style":773},[747],[669,7598,7600],{"className":7599},[752,1114],[669,7601,985],{"className":7602},[752],[669,7604,988],{"className":7605},[777],[669,7607,1015],{"className":7608},[752],[669,7610,993],{"className":7611},[898],[669,7613],{"className":7614,"style":759},[758],[669,7616,694],{"className":7617},[763],[669,7619],{"className":7620,"style":759},[758],[669,7622,7624,7627],{"className":7623},[743],[669,7625],{"className":7626,"style":1561},[747],[669,7628,1015],{"className":7629},[752],[669,7631,7633,7660],{"className":7632},[672],[669,7634,7636],{"className":7635},[676],[678,7637,7638],{"xmlns":680},[682,7639,7640,7658],{},[685,7641,7642,7644,7646,7648,7650,7652,7654,7656],{},[688,7643,1985],{"mathvariant":1984},[692,7645,988],{"stretchy":697},[688,7647,914],{},[692,7649,2051],{},[688,7651,1991],{"mathvariant":1990},[688,7653,690],{},[688,7655,1991],{"mathvariant":1990},[692,7657,993],{"stretchy":697},[732,7659,2062],{"encoding":734},[669,7661,7663,7687],{"className":7662,"ariaHidden":710},[739],[669,7664,7666,7669,7672,7675,7678,7681,7684],{"className":7665},[743],[669,7667],{"className":7668,"style":773},[747],[669,7670,1985],{"className":7671,"style":2014},[752,2013],[669,7673,988],{"className":7674},[777],[669,7676,914],{"className":7677},[752,753],[669,7679],{"className":7680,"style":1204},[758],[669,7682,2051],{"className":7683},[1208],[669,7685],{"className":7686,"style":1204},[758],[669,7688,7690,7693,7696,7699,7702],{"className":7689},[743],[669,7691],{"className":7692,"style":773},[747],[669,7694,1991],{"className":7695},[752],[669,7697,690],{"className":7698,"style":754},[752,753],[669,7700,1991],{"className":7701},[752],[669,7703,993],{"className":7704},[898],[639,7706,7707,4677],{},[602,7708,4676],{},[593,7710,4681],{"id":4680},[2441,7712,7713,7723],{},[2444,7714,7715],{},[2447,7716,7717,7719,7721],{},[2450,7718,666],{},[2450,7720,4692],{},[2450,7722,4695],{},[2460,7724,7725,7761,7972],{},[2447,7726,7727,7757,7759],{},[2465,7728,4702,7729,4731],{},[669,7730,7732,7745],{"className":7731},[672],[669,7733,7735],{"className":7734},[676],[678,7736,7737],{"xmlns":680},[682,7738,7739,7743],{},[685,7740,7741],{},[688,7742,914],{},[732,7744,914],{"encoding":734},[669,7746,7748],{"className":7747,"ariaHidden":710},[739],[669,7749,7751,7754],{"className":7750},[743],[669,7752],{"className":7753,"style":926},[747],[669,7755,914],{"className":7756},[752,753],[2465,7758,690],{},[2465,7760,4736],{},[2447,7762,7763,7815,7905],{},[2465,7764,4741,7765],{},[669,7766,7768,7785],{"className":7767},[672],[669,7769,7771],{"className":7770},[676],[678,7772,7773],{"xmlns":680},[682,7774,7775,7783],{},[685,7776,7777,7779,7781],{},[688,7778,2774],{},[692,7780,2777],{},[688,7782,914],{},[732,7784,2782],{"encoding":734},[669,7786,7788,7806],{"className":7787,"ariaHidden":710},[739],[669,7789,7791,7794,7797,7800,7803],{"className":7790},[743],[669,7792],{"className":7793,"style":2792},[747],[669,7795,2774],{"className":7796},[752,753],[669,7798],{"className":7799,"style":1204},[758],[669,7801,2777],{"className":7802},[1208],[669,7804],{"className":7805,"style":1204},[758],[669,7807,7809,7812],{"className":7808},[743],[669,7810],{"className":7811,"style":926},[747],[669,7813,914],{"className":7814},[752,753],[2465,7816,7817],{},[669,7818,7820,7849],{"className":7819},[672],[669,7821,7823],{"className":7822},[676],[678,7824,7825],{"xmlns":680},[682,7826,7827,7847],{},[685,7828,7829,7831,7833,7845],{},[688,7830,4808],{"mathvariant":1990},[692,7832,988],{"stretchy":697},[4812,7834,7835,7837],{},[705,7836,718],{},[685,7838,7839,7841,7843],{},[688,7840,2774],{},[692,7842,1047],{},[688,7844,914],{},[692,7846,993],{"stretchy":697},[732,7848,4828],{"encoding":734},[669,7850,7852],{"className":7851,"ariaHidden":710},[739],[669,7853,7855,7858,7861,7864,7902],{"className":7854},[743],[669,7856],{"className":7857,"style":4838},[747],[669,7859,4808],{"className":7860},[752],[669,7862,988],{"className":7863},[777],[669,7865,7867,7870],{"className":7866},[752],[669,7868,718],{"className":7869},[752],[669,7871,7873],{"className":7872},[787],[669,7874,7876],{"className":7875},[791],[669,7877,7879],{"className":7878},[796],[669,7880,7882],{"className":7881,"style":4863},[800],[669,7883,7884,7887],{"style":4866},[669,7885],{"className":7886,"style":809},[808],[669,7888,7890],{"className":7889},[813,814,815,816],[669,7891,7893,7896,7899],{"className":7892},[752,816],[669,7894,2774],{"className":7895},[752,753,816],[669,7897,1047],{"className":7898},[1208,816],[669,7900,914],{"className":7901},[752,753,816],[669,7903,993],{"className":7904},[898],[2465,7906,7907],{},[669,7908,7910,7933],{"className":7909},[672],[669,7911,7913],{"className":7912},[676],[678,7914,7915],{"xmlns":680},[682,7916,7917,7931],{},[685,7918,7919,7921,7923,7925,7927,7929],{},[688,7920,1985],{"mathvariant":1984},[692,7922,988],{"stretchy":697},[688,7924,2774],{},[692,7926,2051],{},[688,7928,914],{},[692,7930,993],{"stretchy":697},[732,7932,4916],{"encoding":734},[669,7934,7936,7960],{"className":7935,"ariaHidden":710},[739],[669,7937,7939,7942,7945,7948,7951,7954,7957],{"className":7938},[743],[669,7940],{"className":7941,"style":773},[747],[669,7943,1985],{"className":7944,"style":2014},[752,2013],[669,7946,988],{"className":7947},[777],[669,7949,2774],{"className":7950},[752,753],[669,7952],{"className":7953,"style":1204},[758],[669,7955,2051],{"className":7956},[1208],[669,7958],{"className":7959,"style":1204},[758],[669,7961,7963,7966,7969],{"className":7962},[743],[669,7964],{"className":7965,"style":773},[747],[669,7967,914],{"className":7968},[752,753],[669,7970,993],{"className":7971},[898],[2447,7973,7974,7976,7978],{},[2465,7975,4960],{},[2465,7977,3480],{},[2465,7979,4965],{},[593,7981,4969],{"id":4968},[2441,7983,7984,7994],{},[2444,7985,7986],{},[2447,7987,7988,7990,7992],{},[2450,7989,4978],{},[2450,7991,4981],{},[2450,7993,4984],{},[2460,7995,7996,8004,8012,8020],{},[2447,7997,7998,8000,8002],{},[2465,7999,4991],{},[2465,8001,4994],{},[2465,8003,4997],{},[2447,8005,8006,8008,8010],{},[2465,8007,2478],{},[2465,8009,5004],{},[2465,8011,2484],{},[2447,8013,8014,8016,8018],{},[2465,8015,2692],{},[2465,8017,5013],{},[2465,8019,5016],{},[2447,8021,8022,8024,8072],{},[2465,8023,2489],{},[2465,8025,8026],{},[669,8027,8029,8048],{"className":8028},[672],[669,8030,8032],{"className":8031},[676],[678,8033,8034],{"xmlns":680},[682,8035,8036,8046],{},[685,8037,8038,8040,8042,8044],{},[688,8039,1985],{"mathvariant":1984},[692,8041,988],{"stretchy":697},[725,8043,5041],{},[692,8045,993],{"stretchy":697},[732,8047,5046],{"encoding":734},[669,8049,8051],{"className":8050,"ariaHidden":710},[739],[669,8052,8054,8057,8060,8063,8069],{"className":8053},[743],[669,8055],{"className":8056,"style":773},[747],[669,8058,1985],{"className":8059,"style":2014},[752,2013],[669,8061,988],{"className":8062},[777],[669,8064,8066],{"className":8065},[752,1114],[669,8067,5041],{"className":8068},[752],[669,8070,993],{"className":8071},[898],[2465,8073,8074,5120],{},[669,8075,8077,8096],{"className":8076},[672],[669,8078,8080],{"className":8079},[676],[678,8081,8082],{"xmlns":680},[682,8083,8084,8094],{},[685,8085,8086,8088,8090,8092],{},[688,8087,1985],{"mathvariant":1984},[692,8089,988],{"stretchy":697},[725,8091,2441],{},[692,8093,993],{"stretchy":697},[732,8095,5095],{"encoding":734},[669,8097,8099],{"className":8098,"ariaHidden":710},[739],[669,8100,8102,8105,8108,8111,8117],{"className":8101},[743],[669,8103],{"className":8104,"style":773},[747],[669,8106,1985],{"className":8107,"style":2014},[752,2013],[669,8109,988],{"className":8110},[777],[669,8112,8114],{"className":8113},[752,1114],[669,8115,2441],{"className":8116},[752],[669,8118,993],{"className":8119},[898],[593,8121,5124],{"id":5123},[2441,8123,8124,8132],{},[2444,8125,8126],{},[2447,8127,8128,8130],{},[2450,8129,5133],{},[2450,8131,5136],{},[2460,8133,8134,8140,8331],{},[2447,8135,8136,8138],{},[2465,8137,5143],{},[2465,8139,5146],{},[2447,8141,8142,8329],{},[2465,8143,5151,8144],{},[669,8145,8147,8206],{"className":8146},[672],[669,8148,8150],{"className":8149},[676],[678,8151,8152],{"xmlns":680},[682,8153,8154,8204],{},[685,8155,8156,8158,8160,8162,8164,8166,8168,8170,8172,8174,8176,8178,8180,8182,8184,8186,8188,8190,8192,8194,8196,8198,8200,8202],{},[688,8157,5166],{},[692,8159,988],{"stretchy":697},[688,8161,3298],{},[692,8163,993],{"stretchy":697},[692,8165,694],{},[688,8167,5177],{},[692,8169,988],{"stretchy":697},[688,8171,5166],{},[692,8173,988],{"stretchy":697},[688,8175,3298],{},[692,8177,1087],{},[705,8179,707],{},[692,8181,993],{"stretchy":697},[692,8183,711],{"separator":710},[688,8185,5166],{},[692,8187,988],{"stretchy":697},[688,8189,3298],{},[692,8191,1087],{},[705,8193,718],{},[692,8195,993],{"stretchy":697},[692,8197,711],{"separator":710},[692,8199,723],{},[725,8201,727],{},[692,8203,993],{"stretchy":697},[732,8205,5216],{"encoding":734},[669,8207,8209,8236,8266,8302],{"className":8208,"ariaHidden":710},[739],[669,8210,8212,8215,8218,8221,8224,8227,8230,8233],{"className":8211},[743],[669,8213],{"className":8214,"style":773},[747],[669,8216,5166],{"className":8217,"style":5229},[752,753],[669,8219,988],{"className":8220},[777],[669,8222,3298],{"className":8223},[752,753],[669,8225,993],{"className":8226},[898],[669,8228],{"className":8229,"style":759},[758],[669,8231,694],{"className":8232},[763],[669,8234],{"className":8235,"style":759},[758],[669,8237,8239,8242,8245,8248,8251,8254,8257,8260,8263],{"className":8238},[743],[669,8240],{"className":8241,"style":773},[747],[669,8243,5177],{"className":8244,"style":5257},[752,753],[669,8246,988],{"className":8247},[777],[669,8249,5166],{"className":8250,"style":5229},[752,753],[669,8252,988],{"className":8253},[777],[669,8255,3298],{"className":8256},[752,753],[669,8258],{"className":8259,"style":1204},[758],[669,8261,1087],{"className":8262},[1208],[669,8264],{"className":8265,"style":1204},[758],[669,8267,8269,8272,8275,8278,8281,8284,8287,8290,8293,8296,8299],{"className":8268},[743],[669,8270],{"className":8271,"style":773},[747],[669,8273,707],{"className":8274},[752],[669,8276,993],{"className":8277},[898],[669,8279,711],{"className":8280},[837],[669,8282],{"className":8283,"style":841},[758],[669,8285,5166],{"className":8286,"style":5229},[752,753],[669,8288,988],{"className":8289},[777],[669,8291,3298],{"className":8292},[752,753],[669,8294],{"className":8295,"style":1204},[758],[669,8297,1087],{"className":8298},[1208],[669,8300],{"className":8301,"style":1204},[758],[669,8303,8305,8308,8311,8314,8317,8320,8323,8326],{"className":8304},[743],[669,8306],{"className":8307,"style":773},[747],[669,8309,718],{"className":8310},[752],[669,8312,993],{"className":8313},[898],[669,8315,711],{"className":8316},[837],[669,8318],{"className":8319,"style":841},[758],[669,8321,723],{"className":8322},[891],[669,8324],{"className":8325,"style":841},[758],[669,8327,993],{"className":8328},[898],[2465,8330,5344],{},[2447,8332,8333,8335],{},[2465,8334,5349],{},[2465,8336,5352],{},[593,8338,5356],{"id":5355},[2425,8340,8341,8343,8458],{},[639,8342,5361],{},[639,8344,5364,8345,5417,8395,5483],{},[669,8346,8348,8365],{"className":8347},[672],[669,8349,8351],{"className":8350},[676],[678,8352,8353],{"xmlns":680},[682,8354,8355,8363],{},[685,8356,8357,8359,8361],{},[688,8358,598],{},[692,8360,1076],{},[688,8362,914],{},[732,8364,5385],{"encoding":734},[669,8366,8368,8386],{"className":8367,"ariaHidden":710},[739],[669,8369,8371,8374,8377,8380,8383],{"className":8370},[743],[669,8372],{"className":8373,"style":5395},[747],[669,8375,598],{"className":8376},[752,753],[669,8378],{"className":8379,"style":759},[758],[669,8381,1076],{"className":8382},[763],[669,8384],{"className":8385,"style":759},[758],[669,8387,8389,8392],{"className":8388},[743],[669,8390],{"className":8391,"style":926},[747],[669,8393,914],{"className":8394},[752,753],[669,8396,8398,8419],{"className":8397},[672],[669,8399,8401],{"className":8400},[676],[678,8402,8403],{"xmlns":680},[682,8404,8405,8417],{},[685,8406,8407,8409,8411,8413,8415],{},[688,8408,3298],{},[692,8410,711],{"separator":710},[688,8412,3303],{},[692,8414,5438],{},[705,8416,1015],{},[732,8418,5443],{"encoding":734},[669,8420,8422,8449],{"className":8421,"ariaHidden":710},[739],[669,8423,8425,8428,8431,8434,8437,8440,8443,8446],{"className":8424},[743],[669,8426],{"className":8427,"style":3396},[747],[669,8429,3298],{"className":8430},[752,753],[669,8432,711],{"className":8433},[837],[669,8435],{"className":8436,"style":841},[758],[669,8438,3303],{"className":8439,"style":3337},[752,753],[669,8441],{"className":8442,"style":759},[758],[669,8444,5438],{"className":8445},[763],[669,8447],{"className":8448,"style":759},[758],[669,8450,8452,8455],{"className":8451},[743],[669,8453],{"className":8454,"style":1561},[747],[669,8456,1015],{"className":8457},[752],[639,8459,5486,8460,5490,8462,5494],{},[602,8461,5489],{},[602,8463,5493],{},[593,8465,5498],{"id":5497},[1409,8467,8468],{"className":1411,"code":5501,"language":1413,"meta":1414,"style":1414},[1416,8469,8470,8490,8504,8522,8540],{"__ignoreMap":1414},[669,8471,8472,8474,8476,8478,8480,8482,8484,8486,8488],{"class":1420,"line":1421},[669,8473,1425],{"class":1424},[669,8475,5510],{"class":1428},[669,8477,1764],{"class":1432},[669,8479,694],{"class":1424},[669,8481,698],{"class":1432},[669,8483,1015],{"class":1448},[669,8485,1452],{"class":1432},[669,8487,1015],{"class":1448},[669,8489,5525],{"class":1432},[669,8491,8492,8494,8496,8498,8500,8502],{"class":1420,"line":1436},[669,8493,1439],{"class":1424},[669,8495,1442],{"class":1432},[669,8497,1494],{"class":1424},[669,8499,5536],{"class":1432},[669,8501,1455],{"class":1424},[669,8503,1827],{"class":1432},[669,8505,8506,8508,8510,8512,8514,8516,8518,8520],{"class":1420,"line":1461},[669,8507,1833],{"class":1432},[669,8509,694],{"class":1424},[669,8511,1467],{"class":1448},[669,8513,1470],{"class":1424},[669,8515,1473],{"class":1448},[669,8517,5555],{"class":1432},[669,8519,1479],{"class":1424},[669,8521,1849],{"class":1432},[669,8523,8524,8526,8528,8530,8532,8534,8536,8538],{"class":1420,"line":1485},[669,8525,1855],{"class":1424},[669,8527,1491],{"class":1432},[669,8529,1494],{"class":1424},[669,8531,1497],{"class":1432},[669,8533,1500],{"class":1424},[669,8535,1491],{"class":1432},[669,8537,1505],{"class":1424},[669,8539,1508],{"class":1432},[669,8541,8542,8544],{"class":1420,"line":1821},[669,8543,1464],{"class":1424},[669,8545,1827],{"class":1432},[4242,8547,5586],{},{"title":1414,"searchDepth":1436,"depth":1436,"links":8549},[8550,8551,8552,8553,8554,8555,8556],{"id":4280,"depth":1436,"text":4281},{"id":4294,"depth":1436,"text":4295},{"id":4680,"depth":1436,"text":4681},{"id":4968,"depth":1436,"text":4969},{"id":5123,"depth":1436,"text":5124},{"id":5355,"depth":1436,"text":5356},{"id":5497,"depth":1436,"text":5498},{},[],{"title":4274,"description":5596},{"id":5604,"title":5605,"body":8561,"description":7326,"extension":4260,"meta":10198,"navigation":4267,"path":7328,"seo":10199,"stem":7330,"__hash__":7331},{"type":590,"value":8562,"toc":10196},[8563,8565,8567,8569,8571,8575,8577,8579,8581,8591,8593,8595,8828,8898,8900,8902,8964,9018,9020,9022,9102,9179,9181,9183,9269,9271,9273,9275,9277,9279,9281,9712,9714,9716,9718,10099,10186,10188,10190,10194],[5609,8564,578],{"id":5611},[598,8566,5614],{},[5616,8568],{},[5609,8570,5621],{"id":5620},[598,8572,5624,8573,5628],{},[602,8574,5627],{},[598,8576,5631],{},[5616,8578],{},[5609,8580,4302],{"id":5636},[636,8582,8583,8587],{},[639,8584,8585,5643],{},[602,8586,643],{},[639,8588,8589,5649],{},[602,8590,5648],{},[5616,8592],{},[5609,8594,5655],{"id":5654},[669,8596,8598],{"className":8597},[969],[669,8599,8601,8664],{"className":8600},[672],[669,8602,8604],{"className":8603},[676],[678,8605,8606],{"xmlns":680,"display":978},[682,8607,8608,8662],{},[685,8609,8610,8612,8614,8616,8618,8620,8622,8624,8650,8652,8654,8656,8658,8660],{},[725,8611,985],{},[692,8613,988],{"stretchy":697},[688,8615,914],{},[692,8617,993],{"stretchy":697},[692,8619,694],{},[705,8621,707],{},[692,8623,1047],{},[5686,8625,8626,8632],{},[685,8627,8628,8630],{},[688,8629,1054],{},[692,8631,1057],{},[685,8633,8634,8636,8638,8640,8642,8644,8646,8648],{},[688,8635,598],{},[692,8637,1064],{},[688,8639,690],{},[692,8641,711],{"separator":710},[725,8643,1071],{},[688,8645,598],{},[692,8647,1076],{},[688,8649,914],{},[725,8651,985],{},[692,8653,988],{"stretchy":697},[688,8655,914],{},[692,8657,1087],{},[688,8659,598],{},[692,8661,993],{"stretchy":697},[732,8663,5726],{"encoding":734},[669,8665,8667,8697,8715,8816],{"className":8666,"ariaHidden":710},[739],[669,8668,8670,8673,8679,8682,8685,8688,8691,8694],{"className":8669},[743],[669,8671],{"className":8672,"style":773},[747],[669,8674,8676],{"className":8675},[752,1114],[669,8677,985],{"className":8678},[752],[669,8680,988],{"className":8681},[777],[669,8683,914],{"className":8684},[752,753],[669,8686,993],{"className":8687},[898],[669,8689],{"className":8690,"style":759},[758],[669,8692,694],{"className":8693},[763],[669,8695],{"className":8696,"style":759},[758],[669,8698,8700,8703,8706,8709,8712],{"className":8699},[743],[669,8701],{"className":8702,"style":4420},[747],[669,8704,707],{"className":8705},[752],[669,8707],{"className":8708,"style":1204},[758],[669,8710,1047],{"className":8711},[1208],[669,8713],{"className":8714,"style":1204},[758],[669,8716,8718,8721,8792,8795,8801,8804,8807,8810,8813],{"className":8717},[743],[669,8719],{"className":8720,"style":5784},[747],[669,8722,8724],{"className":8723},[1215,5788],[669,8725,8727,8784],{"className":8726},[791,792],[669,8728,8730,8781],{"className":8729},[796],[669,8731,8733,8771],{"className":8732,"style":5798},[800],[669,8734,8735,8738],{"style":5801},[669,8736],{"className":8737,"style":2571},[808],[669,8739,8741],{"className":8740},[813,814,815,816],[669,8742,8744,8747,8750,8753,8756,8762,8765,8768],{"className":8743},[752,816],[669,8745,598],{"className":8746},[752,753,816],[669,8748,1064],{"className":8749},[763,816],[669,8751,690],{"className":8752,"style":754},[752,753,816],[669,8754,711],{"className":8755},[837,816],[669,8757,8759],{"className":8758},[758,816],[669,8760,1071],{"className":8761},[816],[669,8763,598],{"className":8764},[752,753,816],[669,8766,1076],{"className":8767},[763,816],[669,8769,914],{"className":8770},[752,753,816],[669,8772,8773,8776],{"style":2567},[669,8774],{"className":8775,"style":2571},[808],[669,8777,8778],{},[669,8779,1054],{"className":8780},[1215],[669,8782,824],{"className":8783},[823],[669,8785,8787],{"className":8786},[796],[669,8788,8790],{"className":8789,"style":5857},[800],[669,8791],{},[669,8793],{"className":8794,"style":841},[758],[669,8796,8798],{"className":8797},[752,1114],[669,8799,985],{"className":8800},[752],[669,8802,988],{"className":8803},[777],[669,8805,914],{"className":8806},[752,753],[669,8808],{"className":8809,"style":1204},[758],[669,8811,1087],{"className":8812},[1208],[669,8814],{"className":8815,"style":1204},[758],[669,8817,8819,8822,8825],{"className":8818},[743],[669,8820],{"className":8821,"style":773},[747],[669,8823,598],{"className":8824},[752,753],[669,8826,993],{"className":8827},[898],[598,8829,5898,8830,1742],{},[669,8831,8833,8856],{"className":8832},[672],[669,8834,8836],{"className":8835},[676],[678,8837,8838],{"xmlns":680},[682,8839,8840,8854],{},[685,8841,8842,8844,8846,8848,8850,8852],{},[725,8843,985],{},[692,8845,988],{"stretchy":697},[705,8847,1015],{},[692,8849,993],{"stretchy":697},[692,8851,694],{},[705,8853,1015],{},[732,8855,4553],{"encoding":734},[669,8857,8859,8889],{"className":8858,"ariaHidden":710},[739],[669,8860,8862,8865,8871,8874,8877,8880,8883,8886],{"className":8861},[743],[669,8863],{"className":8864,"style":773},[747],[669,8866,8868],{"className":8867},[752,1114],[669,8869,985],{"className":8870},[752],[669,8872,988],{"className":8873},[777],[669,8875,1015],{"className":8876},[752],[669,8878,993],{"className":8879},[898],[669,8881],{"className":8882,"style":759},[758],[669,8884,694],{"className":8885},[763],[669,8887],{"className":8888,"style":759},[758],[669,8890,8892,8895],{"className":8891},[743],[669,8893],{"className":8894,"style":1561},[747],[669,8896,1015],{"className":8897},[752],[5616,8899],{},[5609,8901,5972],{"id":5971},[1409,8903,8904],{"className":1411,"code":5975,"language":1413,"meta":1414,"style":1414},[1416,8905,8906,8914,8930,8946],{"__ignoreMap":1414},[669,8907,8908,8910,8912],{"class":1420,"line":1421},[669,8909,1425],{"class":1424},[669,8911,1429],{"class":1428},[669,8913,5986],{"class":1432},[669,8915,8916,8918,8920,8922,8924,8926,8928],{"class":1420,"line":1436},[669,8917,1439],{"class":1424},[669,8919,1442],{"class":1432},[669,8921,1445],{"class":1424},[669,8923,1449],{"class":1448},[669,8925,1452],{"class":1432},[669,8927,1455],{"class":1424},[669,8929,1458],{"class":1448},[669,8931,8932,8934,8936,8938,8940,8942,8944],{"class":1420,"line":1461},[669,8933,1464],{"class":1424},[669,8935,1467],{"class":1448},[669,8937,1470],{"class":1424},[669,8939,1473],{"class":1448},[669,8941,6015],{"class":1432},[669,8943,1479],{"class":1424},[669,8945,6020],{"class":1432},[669,8947,8948,8950,8952,8954,8956,8958,8960,8962],{"class":1420,"line":1485},[669,8949,1488],{"class":1424},[669,8951,1491],{"class":1432},[669,8953,1494],{"class":1424},[669,8955,6031],{"class":1432},[669,8957,1500],{"class":1424},[669,8959,1491],{"class":1432},[669,8961,1505],{"class":1424},[669,8963,1508],{"class":1432},[598,8965,1511,8966,6092,9016,6096],{},[669,8967,8969,8986],{"className":8968},[672],[669,8970,8972],{"className":8971},[676],[678,8973,8974],{"xmlns":680},[682,8975,8976,8984],{},[685,8977,8978,8980,8982],{},[688,8979,914],{},[692,8981,694],{},[705,8983,1530],{},[732,8985,1533],{"encoding":734},[669,8987,8989,9007],{"className":8988,"ariaHidden":710},[739],[669,8990,8992,8995,8998,9001,9004],{"className":8991},[743],[669,8993],{"className":8994,"style":926},[747],[669,8996,914],{"className":8997},[752,753],[669,8999],{"className":9000,"style":759},[758],[669,9002,694],{"className":9003},[763],[669,9005],{"className":9006,"style":759},[758],[669,9008,9010,9013],{"className":9009},[743],[669,9011],{"className":9012,"style":1561},[747],[669,9014,1530],{"className":9015},[752],[602,9017,6095],{},[5616,9019],{},[5609,9021,2455],{"id":6101},[1409,9023,9024],{"className":1411,"code":6104,"language":1413,"meta":1414,"style":1414},[1416,9025,9026,9046,9060,9078,9096],{"__ignoreMap":1414},[669,9027,9028,9030,9032,9034,9036,9038,9040,9042,9044],{"class":1420,"line":1421},[669,9029,1425],{"class":1424},[669,9031,5510],{"class":1428},[669,9033,6115],{"class":1432},[669,9035,694],{"class":1424},[669,9037,698],{"class":1432},[669,9039,1015],{"class":1448},[669,9041,1452],{"class":1432},[669,9043,1015],{"class":1448},[669,9045,5525],{"class":1432},[669,9047,9048,9050,9052,9054,9056,9058],{"class":1420,"line":1436},[669,9049,1439],{"class":1424},[669,9051,1442],{"class":1432},[669,9053,1494],{"class":1424},[669,9055,5536],{"class":1432},[669,9057,1455],{"class":1424},[669,9059,1827],{"class":1432},[669,9061,9062,9064,9066,9068,9070,9072,9074,9076],{"class":1420,"line":1461},[669,9063,1833],{"class":1432},[669,9065,694],{"class":1424},[669,9067,1467],{"class":1448},[669,9069,1470],{"class":1424},[669,9071,1473],{"class":1448},[669,9073,6156],{"class":1432},[669,9075,1479],{"class":1424},[669,9077,6161],{"class":1432},[669,9079,9080,9082,9084,9086,9088,9090,9092,9094],{"class":1420,"line":1485},[669,9081,1855],{"class":1424},[669,9083,1491],{"class":1432},[669,9085,1494],{"class":1424},[669,9087,6031],{"class":1432},[669,9089,1500],{"class":1424},[669,9091,1491],{"class":1432},[669,9093,1505],{"class":1424},[669,9095,1508],{"class":1432},[669,9097,9098,9100],{"class":1420,"line":1821},[669,9099,1464],{"class":1424},[669,9101,1827],{"class":1432},[598,9103,6188,9104,1742],{},[669,9105,9107,9134],{"className":9106},[672],[669,9108,9110],{"className":9109},[676],[678,9111,9112],{"xmlns":680},[682,9113,9114,9132],{},[685,9115,9116,9118,9120,9122,9124,9126,9128,9130],{},[688,9117,1985],{"mathvariant":1984},[692,9119,988],{"stretchy":697},[688,9121,914],{},[692,9123,2051],{},[688,9125,1991],{"mathvariant":1990},[688,9127,690],{},[688,9129,1991],{"mathvariant":1990},[692,9131,993],{"stretchy":697},[732,9133,2062],{"encoding":734},[669,9135,9137,9161],{"className":9136,"ariaHidden":710},[739],[669,9138,9140,9143,9146,9149,9152,9155,9158],{"className":9139},[743],[669,9141],{"className":9142,"style":773},[747],[669,9144,1985],{"className":9145,"style":2014},[752,2013],[669,9147,988],{"className":9148},[777],[669,9150,914],{"className":9151},[752,753],[669,9153],{"className":9154,"style":1204},[758],[669,9156,2051],{"className":9157},[1208],[669,9159],{"className":9160,"style":1204},[758],[669,9162,9164,9167,9170,9173,9176],{"className":9163},[743],[669,9165],{"className":9166,"style":773},[747],[669,9168,1991],{"className":9169},[752],[669,9171,690],{"className":9172,"style":754},[752,753],[669,9174,1991],{"className":9175},[752],[669,9177,993],{"className":9178},[898],[5616,9180],{},[5609,9182,2458],{"id":6268},[1409,9184,9185],{"className":1411,"code":6271,"language":1413,"meta":1414,"style":1414},[1416,9186,9187,9207,9229,9239,9249],{"__ignoreMap":1414},[669,9188,9189,9191,9193,9195,9197,9199,9201,9203,9205],{"class":1420,"line":1421},[669,9190,6278],{"class":1432},[669,9192,694],{"class":1424},[669,9194,2205],{"class":1432},[669,9196,1015],{"class":1448},[669,9198,2210],{"class":1432},[669,9200,1047],{"class":1424},[669,9202,6291],{"class":1432},[669,9204,2222],{"class":1424},[669,9206,3025],{"class":1432},[669,9208,9209,9211,9213,9215,9217,9219,9221,9223,9225,9227],{"class":1420,"line":1436},[669,9210,6300],{"class":1424},[669,9212,2237],{"class":1432},[669,9214,1494],{"class":1424},[669,9216,2242],{"class":1448},[669,9218,988],{"class":1432},[669,9220,707],{"class":1448},[669,9222,6313],{"class":1432},[669,9224,1047],{"class":1424},[669,9226,707],{"class":1448},[669,9228,1772],{"class":1432},[669,9230,9231,9233,9235,9237],{"class":1420,"line":1461},[669,9232,2234],{"class":1424},[669,9234,1491],{"class":1432},[669,9236,1494],{"class":1424},[669,9238,6330],{"class":1432},[669,9240,9241,9243,9245,9247],{"class":1420,"line":1485},[669,9242,6335],{"class":1424},[669,9244,1491],{"class":1432},[669,9246,1505],{"class":1424},[669,9248,6342],{"class":1432},[669,9250,9251,9253,9255,9257,9259,9261,9263,9265,9267],{"class":1420,"line":1821},[669,9252,6347],{"class":1432},[669,9254,694],{"class":1424},[669,9256,1473],{"class":1448},[669,9258,6354],{"class":1432},[669,9260,1479],{"class":1424},[669,9262,6359],{"class":1432},[669,9264,1047],{"class":1424},[669,9266,1467],{"class":1448},[669,9268,2195],{"class":1432},[598,9270,6368],{},[5616,9272],{},[5609,9274,4969],{"id":4968},[6374,9276],{"alt":4969,"kind":6376,"src":6377,"svg":6378},[5616,9278],{},[5609,9280,6384],{"id":6383},[2425,9282,9283,9568,9665],{},[639,9284,6389,9285,1742],{},[669,9286,9288,9369],{"className":9287},[672],[669,9289,9291],{"className":9290},[676],[678,9292,9293],{"xmlns":680},[682,9294,9295,9367],{},[685,9296,9297,9299,9301,9303,9305,9307,9309,9311,9323,9325,9327,9329,9331,9333,9335,9337,9339,9341,9343,9345,9347,9349,9351,9353,9355,9357,9359,9361,9363,9365],{},[688,9298,6404],{},[692,9300,988],{"stretchy":697},[688,9302,3298],{},[692,9304,711],{"separator":710},[688,9306,3303],{},[692,9308,993],{"stretchy":697},[692,9310,694],{},[700,9312,9313,9315],{},[688,9314,5177],{},[685,9316,9317,9319,9321],{},[688,9318,3298],{},[692,9320,711],{"separator":710},[688,9322,3303],{},[692,9324,1047],{},[688,9326,1054],{},[692,9328,1057],{},[692,9330,988],{"stretchy":697},[688,9332,6404],{},[692,9334,988],{"stretchy":697},[688,9336,3298],{},[692,9338,1087],{},[705,9340,707],{},[692,9342,711],{"separator":710},[688,9344,3303],{},[692,9346,993],{"stretchy":697},[692,9348,711],{"separator":710},[688,9350,6404],{},[692,9352,988],{"stretchy":697},[688,9354,3298],{},[692,9356,711],{"separator":710},[688,9358,3303],{},[692,9360,1087],{},[705,9362,707],{},[692,9364,993],{"stretchy":697},[692,9366,993],{"stretchy":697},[732,9368,6475],{"encoding":734},[669,9370,9372,9408,9472,9502,9556],{"className":9371,"ariaHidden":710},[739],[669,9373,9375,9378,9381,9384,9387,9390,9393,9396,9399,9402,9405],{"className":9374},[743],[669,9376],{"className":9377,"style":773},[747],[669,9379,6404],{"className":9380,"style":6488},[752,753],[669,9382,988],{"className":9383},[777],[669,9385,3298],{"className":9386},[752,753],[669,9388,711],{"className":9389},[837],[669,9391],{"className":9392,"style":841},[758],[669,9394,3303],{"className":9395,"style":3337},[752,753],[669,9397,993],{"className":9398},[898],[669,9400],{"className":9401,"style":759},[758],[669,9403,694],{"className":9404},[763],[669,9406],{"className":9407,"style":759},[758],[669,9409,9411,9414,9463,9466,9469],{"className":9410},[743],[669,9412],{"className":9413,"style":6522},[747],[669,9415,9417,9420],{"className":9416},[752],[669,9418,5177],{"className":9419,"style":5257},[752,753],[669,9421,9423],{"className":9422},[787],[669,9424,9426,9455],{"className":9425},[791,792],[669,9427,9429,9452],{"className":9428},[796],[669,9430,9432],{"className":9431,"style":3820},[800],[669,9433,9434,9437],{"style":6543},[669,9435],{"className":9436,"style":809},[808],[669,9438,9440],{"className":9439},[813,814,815,816],[669,9441,9443,9446,9449],{"className":9442},[752,816],[669,9444,3298],{"className":9445},[752,753,816],[669,9447,711],{"className":9448},[837,816],[669,9450,3303],{"className":9451,"style":3337},[752,753,816],[669,9453,824],{"className":9454},[823],[669,9456,9458],{"className":9457},[796],[669,9459,9461],{"className":9460,"style":1280},[800],[669,9462],{},[669,9464],{"className":9465,"style":1204},[758],[669,9467,1047],{"className":9468},[1208],[669,9470],{"className":9471,"style":1204},[758],[669,9473,9475,9478,9481,9484,9487,9490,9493,9496,9499],{"className":9474},[743],[669,9476],{"className":9477,"style":773},[747],[669,9479,1054],{"className":9480},[1215],[669,9482,988],{"className":9483},[777],[669,9485,6404],{"className":9486,"style":6488},[752,753],[669,9488,988],{"className":9489},[777],[669,9491,3298],{"className":9492},[752,753],[669,9494],{"className":9495,"style":1204},[758],[669,9497,1087],{"className":9498},[1208],[669,9500],{"className":9501,"style":1204},[758],[669,9503,9505,9508,9511,9514,9517,9520,9523,9526,9529,9532,9535,9538,9541,9544,9547,9550,9553],{"className":9504},[743],[669,9506],{"className":9507,"style":773},[747],[669,9509,707],{"className":9510},[752],[669,9512,711],{"className":9513},[837],[669,9515],{"className":9516,"style":841},[758],[669,9518,3303],{"className":9519,"style":3337},[752,753],[669,9521,993],{"className":9522},[898],[669,9524,711],{"className":9525},[837],[669,9527],{"className":9528,"style":841},[758],[669,9530,6404],{"className":9531,"style":6488},[752,753],[669,9533,988],{"className":9534},[777],[669,9536,3298],{"className":9537},[752,753],[669,9539,711],{"className":9540},[837],[669,9542],{"className":9543,"style":841},[758],[669,9545,3303],{"className":9546,"style":3337},[752,753],[669,9548],{"className":9549,"style":1204},[758],[669,9551,1087],{"className":9552},[1208],[669,9554],{"className":9555,"style":1204},[758],[669,9557,9559,9562,9565],{"className":9558},[743],[669,9560],{"className":9561,"style":773},[747],[669,9563,707],{"className":9564},[752],[669,9566,6678],{"className":9567},[898],[639,9569,6681,9570,6732,9620,1742],{},[669,9571,9573,9590],{"className":9572},[672],[669,9574,9576],{"className":9575},[676],[678,9577,9578],{"xmlns":680},[682,9579,9580,9588],{},[685,9581,9582,9584,9586],{},[688,9583,2774],{},[692,9585,2777],{},[688,9587,914],{},[732,9589,2782],{"encoding":734},[669,9591,9593,9611],{"className":9592,"ariaHidden":710},[739],[669,9594,9596,9599,9602,9605,9608],{"className":9595},[743],[669,9597],{"className":9598,"style":2792},[747],[669,9600,2774],{"className":9601},[752,753],[669,9603],{"className":9604,"style":1204},[758],[669,9606,2777],{"className":9607},[1208],[669,9609],{"className":9610,"style":1204},[758],[669,9612,9614,9617],{"className":9613},[743],[669,9615],{"className":9616,"style":926},[747],[669,9618,914],{"className":9619},[752,753],[669,9621,9623,9644],{"className":9622},[672],[669,9624,9626],{"className":9625},[676],[678,9627,9628],{"xmlns":680},[682,9629,9630,9642],{},[685,9631,9632,9634,9636,9638,9640],{},[688,9633,1985],{"mathvariant":1984},[692,9635,988],{"stretchy":697},[688,9637,2774],{},[688,9639,914],{},[692,9641,993],{"stretchy":697},[732,9643,2941],{"encoding":734},[669,9645,9647],{"className":9646,"ariaHidden":710},[739],[669,9648,9650,9653,9656,9659,9662],{"className":9649},[743],[669,9651],{"className":9652,"style":773},[747],[669,9654,1985],{"className":9655,"style":2014},[752,2013],[669,9657,988],{"className":9658},[777],[669,9660,705],{"className":9661},[752,753],[669,9663,993],{"className":9664},[898],[639,9666,9667,6782,9669,1742],{},[602,9668,2489],{},[669,9670,9672,9691],{"className":9671},[672],[669,9673,9675],{"className":9674},[676],[678,9676,9677],{"xmlns":680},[682,9678,9679,9689],{},[685,9680,9681,9683,9685,9687],{},[688,9682,1985],{"mathvariant":1984},[692,9684,988],{"stretchy":697},[688,9686,914],{},[692,9688,993],{"stretchy":697},[732,9690,2894],{"encoding":734},[669,9692,9694],{"className":9693,"ariaHidden":710},[739],[669,9695,9697,9700,9703,9706,9709],{"className":9696},[743],[669,9698],{"className":9699,"style":773},[747],[669,9701,1985],{"className":9702,"style":2014},[752,2013],[669,9704,988],{"className":9705},[777],[669,9707,914],{"className":9708},[752,753],[669,9710,993],{"className":9711},[898],[5616,9713],{},[5609,9715,6831],{"id":6830},[598,9717,6834],{},[669,9719,9721],{"className":9720},[969],[669,9722,9724,9829],{"className":9723},[672],[669,9725,9727],{"className":9726},[676],[678,9728,9729],{"xmlns":680,"display":978},[682,9730,9731,9827],{},[685,9732,9733,9735,9737,9739,9741,9743,9745,9747,9749,9751,9753,9755,9757,9759,9761,9763,9765,9767,9769,9771,9773,9775,9777,9779,9781,9783,9785,9787,9789,9791,9793,9795,9797,9799,9801,9803,9805,9807,9809,9811,9813,9815,9817,9819,9821,9823,9825],{},[688,9734,3293],{},[692,9736,988],{"stretchy":697},[688,9738,3298],{},[692,9740,711],{"separator":710},[688,9742,3303],{},[692,9744,993],{"stretchy":697},[692,9746,694],{},[688,9748,3432],{},[692,9750,1057],{},[692,9752,988],{"fence":697,"stretchy":710,"minsize":6870,"maxsize":6870},[688,9754,3293],{},[692,9756,988],{"stretchy":697},[688,9758,3298],{},[692,9760,1087],{},[705,9762,707],{},[692,9764,711],{"separator":710},[688,9766,3303],{},[692,9768,1087],{},[705,9770,707],{},[692,9772,993],{"stretchy":697},[692,9774,1047],{},[688,9776,2774],{},[692,9778,711],{"separator":710},[725,9780,6899],{},[688,9782,3293],{},[692,9784,988],{"stretchy":697},[688,9786,3298],{},[692,9788,1087],{},[705,9790,707],{},[692,9792,711],{"separator":710},[688,9794,3303],{},[692,9796,993],{"stretchy":697},[692,9798,1047],{},[688,9800,5177],{},[692,9802,711],{"separator":710},[725,9804,6899],{},[688,9806,3293],{},[692,9808,988],{"stretchy":697},[688,9810,3298],{},[692,9812,711],{"separator":710},[688,9814,3303],{},[692,9816,1087],{},[705,9818,707],{},[692,9820,993],{"stretchy":697},[692,9822,1047],{},[688,9824,5177],{},[692,9826,993],{"fence":697,"stretchy":710,"minsize":6870,"maxsize":6870},[732,9828,6948],{"encoding":734},[669,9830,9832,9868,9904,9931,9952,9988,10018,10063,10084],{"className":9831,"ariaHidden":710},[739],[669,9833,9835,9838,9841,9844,9847,9850,9853,9856,9859,9862,9865],{"className":9834},[743],[669,9836],{"className":9837,"style":773},[747],[669,9839,3293],{"className":9840,"style":3321},[752,753],[669,9842,988],{"className":9843},[777],[669,9845,3298],{"className":9846},[752,753],[669,9848,711],{"className":9849},[837],[669,9851],{"className":9852,"style":841},[758],[669,9854,3303],{"className":9855,"style":3337},[752,753],[669,9857,993],{"className":9858},[898],[669,9860],{"className":9861,"style":759},[758],[669,9863,694],{"className":9864},[763],[669,9866],{"className":9867,"style":759},[758],[669,9869,9871,9874,9877,9880,9886,9889,9892,9895,9898,9901],{"className":9870},[743],[669,9872],{"className":9873,"style":6994},[747],[669,9875,3432],{"className":9876},[1215],[669,9878],{"className":9879,"style":841},[758],[669,9881,9883],{"className":9882},[752],[669,9884,988],{"className":9885},[1154,7007],[669,9887,3293],{"className":9888,"style":3321},[752,753],[669,9890,988],{"className":9891},[777],[669,9893,3298],{"className":9894},[752,753],[669,9896],{"className":9897,"style":1204},[758],[669,9899,1087],{"className":9900},[1208],[669,9902],{"className":9903,"style":1204},[758],[669,9905,9907,9910,9913,9916,9919,9922,9925,9928],{"className":9906},[743],[669,9908],{"className":9909,"style":3396},[747],[669,9911,707],{"className":9912},[752],[669,9914,711],{"className":9915},[837],[669,9917],{"className":9918,"style":841},[758],[669,9920,3303],{"className":9921,"style":3337},[752,753],[669,9923],{"className":9924,"style":1204},[758],[669,9926,1087],{"className":9927},[1208],[669,9929],{"className":9930,"style":1204},[758],[669,9932,9934,9937,9940,9943,9946,9949],{"className":9933},[743],[669,9935],{"className":9936,"style":773},[747],[669,9938,707],{"className":9939},[752],[669,9941,993],{"className":9942},[898],[669,9944],{"className":9945,"style":1204},[758],[669,9947,1047],{"className":9948},[1208],[669,9950],{"className":9951,"style":1204},[758],[669,9953,9955,9958,9961,9964,9967,9970,9973,9976,9979,9982,9985],{"className":9954},[743],[669,9956],{"className":9957,"style":773},[747],[669,9959,2774],{"className":9960},[752,753],[669,9962,711],{"className":9963},[837],[669,9965],{"className":9966,"style":759},[758],[669,9968],{"className":9969,"style":841},[758],[669,9971,3293],{"className":9972,"style":3321},[752,753],[669,9974,988],{"className":9975},[777],[669,9977,3298],{"className":9978},[752,753],[669,9980],{"className":9981,"style":1204},[758],[669,9983,1087],{"className":9984},[1208],[669,9986],{"className":9987,"style":1204},[758],[669,9989,9991,9994,9997,10000,10003,10006,10009,10012,10015],{"className":9990},[743],[669,9992],{"className":9993,"style":773},[747],[669,9995,707],{"className":9996},[752],[669,9998,711],{"className":9999},[837],[669,10001],{"className":10002,"style":841},[758],[669,10004,3303],{"className":10005,"style":3337},[752,753],[669,10007,993],{"className":10008},[898],[669,10010],{"className":10011,"style":1204},[758],[669,10013,1047],{"className":10014},[1208],[669,10016],{"className":10017,"style":1204},[758],[669,10019,10021,10024,10027,10030,10033,10036,10039,10042,10045,10048,10051,10054,10057,10060],{"className":10020},[743],[669,10022],{"className":10023,"style":773},[747],[669,10025,5177],{"className":10026,"style":5257},[752,753],[669,10028,711],{"className":10029},[837],[669,10031],{"className":10032,"style":759},[758],[669,10034],{"className":10035,"style":841},[758],[669,10037,3293],{"className":10038,"style":3321},[752,753],[669,10040,988],{"className":10041},[777],[669,10043,3298],{"className":10044},[752,753],[669,10046,711],{"className":10047},[837],[669,10049],{"className":10050,"style":841},[758],[669,10052,3303],{"className":10053,"style":3337},[752,753],[669,10055],{"className":10056,"style":1204},[758],[669,10058,1087],{"className":10059},[1208],[669,10061],{"className":10062,"style":1204},[758],[669,10064,10066,10069,10072,10075,10078,10081],{"className":10065},[743],[669,10067],{"className":10068,"style":773},[747],[669,10070,707],{"className":10071},[752],[669,10073,993],{"className":10074},[898],[669,10076],{"className":10077,"style":1204},[758],[669,10079,1047],{"className":10080},[1208],[669,10082],{"className":10083,"style":1204},[758],[669,10085,10087,10090,10093],{"className":10086},[743],[669,10088],{"className":10089,"style":6994},[747],[669,10091,5177],{"className":10092,"style":5257},[752,753],[669,10094,10096],{"className":10095},[752],[669,10097,993],{"className":10098},[1154,7007],[598,10100,10101,7308],{},[669,10102,10104,10135],{"className":10103},[672],[669,10105,10107],{"className":10106},[676],[678,10108,10109],{"xmlns":680},[682,10110,10111,10133],{},[685,10112,10113,10115,10117,10119,10121,10123,10125,10127,10129,10131],{},[688,10114,1985],{"mathvariant":1984},[692,10116,988],{"stretchy":697},[688,10118,1991],{"mathvariant":1990},[688,10120,3480],{},[688,10122,1991],{"mathvariant":1990},[692,10124,2051],{},[688,10126,1991],{"mathvariant":1990},[688,10128,3489],{},[688,10130,1991],{"mathvariant":1990},[692,10132,993],{"stretchy":697},[732,10134,4129],{"encoding":734},[669,10136,10138,10168],{"className":10137,"ariaHidden":710},[739],[669,10139,10141,10144,10147,10150,10153,10156,10159,10162,10165],{"className":10140},[743],[669,10142],{"className":10143,"style":773},[747],[669,10145,1985],{"className":10146,"style":2014},[752,2013],[669,10148,988],{"className":10149},[777],[669,10151,1991],{"className":10152},[752],[669,10154,3480],{"className":10155},[752,753],[669,10157,1991],{"className":10158},[752],[669,10160],{"className":10161,"style":1204},[758],[669,10163,2051],{"className":10164},[1208],[669,10166],{"className":10167,"style":1204},[758],[669,10169,10171,10174,10177,10180,10183],{"className":10170},[743],[669,10172],{"className":10173,"style":773},[747],[669,10175,1991],{"className":10176},[752],[669,10178,3489],{"className":10179},[752,753],[669,10181,1991],{"className":10182},[752],[669,10184,993],{"className":10185},[898],[5616,10187],{},[5609,10189,7314],{"id":7313},[598,10191,7317,10192,7321],{},[602,10193,7320],{},[4242,10195,5586],{},{"title":1414,"searchDepth":1436,"depth":1436,"links":10197},[],{},{"title":5605,"description":7326},1788035586214]