[{"data":1,"prerenderedAt":3102},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons":585,"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons__counterpart":1901,"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons__slides":2235,"annexes-memo:\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons":2563,"annexes-slides:\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons":2845},[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":433,"bo":587,"body":589,"description":1888,"eval":1889,"extension":1890,"labo":1889,"meta":1891,"navigation":860,"path":434,"quizzes":1892,"readingTime":760,"seo":1899,"stem":435,"tp":1889,"__hash__":1900},"cours\u002F1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons.md",[588],"PH02",{"type":590,"value":591,"toc":1878},"minimark",[592,597,622,626,633,658,675,679,737,747,941,1145,1152,1156,1159,1181,1188,1205,1226,1230,1270,1279,1322,1665,1676,1697,1701,1704,1723,1737,1741,1852,1856,1874],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609,610,614,615,618,619],"p",{},"Quand on cherche à résoudre un problème d'optimisation — minimiser un coût,\nmaximiser un gain — la stratégie la plus naïve consiste à se demander, à\nchaque étape : « quel est le meilleur choix ",[602,603,604],"strong",{},"maintenant"," ? » Puis à\nprendre ce choix sans plus se poser de questions. C'est ce qu'on appelle\nune ",[602,607,608],{},"stratégie gloutonne"," (en anglais ",[611,612,613],"em",{},"greedy","). Elle est rapide et\nintuitive. Elle marche parfois — c'est même la solution parfaite pour le\nrendu de monnaie classique. Mais elle peut aussi mener à des résultats\nsous-optimaux. Savoir reconnaître ",[602,616,617],{},"quand"," elle marche est une compétence\nen soi. ",[620,621],"bo-ref",{"code":588},[593,623,625],{"id":624},"le-cœur-du-concept","Le cœur du concept",[598,627,628,629,632],{},"Un ",[602,630,631],{},"algorithme glouton"," :",[634,635,636,644,651],"ol",{},[637,638,639,640,643],"li",{},"Construit la solution ",[602,641,642],{},"pas à pas",".",[637,645,646,647,650],{},"À chaque étape, fait le choix qui ",[602,648,649],{},"semble le meilleur localement",", sans\nse soucier des conséquences sur la suite.",[637,652,653,654,657],{},"Ne revient ",[602,655,656],{},"jamais en arrière"," sur un choix fait.",[659,660,661],"tip",{},[598,662,663,666,667,670,671,674],{},[602,664,665],{},"Analogie"," : vous montez une colline les yeux bandés, en faisant toujours\nle pas qui monte le plus. Vous atteignez ",[602,668,669],{},"un"," sommet — mais peut-être pas\nle ",[602,672,673],{},"plus haut"," sommet de la région.",[593,676,678],{"id":677},"exemple-canonique-le-rendu-de-monnaie","Exemple canonique — le rendu de monnaie",[598,680,681,684,685,732,733,736],{},[602,682,683],{},"Problème"," : rendre une somme ",[686,687,690,712],"span",{"className":688},[689],"katex",[686,691,694],{"className":692},[693],"katex-mathml",[695,696,698],"math",{"xmlns":697},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[699,700,701,708],"semantics",{},[702,703,704],"mrow",{},[705,706,707],"mi",{},"S",[709,710,707],"annotation",{"encoding":711},"application\u002Fx-tex",[686,713,717],{"className":714,"ariaHidden":716},[715],"katex-html","true",[686,718,721,726],{"className":719},[720],"base",[686,722],{"className":723,"style":725},[724],"strut","height:0.6833em;",[686,727,707],{"className":728,"style":731},[729,730],"mord","mathnormal","margin-right:0.0576em;"," avec le ",[602,734,735],{},"minimum"," de pièces, parmi des\npièces de valeurs données (par exemple 1, 2, 5, 10, 20, 50 centimes,\n1 et 2 euros — le système euro).",[598,738,739,742,743,746],{},[602,740,741],{},"Stratégie gloutonne"," : à chaque étape, prendre la ",[602,744,745],{},"plus grosse pièce\npossible"," qui ne dépasse pas ce qui reste à rendre.",[748,749,754],"pre",{"className":750,"code":751,"language":752,"meta":753,"style":753},"language-python shiki shiki-themes github-light github-light github-dark","def rendu_monnaie(somme, pieces):\n    \"\"\"Rend la somme avec la stratégie gloutonne, sur les pieces triées\n    par ordre décroissant. Retourne la liste des pièces utilisées.\"\"\"\n    rendu = []\n    for piece in pieces:\n        while somme >= piece:\n            rendu.append(piece)\n            somme -= piece\n    return rendu\n\neuros = [200, 100, 50, 20, 10, 5, 2, 1]   # en centimes\nprint(rendu_monnaie(287, euros))\n# [200, 50, 20, 10, 5, 2]   — 6 pièces, c'est optimal\n","python","",[755,756,757,773,780,786,798,813,828,834,846,855,862,920,935],"code",{"__ignoreMap":753},[686,758,761,765,769],{"class":759,"line":760},"line",1,[686,762,764],{"class":763},"s8jYJ","def",[686,766,768],{"class":767},"snPdu"," rendu_monnaie",[686,770,772],{"class":771},"sxrX7","(somme, pieces):\n",[686,774,776],{"class":759,"line":775},2,[686,777,779],{"class":778},"sIIMD","    \"\"\"Rend la somme avec la stratégie gloutonne, sur les pieces triées\n",[686,781,783],{"class":759,"line":782},3,[686,784,785],{"class":778},"    par ordre décroissant. Retourne la liste des pièces utilisées.\"\"\"\n",[686,787,789,792,795],{"class":759,"line":788},4,[686,790,791],{"class":771},"    rendu ",[686,793,794],{"class":763},"=",[686,796,797],{"class":771}," []\n",[686,799,801,804,807,810],{"class":759,"line":800},5,[686,802,803],{"class":763},"    for",[686,805,806],{"class":771}," piece ",[686,808,809],{"class":763},"in",[686,811,812],{"class":771}," pieces:\n",[686,814,816,819,822,825],{"class":759,"line":815},6,[686,817,818],{"class":763},"        while",[686,820,821],{"class":771}," somme ",[686,823,824],{"class":763},">=",[686,826,827],{"class":771}," piece:\n",[686,829,831],{"class":759,"line":830},7,[686,832,833],{"class":771},"            rendu.append(piece)\n",[686,835,837,840,843],{"class":759,"line":836},8,[686,838,839],{"class":771},"            somme ",[686,841,842],{"class":763},"-=",[686,844,845],{"class":771}," piece\n",[686,847,849,852],{"class":759,"line":848},9,[686,850,851],{"class":763},"    return",[686,853,854],{"class":771}," rendu\n",[686,856,858],{"class":759,"line":857},10,[686,859,861],{"emptyLinePlaceholder":860},true,"\n",[686,863,865,868,870,873,877,880,883,885,888,890,893,895,898,900,903,905,908,910,913,916],{"class":759,"line":864},11,[686,866,867],{"class":771},"euros ",[686,869,794],{"class":763},[686,871,872],{"class":771}," [",[686,874,876],{"class":875},"sBjJW","200",[686,878,879],{"class":771},", ",[686,881,882],{"class":875},"100",[686,884,879],{"class":771},[686,886,887],{"class":875},"50",[686,889,879],{"class":771},[686,891,892],{"class":875},"20",[686,894,879],{"class":771},[686,896,897],{"class":875},"10",[686,899,879],{"class":771},[686,901,902],{"class":875},"5",[686,904,879],{"class":771},[686,906,907],{"class":875},"2",[686,909,879],{"class":771},[686,911,912],{"class":875},"1",[686,914,915],{"class":771},"]   ",[686,917,919],{"class":918},"sCsY4","# en centimes\n",[686,921,923,926,929,932],{"class":759,"line":922},12,[686,924,925],{"class":875},"print",[686,927,928],{"class":771},"(rendu_monnaie(",[686,930,931],{"class":875},"287",[686,933,934],{"class":771},", euros))\n",[686,936,938],{"class":759,"line":937},13,[686,939,940],{"class":918},"# [200, 50, 20, 10, 5, 2]   — 6 pièces, c'est optimal\n",[942,943,944],"python-snippet",{},[748,945,947],{"className":750,"code":946,"language":752,"meta":753,"style":753},"def rendu_monnaie(somme, pieces):\n    rendu = []\n    for piece in pieces:\n        while somme >= piece:\n            rendu.append(piece)\n            somme -= piece\n    return rendu\n\n# Essai sur le système euro (centimes)\neuros = [200, 100, 50, 20, 10, 5, 2, 1]\nfor total in [287, 463, 99, 1234]:\n    pieces = rendu_monnaie(total, euros)\n    print(f\"{total} cts → {pieces} ({len(pieces)} pièces)\")\n",[755,948,949,957,965,975,985,989,997,1003,1007,1012,1053,1085,1095],{"__ignoreMap":753},[686,950,951,953,955],{"class":759,"line":760},[686,952,764],{"class":763},[686,954,768],{"class":767},[686,956,772],{"class":771},[686,958,959,961,963],{"class":759,"line":775},[686,960,791],{"class":771},[686,962,794],{"class":763},[686,964,797],{"class":771},[686,966,967,969,971,973],{"class":759,"line":782},[686,968,803],{"class":763},[686,970,806],{"class":771},[686,972,809],{"class":763},[686,974,812],{"class":771},[686,976,977,979,981,983],{"class":759,"line":788},[686,978,818],{"class":763},[686,980,821],{"class":771},[686,982,824],{"class":763},[686,984,827],{"class":771},[686,986,987],{"class":759,"line":800},[686,988,833],{"class":771},[686,990,991,993,995],{"class":759,"line":815},[686,992,839],{"class":771},[686,994,842],{"class":763},[686,996,845],{"class":771},[686,998,999,1001],{"class":759,"line":830},[686,1000,851],{"class":763},[686,1002,854],{"class":771},[686,1004,1005],{"class":759,"line":836},[686,1006,861],{"emptyLinePlaceholder":860},[686,1008,1009],{"class":759,"line":848},[686,1010,1011],{"class":918},"# Essai sur le système euro (centimes)\n",[686,1013,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050],{"class":759,"line":857},[686,1015,867],{"class":771},[686,1017,794],{"class":763},[686,1019,872],{"class":771},[686,1021,876],{"class":875},[686,1023,879],{"class":771},[686,1025,882],{"class":875},[686,1027,879],{"class":771},[686,1029,887],{"class":875},[686,1031,879],{"class":771},[686,1033,892],{"class":875},[686,1035,879],{"class":771},[686,1037,897],{"class":875},[686,1039,879],{"class":771},[686,1041,902],{"class":875},[686,1043,879],{"class":771},[686,1045,907],{"class":875},[686,1047,879],{"class":771},[686,1049,912],{"class":875},[686,1051,1052],{"class":771},"]\n",[686,1054,1055,1058,1061,1063,1065,1067,1069,1072,1074,1077,1079,1082],{"class":759,"line":864},[686,1056,1057],{"class":763},"for",[686,1059,1060],{"class":771}," total ",[686,1062,809],{"class":763},[686,1064,872],{"class":771},[686,1066,931],{"class":875},[686,1068,879],{"class":771},[686,1070,1071],{"class":875},"463",[686,1073,879],{"class":771},[686,1075,1076],{"class":875},"99",[686,1078,879],{"class":771},[686,1080,1081],{"class":875},"1234",[686,1083,1084],{"class":771},"]:\n",[686,1086,1087,1090,1092],{"class":759,"line":922},[686,1088,1089],{"class":771},"    pieces ",[686,1091,794],{"class":763},[686,1093,1094],{"class":771}," rendu_monnaie(total, euros)\n",[686,1096,1097,1100,1103,1106,1109,1112,1115,1118,1121,1123,1126,1128,1131,1134,1137,1139,1142],{"class":759,"line":937},[686,1098,1099],{"class":875},"    print",[686,1101,1102],{"class":771},"(",[686,1104,1105],{"class":763},"f",[686,1107,1108],{"class":778},"\"",[686,1110,1111],{"class":875},"{",[686,1113,1114],{"class":771},"total",[686,1116,1117],{"class":875},"}",[686,1119,1120],{"class":778}," cts → ",[686,1122,1111],{"class":875},[686,1124,1125],{"class":771},"pieces",[686,1127,1117],{"class":875},[686,1129,1130],{"class":778}," (",[686,1132,1133],{"class":875},"{len",[686,1135,1136],{"class":771},"(pieces)",[686,1138,1117],{"class":875},[686,1140,1141],{"class":778}," pièces)\"",[686,1143,1144],{"class":771},")\n",[598,1146,1147,1148,1151],{},"Avec le système euro, la stratégie gloutonne donne ",[602,1149,1150],{},"toujours"," le rendu\noptimal. C'est une propriété du système monétaire — pas une vérité\nuniverselle.",[593,1153,1155],{"id":1154},"le-glouton-ne-marche-pas-toujours","Le glouton ne marche pas toujours",[598,1157,1158],{},"Imaginons un système de pièces fictif : 1, 6, 10. On veut rendre 12.",[1160,1161,1162,1172],"ul",{},[637,1163,1164,1167,1168,1171],{},[602,1165,1166],{},"Glouton"," : prend 10, puis 1, puis 1 → ",[602,1169,1170],{},"3 pièces"," (10 + 1 + 1).",[637,1173,1174,1177,1178,643],{},[602,1175,1176],{},"Optimal"," : 6 + 6 → ",[602,1179,1180],{},"2 pièces",[598,1182,1183,1184,1187],{},"La stratégie gloutonne, ici, ",[602,1185,1186],{},"rate"," la solution optimale. Le choix local\n« prendre 10 d'abord » empêche d'utiliser deux fois 6 ensuite.",[1189,1190,1191],"warning",{},[598,1192,1193,1196,1197,1200,1201,1204],{},[602,1194,1195],{},"Un algorithme glouton n'est pas toujours optimal."," Pour certains\nproblèmes, oui ; pour d'autres, non. Il faut ",[602,1198,1199],{},"prouver"," ou ",[602,1202,1203],{},"constater","\nqu'il fonctionne avant de l'employer.",[1206,1207,1209,1215],"self-eval-qcm",{"correct":912,"slug":1208},"gloutons-c1",[1210,1211,1212],"template",{"v-slot:question":753},[598,1213,1214],{},"Sur le système de pièces (1, 6, 10), pour rendre 12, le glouton donne :",[1210,1216,1217],{"v-slot:choices":753},[1160,1218,1219,1221,1223],{},[637,1220,1180],{},[637,1222,1170],{},[637,1224,1225],{},"12 pièces",[593,1227,1229],{"id":1228},"second-exemple-le-sac-à-dos-fractionnaire","Second exemple — le sac à dos fractionnaire",[598,1231,1232,1234,1235,1265,1266,1269],{},[602,1233,683],{}," : vous avez un sac d'une capacité maximale ",[686,1236,1238,1252],{"className":1237},[689],[686,1239,1241],{"className":1240},[693],[695,1242,1243],{"xmlns":697},[699,1244,1245,1250],{},[702,1246,1247],{},[705,1248,1249],{},"W",[709,1251,1249],{"encoding":711},[686,1253,1255],{"className":1254,"ariaHidden":716},[715],[686,1256,1258,1261],{"className":1257},[720],[686,1259],{"className":1260,"style":725},[724],[686,1262,1249],{"className":1263,"style":1264},[729,730],"margin-right:0.1389em;"," kg. Vous\ndisposez d'objets, chacun avec un poids et une valeur. On peut ",[602,1267,1268],{},"fractionner","\nles objets (en prendre une partie). Comment maximiser la valeur totale dans\nle sac ?",[598,1271,1272,1274,1275,1278],{},[602,1273,741],{}," : trier les objets par ",[602,1276,1277],{},"ratio valeur \u002F poids","\ndécroissant, puis remplir le sac en commençant par les objets les plus\n« rentables au kilo ».",[598,1280,1281,1282,1285,1286,1289,1290,1293,1294,1297,1298,1301,1302,1305,1306,1309,1310,1313,1314,1317,1318,1321],{},"On effectue le tri via ",[755,1283,1284],{},"sorted(..., key=...)"," : ",[755,1287,1288],{},"key"," est une ",[602,1291,1292],{},"fonction","\nqui dit, pour chaque objet, ",[602,1295,1296],{},"quelle valeur"," utiliser pour comparer. Ici\n",[755,1299,1300],{},"lambda o: o[2] \u002F o[1]"," est une mini-fonction qui prend un objet ",[755,1303,1304],{},"o"," (un\ntriplet ",[755,1307,1308],{},"(nom, poids, valeur)",") et renvoie son ",[602,1311,1312],{},"ratio valeur\u002Fpoids","\n(",[755,1315,1316],{},"o[2] \u002F o[1]","). On le verra plus en détail au chapitre ",[602,1319,1320],{},"PG"," ; ici, lisez\njuste « trier par ratio décroissant ».",[748,1323,1325],{"className":750,"code":1324,"language":752,"meta":753,"style":753},"def sac_a_dos(objets, capacite):\n    \"\"\"objets : liste de tuples (nom, poids, valeur).\n    Stratégie gloutonne sur le ratio valeur \u002F poids.\"\"\"\n    # Trier par ratio décroissant\n    tries = sorted(objets, key=lambda o: o[2] \u002F o[1], reverse=True)\n    sac = []\n    valeur_totale = 0\n    poids_restant = capacite\n    for nom, poids, valeur in tries:\n        if poids_restant >= poids:\n            # On prend l'objet entier\n            sac.append((nom, poids))\n            valeur_totale += valeur\n            poids_restant -= poids\n        else:\n            # On prend une fraction\n            fraction = poids_restant \u002F poids\n            sac.append((nom, poids * fraction))\n            valeur_totale += valeur * fraction\n            poids_restant = 0\n            break\n    return sac, valeur_totale\n\nobjets = [\n    (\"or\",     2, 60),\n    (\"argent\", 5, 50),\n    (\"cuivre\", 10, 30),\n]\nprint(sac_a_dos(objets, 7))\n# (..., 95.0)   — on prend tout l'or (2 kg, 60) + tout l'argent (5 kg, 50)\n",[755,1326,1327,1337,1342,1347,1352,1400,1409,1419,1429,1441,1454,1459,1464,1475,1486,1495,1501,1515,1527,1542,1551,1557,1565,1570,1581,1603,1621,1640,1645,1659],{"__ignoreMap":753},[686,1328,1329,1331,1334],{"class":759,"line":760},[686,1330,764],{"class":763},[686,1332,1333],{"class":767}," sac_a_dos",[686,1335,1336],{"class":771},"(objets, capacite):\n",[686,1338,1339],{"class":759,"line":775},[686,1340,1341],{"class":778},"    \"\"\"objets : liste de tuples (nom, poids, valeur).\n",[686,1343,1344],{"class":759,"line":782},[686,1345,1346],{"class":778},"    Stratégie gloutonne sur le ratio valeur \u002F poids.\"\"\"\n",[686,1348,1349],{"class":759,"line":788},[686,1350,1351],{"class":918},"    # Trier par ratio décroissant\n",[686,1353,1354,1357,1359,1362,1365,1368,1371,1374,1376,1379,1382,1385,1387,1390,1393,1395,1398],{"class":759,"line":800},[686,1355,1356],{"class":771},"    tries ",[686,1358,794],{"class":763},[686,1360,1361],{"class":875}," sorted",[686,1363,1364],{"class":771},"(objets, ",[686,1366,1288],{"class":1367},"sP4rz",[686,1369,1370],{"class":763},"=lambda",[686,1372,1373],{"class":771}," o: o[",[686,1375,907],{"class":875},[686,1377,1378],{"class":771},"] ",[686,1380,1381],{"class":763},"\u002F",[686,1383,1384],{"class":771}," o[",[686,1386,912],{"class":875},[686,1388,1389],{"class":771},"], ",[686,1391,1392],{"class":1367},"reverse",[686,1394,794],{"class":763},[686,1396,1397],{"class":875},"True",[686,1399,1144],{"class":771},[686,1401,1402,1405,1407],{"class":759,"line":815},[686,1403,1404],{"class":771},"    sac ",[686,1406,794],{"class":763},[686,1408,797],{"class":771},[686,1410,1411,1414,1416],{"class":759,"line":830},[686,1412,1413],{"class":771},"    valeur_totale ",[686,1415,794],{"class":763},[686,1417,1418],{"class":875}," 0\n",[686,1420,1421,1424,1426],{"class":759,"line":836},[686,1422,1423],{"class":771},"    poids_restant ",[686,1425,794],{"class":763},[686,1427,1428],{"class":771}," capacite\n",[686,1430,1431,1433,1436,1438],{"class":759,"line":848},[686,1432,803],{"class":763},[686,1434,1435],{"class":771}," nom, poids, valeur ",[686,1437,809],{"class":763},[686,1439,1440],{"class":771}," tries:\n",[686,1442,1443,1446,1449,1451],{"class":759,"line":857},[686,1444,1445],{"class":763},"        if",[686,1447,1448],{"class":771}," poids_restant ",[686,1450,824],{"class":763},[686,1452,1453],{"class":771}," poids:\n",[686,1455,1456],{"class":759,"line":864},[686,1457,1458],{"class":918},"            # On prend l'objet entier\n",[686,1460,1461],{"class":759,"line":922},[686,1462,1463],{"class":771},"            sac.append((nom, poids))\n",[686,1465,1466,1469,1472],{"class":759,"line":937},[686,1467,1468],{"class":771},"            valeur_totale ",[686,1470,1471],{"class":763},"+=",[686,1473,1474],{"class":771}," valeur\n",[686,1476,1478,1481,1483],{"class":759,"line":1477},14,[686,1479,1480],{"class":771},"            poids_restant ",[686,1482,842],{"class":763},[686,1484,1485],{"class":771}," poids\n",[686,1487,1489,1492],{"class":759,"line":1488},15,[686,1490,1491],{"class":763},"        else",[686,1493,1494],{"class":771},":\n",[686,1496,1498],{"class":759,"line":1497},16,[686,1499,1500],{"class":918},"            # On prend une fraction\n",[686,1502,1504,1507,1509,1511,1513],{"class":759,"line":1503},17,[686,1505,1506],{"class":771},"            fraction ",[686,1508,794],{"class":763},[686,1510,1448],{"class":771},[686,1512,1381],{"class":763},[686,1514,1485],{"class":771},[686,1516,1518,1521,1524],{"class":759,"line":1517},18,[686,1519,1520],{"class":771},"            sac.append((nom, poids ",[686,1522,1523],{"class":763},"*",[686,1525,1526],{"class":771}," fraction))\n",[686,1528,1530,1532,1534,1537,1539],{"class":759,"line":1529},19,[686,1531,1468],{"class":771},[686,1533,1471],{"class":763},[686,1535,1536],{"class":771}," valeur ",[686,1538,1523],{"class":763},[686,1540,1541],{"class":771}," fraction\n",[686,1543,1545,1547,1549],{"class":759,"line":1544},20,[686,1546,1480],{"class":771},[686,1548,794],{"class":763},[686,1550,1418],{"class":875},[686,1552,1554],{"class":759,"line":1553},21,[686,1555,1556],{"class":763},"            break\n",[686,1558,1560,1562],{"class":759,"line":1559},22,[686,1561,851],{"class":763},[686,1563,1564],{"class":771}," sac, valeur_totale\n",[686,1566,1568],{"class":759,"line":1567},23,[686,1569,861],{"emptyLinePlaceholder":860},[686,1571,1573,1576,1578],{"class":759,"line":1572},24,[686,1574,1575],{"class":771},"objets ",[686,1577,794],{"class":763},[686,1579,1580],{"class":771}," [\n",[686,1582,1584,1587,1590,1593,1595,1597,1600],{"class":759,"line":1583},25,[686,1585,1586],{"class":771},"    (",[686,1588,1589],{"class":778},"\"or\"",[686,1591,1592],{"class":771},",     ",[686,1594,907],{"class":875},[686,1596,879],{"class":771},[686,1598,1599],{"class":875},"60",[686,1601,1602],{"class":771},"),\n",[686,1604,1606,1608,1611,1613,1615,1617,1619],{"class":759,"line":1605},26,[686,1607,1586],{"class":771},[686,1609,1610],{"class":778},"\"argent\"",[686,1612,879],{"class":771},[686,1614,902],{"class":875},[686,1616,879],{"class":771},[686,1618,887],{"class":875},[686,1620,1602],{"class":771},[686,1622,1624,1626,1629,1631,1633,1635,1638],{"class":759,"line":1623},27,[686,1625,1586],{"class":771},[686,1627,1628],{"class":778},"\"cuivre\"",[686,1630,879],{"class":771},[686,1632,897],{"class":875},[686,1634,879],{"class":771},[686,1636,1637],{"class":875},"30",[686,1639,1602],{"class":771},[686,1641,1643],{"class":759,"line":1642},28,[686,1644,1052],{"class":771},[686,1646,1648,1650,1653,1656],{"class":759,"line":1647},29,[686,1649,925],{"class":875},[686,1651,1652],{"class":771},"(sac_a_dos(objets, ",[686,1654,1655],{"class":875},"7",[686,1657,1658],{"class":771},"))\n",[686,1660,1662],{"class":759,"line":1661},30,[686,1663,1664],{"class":918},"# (..., 95.0)   — on prend tout l'or (2 kg, 60) + tout l'argent (5 kg, 50)\n",[598,1666,1667,1668,1671,1672,1675],{},"Dans la version ",[602,1669,1670],{},"fractionnaire"," du sac à dos, le glouton est ",[602,1673,1674],{},"optimal",".\nDans la version où il faut prendre les objets entiers (sac à dos 0\u002F1), il ne\nl'est plus toujours — ce dernier problème est étudié plus tard avec des\ntechniques plus puissantes (programmation dynamique en Terminale).",[1206,1677,1679,1684],{"correct":912,"slug":1678},"gloutons-c2",[1210,1680,1681],{"v-slot:question":753},[598,1682,1683],{},"Quelle propriété l'algorithme glouton n'a JAMAIS ?",[1210,1685,1686],{"v-slot:choices":753},[1160,1687,1688,1691,1694],{},[637,1689,1690],{},"Rapide",[637,1692,1693],{},"Toujours optimal",[637,1695,1696],{},"Simple",[593,1698,1700],{"id":1699},"quand-essayer-un-glouton","Quand essayer un glouton ?",[598,1702,1703],{},"Caractéristiques typiques d'un problème où un glouton mérite d'être testé :",[1160,1705,1706,1713,1720],{},[637,1707,1708,1709,1712],{},"une ",[602,1710,1711],{},"fonction de gain ou de coût"," clairement définie à chaque étape ;",[637,1714,1715,1716,1719],{},"des ",[602,1717,1718],{},"choix indépendants"," ou faiblement dépendants entre eux ;",[637,1721,1722],{},"un critère local « évident » (le plus gros, le plus rentable, le plus\nproche, etc.).",[598,1724,1725,1726,879,1729,1732,1733,1736],{},"Quand le glouton ne marche pas, on se tourne vers d'autres stratégies :\n",[602,1727,1728],{},"programmation dynamique",[602,1730,1731],{},"backtracking"," (retour sur trace),\n",[602,1734,1735],{},"branch-and-bound",". Ces techniques arrivent en Terminale.",[593,1738,1740],{"id":1739},"pièges-courants","Pièges courants",[1160,1742,1743,1752,1758],{},[637,1744,1745,1748,1749,643],{},[602,1746,1747],{},"Croire qu'un glouton est toujours optimal",". Toujours vérifier sur des\nexemples, ou démontrer la propriété de ",[602,1750,1751],{},"choix glouton",[637,1753,1754,1757],{},[602,1755,1756],{},"Oublier de trier"," au préalable : pour le sac à dos fractionnaire, c'est\nle tri qui rend le glouton optimal.",[637,1759,1760,1763,1764,1767,1768,1851],{},[602,1761,1762],{},"Confondre rapidité et optimalité"," : le glouton est ",[602,1765,1766],{},"rapide","\n(typiquement ",[686,1769,1771,1805],{"className":1770},[689],[686,1772,1774],{"className":1773},[693],[695,1775,1776],{"xmlns":697},[699,1777,1778,1802],{},[702,1779,1780,1784,1788,1791,1794,1797,1799],{},[705,1781,1783],{"mathvariant":1782},"script","O",[1785,1786,1102],"mo",{"stretchy":1787},"false",[705,1789,1790],{},"n",[705,1792,1793],{},"log",[1785,1795,1796],{},"⁡",[705,1798,1790],{},[1785,1800,1801],{"stretchy":1787},")",[709,1803,1804],{"encoding":711},"\\mathcal{O}(n \\log n)",[686,1806,1808],{"className":1807,"ariaHidden":716},[715],[686,1809,1811,1815,1820,1824,1827,1832,1841,1844,1847],{"className":1810},[720],[686,1812],{"className":1813,"style":1814},[724],"height:1em;vertical-align:-0.25em;",[686,1816,1783],{"className":1817,"style":1819},[729,1818],"mathcal","margin-right:0.0278em;",[686,1821,1102],{"className":1822},[1823],"mopen",[686,1825,1790],{"className":1826},[729,730],[686,1828],{"className":1829,"style":1831},[1830],"mspace","margin-right:0.1667em;",[686,1833,1836,1837],{"className":1834},[1835],"mop","lo",[686,1838,1840],{"style":1839},"margin-right:0.0139em;","g",[686,1842],{"className":1843,"style":1831},[1830],[686,1845,1790],{"className":1846},[729,730],[686,1848,1801],{"className":1849},[1850],"mclose"," avec un tri préalable), mais\nrapidité ≠ qualité de la solution.",[593,1853,1855],{"id":1854},"pour-aller-plus-loin","Pour aller plus loin",[598,1857,1858,1859,1862,1863,1866,1867,1869,1870,1873],{},"Le rendu de monnaie sur ",[602,1860,1861],{},"n'importe quel"," système de pièces, en cherchant\n",[602,1864,1865],{},"vraiment"," l'optimal, exige une stratégie plus puissante : la\n",[602,1868,1728],{},". C'est l'un des grands sujets du programme de\nTerminale. Pour l'instant, retenez le glouton comme un ",[602,1871,1872],{},"premier réflexe"," —\nsouvent bon, parfois pas, à vérifier au cas par cas.",[1875,1876,1877],"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 .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":753,"searchDepth":775,"depth":775,"links":1879},[1880,1881,1882,1883,1884,1885,1886,1887],{"id":595,"depth":775,"text":596},{"id":624,"depth":775,"text":625},{"id":677,"depth":775,"text":678},{"id":1154,"depth":775,"text":1155},{"id":1228,"depth":775,"text":1229},{"id":1699,"depth":775,"text":1700},{"id":1739,"depth":775,"text":1740},{"id":1854,"depth":775,"text":1855},"Construire une solution pas à pas par des choix locaux qui semblent les meilleurs sur le moment — exemple du rendu de monnaie et du sac à dos.",null,"md",{},[1893,1897],{"slug":1208,"kind":1894,"question":1214,"choices":1895,"correct":912,"multi":1896,"explanation":753},"qcm",[1180,1170,1225],false,{"slug":1678,"kind":1894,"question":1683,"choices":1898,"correct":912,"multi":1896,"explanation":753},[1690,1693,1696],{"title":433,"description":1888},"EOwWJywoTAUAMadshc0GfUXD2IRe4QmyuLAemR29eG8",{"id":1902,"title":1903,"bo":1904,"body":1905,"description":2228,"eval":1889,"extension":1890,"labo":1889,"meta":2229,"navigation":1896,"path":2230,"quizzes":2231,"readingTime":760,"seo":2232,"stem":2233,"tp":1889,"__hash__":2234},"coursMemo\u002F1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons.memo.md","Algorithmes gloutons — l'essentiel",[588],{"type":590,"value":1906,"toc":2221},[1907,1911,1918,1922,2049,2054,2065,2070,2081,2085,2133,2135,2150,2154,2218],[593,1908,1910],{"id":1909},"en-une-phrase","En une phrase",[598,1912,1913,1914,1917],{},"Construire une solution pas à pas en prenant à chaque étape le ",[602,1915,1916],{},"meilleur\nchoix local",", sans jamais revenir en arrière.",[593,1919,1921],{"id":1920},"à-mémoriser","À mémoriser",[1160,1923,1924,1930,2043],{},[637,1925,1926,1929],{},[602,1927,1928],{},"Trois caractéristiques"," : pas à pas, choix local optimal, pas de\nretour en arrière.",[637,1931,1932,1934,1935,1200,1979,2042],{},[602,1933,1690],{}," — typiquement ",[686,1936,1938,1958],{"className":1937},[689],[686,1939,1941],{"className":1940},[693],[695,1942,1943],{"xmlns":697},[699,1944,1945,1955],{},[702,1946,1947,1949,1951,1953],{},[705,1948,1783],{"mathvariant":1782},[1785,1950,1102],{"stretchy":1787},[705,1952,1790],{},[1785,1954,1801],{"stretchy":1787},[709,1956,1957],{"encoding":711},"\\mathcal{O}(n)",[686,1959,1961],{"className":1960,"ariaHidden":716},[715],[686,1962,1964,1967,1970,1973,1976],{"className":1963},[720],[686,1965],{"className":1966,"style":1814},[724],[686,1968,1783],{"className":1969,"style":1819},[729,1818],[686,1971,1102],{"className":1972},[1823],[686,1974,1790],{"className":1975},[729,730],[686,1977,1801],{"className":1978},[1850],[686,1980,1982,2007],{"className":1981},[689],[686,1983,1985],{"className":1984},[693],[695,1986,1987],{"xmlns":697},[699,1988,1989,2005],{},[702,1990,1991,1993,1995,1997,1999,2001,2003],{},[705,1992,1783],{"mathvariant":1782},[1785,1994,1102],{"stretchy":1787},[705,1996,1790],{},[705,1998,1793],{},[1785,2000,1796],{},[705,2002,1790],{},[1785,2004,1801],{"stretchy":1787},[709,2006,1804],{"encoding":711},[686,2008,2010],{"className":2009,"ariaHidden":716},[715],[686,2011,2013,2016,2019,2022,2025,2028,2033,2036,2039],{"className":2012},[720],[686,2014],{"className":2015,"style":1814},[724],[686,2017,1783],{"className":2018,"style":1819},[729,1818],[686,2020,1102],{"className":2021},[1823],[686,2023,1790],{"className":2024},[729,730],[686,2026],{"className":2027,"style":1831},[1830],[686,2029,1836,2031],{"className":2030},[1835],[686,2032,1840],{"style":1839},[686,2034],{"className":2035,"style":1831},[1830],[686,2037,1790],{"className":2038},[729,730],[686,2040,1801],{"className":2041},[1850]," avec\nun tri préalable.",[637,2044,2045,2048],{},[602,2046,2047],{},"Pas toujours optimal"," — dépend du problème.",[598,2050,2051],{},[602,2052,2053],{},"Rendu de monnaie",[1160,2055,2056,2059,2062],{},[637,2057,2058],{},"Stratégie : prendre la plus grosse pièce qui ne dépasse pas la somme.",[637,2060,2061],{},"Optimal sur le système euro.",[637,2063,2064],{},"Pas toujours optimal sur des systèmes fictifs (ex : 1, 6, 10 pour rendre 12).",[598,2066,2067],{},[602,2068,2069],{},"Sac à dos fractionnaire",[1160,2071,2072,2075,2078],{},[637,2073,2074],{},"Stratégie : trier par ratio valeur \u002F poids décroissant, remplir.",[637,2076,2077],{},"Optimal en version fractionnaire.",[637,2079,2080],{},"Pas toujours optimal en version 0\u002F1 (objets entiers).",[593,2082,2084],{"id":2083},"à-savoir-reconnaître","À savoir reconnaître",[2086,2087,2088,2100],"table",{},[2089,2090,2091],"thead",{},[2092,2093,2094,2097],"tr",{},[2095,2096,683],"th",{},[2095,2098,2099],{},"Glouton optimal ?",[2101,2102,2103,2112,2120,2126],"tbody",{},[2092,2104,2105,2109],{},[2106,2107,2108],"td",{},"Rendu monnaie (système euro)",[2106,2110,2111],{},"Oui",[2092,2113,2114,2117],{},[2106,2115,2116],{},"Rendu monnaie (système quelconque)",[2106,2118,2119],{},"Pas toujours",[2092,2121,2122,2124],{},[2106,2123,2069],{},[2106,2125,2111],{},[2092,2127,2128,2131],{},[2106,2129,2130],{},"Sac à dos 0\u002F1 (objets entiers)",[2106,2132,2119],{},[593,2134,1740],{"id":1739},[1160,2136,2137,2140,2147],{},[637,2138,2139],{},"Croire qu'un glouton est universellement optimal.",[637,2141,2142,2143,2146],{},"Oublier de ",[602,2144,2145],{},"trier"," avant de gloutonner (cas du sac à dos).",[637,2148,2149],{},"Confondre rapidité et qualité de la solution.",[593,2151,2153],{"id":2152},"syntaxe-python","Syntaxe Python",[748,2155,2157],{"className":750,"code":2156,"language":752,"meta":753,"style":753},"def rendu_monnaie(somme, pieces):\n    # pieces triées en ordre décroissant\n    rendu = []\n    for piece in pieces:\n        while somme >= piece:\n            rendu.append(piece)\n            somme -= piece\n    return rendu\n",[755,2158,2159,2167,2172,2180,2190,2200,2204,2212],{"__ignoreMap":753},[686,2160,2161,2163,2165],{"class":759,"line":760},[686,2162,764],{"class":763},[686,2164,768],{"class":767},[686,2166,772],{"class":771},[686,2168,2169],{"class":759,"line":775},[686,2170,2171],{"class":918},"    # pieces triées en ordre décroissant\n",[686,2173,2174,2176,2178],{"class":759,"line":782},[686,2175,791],{"class":771},[686,2177,794],{"class":763},[686,2179,797],{"class":771},[686,2181,2182,2184,2186,2188],{"class":759,"line":788},[686,2183,803],{"class":763},[686,2185,806],{"class":771},[686,2187,809],{"class":763},[686,2189,812],{"class":771},[686,2191,2192,2194,2196,2198],{"class":759,"line":800},[686,2193,818],{"class":763},[686,2195,821],{"class":771},[686,2197,824],{"class":763},[686,2199,827],{"class":771},[686,2201,2202],{"class":759,"line":815},[686,2203,833],{"class":771},[686,2205,2206,2208,2210],{"class":759,"line":830},[686,2207,839],{"class":771},[686,2209,842],{"class":763},[686,2211,845],{"class":771},[686,2213,2214,2216],{"class":759,"line":836},[686,2215,851],{"class":763},[686,2217,854],{"class":771},[1875,2219,2220],{},"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 .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}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":753,"searchDepth":775,"depth":775,"links":2222},[2223,2224,2225,2226,2227],{"id":1909,"depth":775,"text":1910},{"id":1920,"depth":775,"text":1921},{"id":2083,"depth":775,"text":2084},{"id":1739,"depth":775,"text":1740},{"id":2152,"depth":775,"text":2153},"Mémo de révision sur la stratégie gloutonne, rendu de monnaie et sac à dos.",{},"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons.memo",[],{"title":1903,"description":2228},"1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons.memo","YS-SWgINwuKVbdmf7RRMFzPtIqbAliSyO6BbMqi_Lwk",{"id":2236,"title":2237,"body":2238,"description":2557,"extension":1890,"meta":2558,"navigation":1896,"path":2559,"seo":2560,"stem":2561,"__hash__":2562},"coursSlides\u002F1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons.slides.md","Algorithmes gloutons — diapositives",{"type":590,"value":2239,"toc":2555},[2240,2244,2250,2253,2257,2276,2278,2281,2284,2292,2294,2298,2301,2321,2327,2329,2333,2392,2394,2398,2401,2434,2439,2441,2443,2454,2456,2459,2507,2509,2513,2519,2522,2525,2527,2531,2534,2545,2552],[2241,2242,433],"h1",{"id":2243},"algorithmes-gloutons",[598,2245,2246,2247,2249],{},"Prendre la meilleure décision ",[602,2248,604],{},", sans regret.",[2251,2252],"hr",{},[2241,2254,2256],{"id":2255},"le-principe","Le principe",[634,2258,2259,2264,2271],{},[637,2260,2261,2262],{},"Construire la solution ",[602,2263,642],{},[637,2265,2266,2267,2270],{},"À chaque étape : choix ",[602,2268,2269],{},"localement"," le meilleur",[637,2272,2273],{},[602,2274,2275],{},"Pas de retour en arrière",[2251,2277],{},[2241,2279,665],{"id":2280},"analogie",[598,2282,2283],{},"Monter une colline les yeux bandés en faisant toujours le pas le plus\nmontant.",[598,2285,2286,2287,2289,2290,643],{},"→ Vous atteignez ",[602,2288,669],{}," sommet — pas forcément le ",[602,2291,673],{},[2251,2293],{},[2241,2295,2297],{"id":2296},"exemple-rendu-de-monnaie","Exemple — rendu de monnaie",[598,2299,2300],{},"Rendre 287 centimes avec (200, 100, 50, 20, 10, 5, 2, 1) :",[1160,2302,2303,2306,2309,2312,2315,2318],{},[637,2304,2305],{},"287 → prendre 200, reste 87",[637,2307,2308],{},"87 → prendre 50, reste 37",[637,2310,2311],{},"37 → prendre 20, reste 17",[637,2313,2314],{},"17 → prendre 10, reste 7",[637,2316,2317],{},"7 → prendre 5, reste 2",[637,2319,2320],{},"2 → prendre 2, reste 0",[598,2322,2323,2326],{},[602,2324,2325],{},"6 pièces"," — optimal sur le système euro.",[2251,2328],{},[2241,2330,2332],{"id":2331},"le-code","Le code",[748,2334,2336],{"className":750,"code":2335,"language":752,"meta":753,"style":753},"def rendu_monnaie(somme, pieces):\n    rendu = []\n    for piece in pieces:\n        while somme >= piece:\n            rendu.append(piece)\n            somme -= piece\n    return rendu\n",[755,2337,2338,2346,2354,2364,2374,2378,2386],{"__ignoreMap":753},[686,2339,2340,2342,2344],{"class":759,"line":760},[686,2341,764],{"class":763},[686,2343,768],{"class":767},[686,2345,772],{"class":771},[686,2347,2348,2350,2352],{"class":759,"line":775},[686,2349,791],{"class":771},[686,2351,794],{"class":763},[686,2353,797],{"class":771},[686,2355,2356,2358,2360,2362],{"class":759,"line":782},[686,2357,803],{"class":763},[686,2359,806],{"class":771},[686,2361,809],{"class":763},[686,2363,812],{"class":771},[686,2365,2366,2368,2370,2372],{"class":759,"line":788},[686,2367,818],{"class":763},[686,2369,821],{"class":771},[686,2371,824],{"class":763},[686,2373,827],{"class":771},[686,2375,2376],{"class":759,"line":800},[686,2377,833],{"class":771},[686,2379,2380,2382,2384],{"class":759,"line":815},[686,2381,839],{"class":771},[686,2383,842],{"class":763},[686,2385,845],{"class":771},[686,2387,2388,2390],{"class":759,"line":830},[686,2389,851],{"class":763},[686,2391,854],{"class":771},[2251,2393],{},[2241,2395,2397],{"id":2396},"contre-exemple","Contre-exemple",[598,2399,2400],{},"Système fictif : (1, 6, 10). Somme à rendre : 12.",[2086,2402,2403,2413],{},[2089,2404,2405],{},[2092,2406,2407,2410],{},[2095,2408,2409],{},"Méthode",[2095,2411,2412],{},"Pièces",[2101,2414,2415,2425],{},[2092,2416,2417,2419],{},[2106,2418,1166],{},[2106,2420,2421,2422],{},"10 + 1 + 1 = ",[602,2423,2424],{},"3",[2092,2426,2427,2429],{},[2106,2428,1176],{},[2106,2430,2431,2432],{},"6 + 6 = ",[602,2433,907],{},[598,2435,2436],{},[602,2437,2438],{},"Le glouton rate la solution optimale.",[2251,2440],{},[2241,2442,1700],{"id":1699},[1160,2444,2445,2448,2451],{},[637,2446,2447],{},"Critère local évident (le plus gros, le plus proche, le plus rentable)",[637,2449,2450],{},"Choix faiblement dépendants",[637,2452,2453],{},"Problème d'optimisation",[2251,2455],{},[2241,2457,2069],{"id":2458},"sac-à-dos-fractionnaire",[1160,2460,2461,2493,2499,2502],{},[637,2462,2463,2464,2492],{},"Capacité ",[686,2465,2467,2480],{"className":2466},[689],[686,2468,2470],{"className":2469},[693],[695,2471,2472],{"xmlns":697},[699,2473,2474,2478],{},[702,2475,2476],{},[705,2477,1249],{},[709,2479,1249],{"encoding":711},[686,2481,2483],{"className":2482,"ariaHidden":716},[715],[686,2484,2486,2489],{"className":2485},[720],[686,2487],{"className":2488,"style":725},[724],[686,2490,1249],{"className":2491,"style":1264},[729,730],", objets (poids, valeur)",[637,2494,2495,2496,2498],{},"Stratégie : trier par ",[602,2497,1277],{}," décroissant",[637,2500,2501],{},"Remplir en commençant par le plus rentable",[637,2503,2504,2506],{},[602,2505,1176],{}," en version fractionnaire",[2251,2508],{},[2241,2510,2512],{"id":2511},"sac-à-dos-01","Sac à dos 0\u002F1",[598,2514,2515,2516,632],{},"Si les objets ne peuvent ",[602,2517,2518],{},"pas être fractionnés",[598,2520,2521],{},"→ Le glouton ne fonctionne plus toujours.",[598,2523,2524],{},"→ Programmation dynamique (Terminale).",[2251,2526],{},[2241,2528,2530],{"id":2529},"à-retenir","À retenir",[598,2532,2533],{},"Le glouton :",[1160,2535,2536,2539,2542],{},[637,2537,2538],{},"✓ Rapide",[637,2540,2541],{},"✓ Simple à coder",[637,2543,2544],{},"✗ Pas toujours optimal",[598,2546,2547,2548,2551],{},"Toujours ",[602,2549,2550],{},"vérifier"," qu'il donne la solution voulue.",[1875,2553,2554],{},"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 .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":753,"searchDepth":775,"depth":775,"links":2556},[],"Deck pour la séance sur les algorithmes gloutons.",{},"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons.slides",{"title":2237,"description":2557},"1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons.slides","wTG3cAIExdEMN63fzfbyTLYlz3N0YDDvg2V3sswZJUM",{"id":1902,"title":1903,"bo":2564,"body":2565,"description":2228,"eval":1889,"extension":1890,"labo":1889,"meta":2842,"navigation":1896,"path":2230,"quizzes":2843,"readingTime":760,"seo":2844,"stem":2233,"tp":1889,"__hash__":2234},[588],{"type":590,"value":2566,"toc":2835},[2567,2569,2573,2575,2695,2699,2707,2711,2719,2721,2757,2759,2769,2771,2833],[593,2568,1910],{"id":1909},[598,2570,1913,2571,1917],{},[602,2572,1916],{},[593,2574,1921],{"id":1920},[1160,2576,2577,2581,2691],{},[637,2578,2579,1929],{},[602,2580,1928],{},[637,2582,2583,1934,2585,1200,2628,2042],{},[602,2584,1690],{},[686,2586,2588,2607],{"className":2587},[689],[686,2589,2591],{"className":2590},[693],[695,2592,2593],{"xmlns":697},[699,2594,2595,2605],{},[702,2596,2597,2599,2601,2603],{},[705,2598,1783],{"mathvariant":1782},[1785,2600,1102],{"stretchy":1787},[705,2602,1790],{},[1785,2604,1801],{"stretchy":1787},[709,2606,1957],{"encoding":711},[686,2608,2610],{"className":2609,"ariaHidden":716},[715],[686,2611,2613,2616,2619,2622,2625],{"className":2612},[720],[686,2614],{"className":2615,"style":1814},[724],[686,2617,1783],{"className":2618,"style":1819},[729,1818],[686,2620,1102],{"className":2621},[1823],[686,2623,1790],{"className":2624},[729,730],[686,2626,1801],{"className":2627},[1850],[686,2629,2631,2656],{"className":2630},[689],[686,2632,2634],{"className":2633},[693],[695,2635,2636],{"xmlns":697},[699,2637,2638,2654],{},[702,2639,2640,2642,2644,2646,2648,2650,2652],{},[705,2641,1783],{"mathvariant":1782},[1785,2643,1102],{"stretchy":1787},[705,2645,1790],{},[705,2647,1793],{},[1785,2649,1796],{},[705,2651,1790],{},[1785,2653,1801],{"stretchy":1787},[709,2655,1804],{"encoding":711},[686,2657,2659],{"className":2658,"ariaHidden":716},[715],[686,2660,2662,2665,2668,2671,2674,2677,2682,2685,2688],{"className":2661},[720],[686,2663],{"className":2664,"style":1814},[724],[686,2666,1783],{"className":2667,"style":1819},[729,1818],[686,2669,1102],{"className":2670},[1823],[686,2672,1790],{"className":2673},[729,730],[686,2675],{"className":2676,"style":1831},[1830],[686,2678,1836,2680],{"className":2679},[1835],[686,2681,1840],{"style":1839},[686,2683],{"className":2684,"style":1831},[1830],[686,2686,1790],{"className":2687},[729,730],[686,2689,1801],{"className":2690},[1850],[637,2692,2693,2048],{},[602,2694,2047],{},[598,2696,2697],{},[602,2698,2053],{},[1160,2700,2701,2703,2705],{},[637,2702,2058],{},[637,2704,2061],{},[637,2706,2064],{},[598,2708,2709],{},[602,2710,2069],{},[1160,2712,2713,2715,2717],{},[637,2714,2074],{},[637,2716,2077],{},[637,2718,2080],{},[593,2720,2084],{"id":2083},[2086,2722,2723,2731],{},[2089,2724,2725],{},[2092,2726,2727,2729],{},[2095,2728,683],{},[2095,2730,2099],{},[2101,2732,2733,2739,2745,2751],{},[2092,2734,2735,2737],{},[2106,2736,2108],{},[2106,2738,2111],{},[2092,2740,2741,2743],{},[2106,2742,2116],{},[2106,2744,2119],{},[2092,2746,2747,2749],{},[2106,2748,2069],{},[2106,2750,2111],{},[2092,2752,2753,2755],{},[2106,2754,2130],{},[2106,2756,2119],{},[593,2758,1740],{"id":1739},[1160,2760,2761,2763,2767],{},[637,2762,2139],{},[637,2764,2142,2765,2146],{},[602,2766,2145],{},[637,2768,2149],{},[593,2770,2153],{"id":2152},[748,2772,2773],{"className":750,"code":2156,"language":752,"meta":753,"style":753},[755,2774,2775,2783,2787,2795,2805,2815,2819,2827],{"__ignoreMap":753},[686,2776,2777,2779,2781],{"class":759,"line":760},[686,2778,764],{"class":763},[686,2780,768],{"class":767},[686,2782,772],{"class":771},[686,2784,2785],{"class":759,"line":775},[686,2786,2171],{"class":918},[686,2788,2789,2791,2793],{"class":759,"line":782},[686,2790,791],{"class":771},[686,2792,794],{"class":763},[686,2794,797],{"class":771},[686,2796,2797,2799,2801,2803],{"class":759,"line":788},[686,2798,803],{"class":763},[686,2800,806],{"class":771},[686,2802,809],{"class":763},[686,2804,812],{"class":771},[686,2806,2807,2809,2811,2813],{"class":759,"line":800},[686,2808,818],{"class":763},[686,2810,821],{"class":771},[686,2812,824],{"class":763},[686,2814,827],{"class":771},[686,2816,2817],{"class":759,"line":815},[686,2818,833],{"class":771},[686,2820,2821,2823,2825],{"class":759,"line":830},[686,2822,839],{"class":771},[686,2824,842],{"class":763},[686,2826,845],{"class":771},[686,2828,2829,2831],{"class":759,"line":836},[686,2830,851],{"class":763},[686,2832,854],{"class":771},[1875,2834,2220],{},{"title":753,"searchDepth":775,"depth":775,"links":2836},[2837,2838,2839,2840,2841],{"id":1909,"depth":775,"text":1910},{"id":1920,"depth":775,"text":1921},{"id":2083,"depth":775,"text":2084},{"id":1739,"depth":775,"text":1740},{"id":2152,"depth":775,"text":2153},{},[],{"title":1903,"description":2228},{"id":2236,"title":2237,"body":2846,"description":2557,"extension":1890,"meta":3100,"navigation":1896,"path":2559,"seo":3101,"stem":2561,"__hash__":2562},{"type":590,"value":2847,"toc":3098},[2848,2850,2854,2856,2858,2872,2874,2876,2878,2884,2886,2888,2890,2904,2908,2910,2912,2970,2972,2974,2976,3004,3008,3010,3012,3020,3022,3024,3066,3068,3070,3074,3076,3078,3080,3082,3084,3092,3096],[2241,2849,433],{"id":2243},[598,2851,2246,2852,2249],{},[602,2853,604],{},[2251,2855],{},[2241,2857,2256],{"id":2255},[634,2859,2860,2864,2868],{},[637,2861,2261,2862],{},[602,2863,642],{},[637,2865,2266,2866,2270],{},[602,2867,2269],{},[637,2869,2870],{},[602,2871,2275],{},[2251,2873],{},[2241,2875,665],{"id":2280},[598,2877,2283],{},[598,2879,2286,2880,2289,2882,643],{},[602,2881,669],{},[602,2883,673],{},[2251,2885],{},[2241,2887,2297],{"id":2296},[598,2889,2300],{},[1160,2891,2892,2894,2896,2898,2900,2902],{},[637,2893,2305],{},[637,2895,2308],{},[637,2897,2311],{},[637,2899,2314],{},[637,2901,2317],{},[637,2903,2320],{},[598,2905,2906,2326],{},[602,2907,2325],{},[2251,2909],{},[2241,2911,2332],{"id":2331},[748,2913,2914],{"className":750,"code":2335,"language":752,"meta":753,"style":753},[755,2915,2916,2924,2932,2942,2952,2956,2964],{"__ignoreMap":753},[686,2917,2918,2920,2922],{"class":759,"line":760},[686,2919,764],{"class":763},[686,2921,768],{"class":767},[686,2923,772],{"class":771},[686,2925,2926,2928,2930],{"class":759,"line":775},[686,2927,791],{"class":771},[686,2929,794],{"class":763},[686,2931,797],{"class":771},[686,2933,2934,2936,2938,2940],{"class":759,"line":782},[686,2935,803],{"class":763},[686,2937,806],{"class":771},[686,2939,809],{"class":763},[686,2941,812],{"class":771},[686,2943,2944,2946,2948,2950],{"class":759,"line":788},[686,2945,818],{"class":763},[686,2947,821],{"class":771},[686,2949,824],{"class":763},[686,2951,827],{"class":771},[686,2953,2954],{"class":759,"line":800},[686,2955,833],{"class":771},[686,2957,2958,2960,2962],{"class":759,"line":815},[686,2959,839],{"class":771},[686,2961,842],{"class":763},[686,2963,845],{"class":771},[686,2965,2966,2968],{"class":759,"line":830},[686,2967,851],{"class":763},[686,2969,854],{"class":771},[2251,2971],{},[2241,2973,2397],{"id":2396},[598,2975,2400],{},[2086,2977,2978,2986],{},[2089,2979,2980],{},[2092,2981,2982,2984],{},[2095,2983,2409],{},[2095,2985,2412],{},[2101,2987,2988,2996],{},[2092,2989,2990,2992],{},[2106,2991,1166],{},[2106,2993,2421,2994],{},[602,2995,2424],{},[2092,2997,2998,3000],{},[2106,2999,1176],{},[2106,3001,2431,3002],{},[602,3003,907],{},[598,3005,3006],{},[602,3007,2438],{},[2251,3009],{},[2241,3011,1700],{"id":1699},[1160,3013,3014,3016,3018],{},[637,3015,2447],{},[637,3017,2450],{},[637,3019,2453],{},[2251,3021],{},[2241,3023,2069],{"id":2458},[1160,3025,3026,3056,3060,3062],{},[637,3027,2463,3028,2492],{},[686,3029,3031,3044],{"className":3030},[689],[686,3032,3034],{"className":3033},[693],[695,3035,3036],{"xmlns":697},[699,3037,3038,3042],{},[702,3039,3040],{},[705,3041,1249],{},[709,3043,1249],{"encoding":711},[686,3045,3047],{"className":3046,"ariaHidden":716},[715],[686,3048,3050,3053],{"className":3049},[720],[686,3051],{"className":3052,"style":725},[724],[686,3054,1249],{"className":3055,"style":1264},[729,730],[637,3057,2495,3058,2498],{},[602,3059,1277],{},[637,3061,2501],{},[637,3063,3064,2506],{},[602,3065,1176],{},[2251,3067],{},[2241,3069,2512],{"id":2511},[598,3071,2515,3072,632],{},[602,3073,2518],{},[598,3075,2521],{},[598,3077,2524],{},[2251,3079],{},[2241,3081,2530],{"id":2529},[598,3083,2533],{},[1160,3085,3086,3088,3090],{},[637,3087,2538],{},[637,3089,2541],{},[637,3091,2544],{},[598,3093,2547,3094,2551],{},[602,3095,2550],{},[1875,3097,2554],{},{"title":753,"searchDepth":775,"depth":775,"links":3099},[],{},{"title":2237,"description":2557},1788035583306]