[{"data":1,"prerenderedAt":5586},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle":585,"\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle__counterpart":2244,"\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle__slides":3152,"annexes-memo:\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle":3992,"annexes-slides:\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle":4824},[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":582,"bo":587,"body":589,"description":2231,"eval":2232,"extension":2233,"labo":2232,"meta":2234,"navigation":1629,"path":583,"quizzes":2235,"readingTime":852,"seo":2242,"stem":584,"tp":2232,"__hash__":2243},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.md",[588],"TE05",{"type":590,"value":591,"toc":2222},"minimark",[592,597,819,830,833,837,840,961,1121,1125,1128,1151,1158,1273,1277,1351,1563,1879,1897,1920,1924,1934,1942,1949,1953,1956,2104,2110,2128,2132,2218],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,604,605,609,610,686,687,716,717,745,746,749,750,753,754,757,758,814,815,818],"p",{},[601,602,603],"strong",{},"Rechercher un motif dans un texte"," est une opération omniprésente : la\nbarre de recherche d'un éditeur de texte, la commande ",[606,607,608],"code",{},"grep"," sous Unix, les\nfiltres anti-spam, la bio-informatique… Plutôt que de comparer le motif\ncaractère par caractère à toutes les positions du texte (force brute,\ncoût ",[611,612,615,653],"span",{"className":613},[614],"katex",[611,616,619],{"className":617},[618],"katex-mathml",[620,621,623],"math",{"xmlns":622},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[624,625,626,648],"semantics",{},[627,628,629,634,639,642,645],"mrow",{},[630,631,633],"mi",{"mathvariant":632},"script","O",[635,636,638],"mo",{"stretchy":637},"false","(",[630,640,641],{},"n",[630,643,644],{},"m",[635,646,647],{"stretchy":637},")",[649,650,652],"annotation",{"encoding":651},"application\u002Fx-tex","\\mathcal{O}(nm)",[611,654,658],{"className":655,"ariaHidden":657},[656],"katex-html","true",[611,659,662,667,673,677,682],{"className":660},[661],"base",[611,663],{"className":664,"style":666},[665],"strut","height:1em;vertical-align:-0.25em;",[611,668,633],{"className":669,"style":672},[670,671],"mord","mathcal","margin-right:0.0278em;",[611,674,638],{"className":675},[676],"mopen",[611,678,681],{"className":679},[670,680],"mathnormal","nm",[611,683,647],{"className":684},[685],"mclose"," avec ",[611,688,690,703],{"className":689},[614],[611,691,693],{"className":692},[618],[620,694,695],{"xmlns":622},[624,696,697,701],{},[627,698,699],{},[630,700,641],{},[649,702,641],{"encoding":651},[611,704,706],{"className":705,"ariaHidden":657},[656],[611,707,709,713],{"className":708},[661],[611,710],{"className":711,"style":712},[665],"height:0.4306em;",[611,714,641],{"className":715},[670,680]," longueur du texte et ",[611,718,720,733],{"className":719},[614],[611,721,723],{"className":722},[618],[620,724,725],{"xmlns":622},[624,726,727,731],{},[627,728,729],{},[630,730,644],{},[649,732,644],{"encoding":651},[611,734,736],{"className":735,"ariaHidden":657},[656],[611,737,739,742],{"className":738},[661],[611,740],{"className":741,"style":712},[665],[611,743,644],{"className":744},[670,680]," longueur du motif),\nl'algorithme de ",[601,747,748],{},"Boyer-Moore"," ",[601,751,752],{},"prétraite"," le motif pour pouvoir\neffectuer de ",[601,755,756],{},"grands sauts"," lors d'un échec, et descend parfois en\n",[611,759,761,787],{"className":760},[614],[611,762,764],{"className":763},[618],[620,765,766],{"xmlns":622},[624,767,768,784],{},[627,769,770,772,774,776,780,782],{},[630,771,633],{"mathvariant":632},[635,773,638],{"stretchy":637},[630,775,641],{},[630,777,779],{"mathvariant":778},"normal","\u002F",[630,781,644],{},[635,783,647],{"stretchy":637},[649,785,786],{"encoding":651},"\\mathcal{O}(n\u002Fm)",[611,788,790],{"className":789,"ariaHidden":657},[656],[611,791,793,796,799,802,805,808,811],{"className":792},[661],[611,794],{"className":795,"style":666},[665],[611,797,633],{"className":798,"style":672},[670,671],[611,800,638],{"className":801},[676],[611,803,641],{"className":804},[670,680],[611,806,779],{"className":807},[670],[611,809,644],{"className":810},[670,680],[611,812,647],{"className":813},[685]," — il ",[601,816,817],{},"saute des caractères du texte sans les regarder",".",[598,820,821,822,825,826,829],{},"Pensez à la façon dont vous cherchez un mot dans un ",[601,823,824],{},"livre papier"," : si\nvotre œil tombe sur une lettre qui n'appartient pas du tout au mot\nrecherché, vous tournez la page sans relire les mots autour — c'est\nl'intuition exacte de la ",[601,827,828],{},"règle du mauvais caractère"," introduite plus\nbas.",[831,832],"bo-ref",{"code":588},[593,834,836],{"id":835},"recherche-naïve-pour-comparer","Recherche naïve — pour comparer",[598,838,839],{},"L'algorithme naïf glisse le motif sur le texte, position par position, et\ncompare. Dès qu'un caractère diffère, on décale d'un cran et on recommence.",[841,842,847],"pre",{"className":843,"code":844,"language":845,"meta":846,"style":846},"language-python shiki shiki-themes github-light github-light github-dark","def recherche_naive(texte, motif):\n    n, m = len(texte), len(motif)\n    for i in range(n - m + 1):\n        if texte[i:i+m] == motif:\n            return i\n    return -1\n","python","",[606,848,849,865,887,920,940,949],{"__ignoreMap":846},[611,850,853,857,861],{"class":851,"line":852},"line",1,[611,854,856],{"class":855},"s8jYJ","def",[611,858,860],{"class":859},"snPdu"," recherche_naive",[611,862,864],{"class":863},"sxrX7","(texte, motif):\n",[611,866,868,871,874,878,881,884],{"class":851,"line":867},2,[611,869,870],{"class":863},"    n, m ",[611,872,873],{"class":855},"=",[611,875,877],{"class":876},"sBjJW"," len",[611,879,880],{"class":863},"(texte), ",[611,882,883],{"class":876},"len",[611,885,886],{"class":863},"(motif)\n",[611,888,890,893,896,899,902,905,908,911,914,917],{"class":851,"line":889},3,[611,891,892],{"class":855},"    for",[611,894,895],{"class":863}," i ",[611,897,898],{"class":855},"in",[611,900,901],{"class":876}," range",[611,903,904],{"class":863},"(n ",[611,906,907],{"class":855},"-",[611,909,910],{"class":863}," m ",[611,912,913],{"class":855},"+",[611,915,916],{"class":876}," 1",[611,918,919],{"class":863},"):\n",[611,921,923,926,929,931,934,937],{"class":851,"line":922},4,[611,924,925],{"class":855},"        if",[611,927,928],{"class":863}," texte[i:i",[611,930,913],{"class":855},[611,932,933],{"class":863},"m] ",[611,935,936],{"class":855},"==",[611,938,939],{"class":863}," motif:\n",[611,941,943,946],{"class":851,"line":942},5,[611,944,945],{"class":855},"            return",[611,947,948],{"class":863}," i\n",[611,950,952,955,958],{"class":851,"line":951},6,[611,953,954],{"class":855},"    return",[611,956,957],{"class":855}," -",[611,959,960],{"class":876},"1\n",[598,962,963,964,1045,1046,1074,1075,1120],{},"Coût : jusqu'à ",[611,965,967,992],{"className":966},[614],[611,968,970],{"className":969},[618],[620,971,972],{"xmlns":622},[624,973,974,989],{},[627,975,976,978,981,983,985],{},[630,977,641],{},[635,979,980],{},"−",[630,982,644],{},[635,984,913],{},[986,987,988],"mn",{},"1",[649,990,991],{"encoding":651},"n - m + 1",[611,993,995,1017,1035],{"className":994,"ariaHidden":657},[656],[611,996,998,1002,1005,1010,1014],{"className":997},[661],[611,999],{"className":1000,"style":1001},[665],"height:0.6667em;vertical-align:-0.0833em;",[611,1003,641],{"className":1004},[670,680],[611,1006],{"className":1007,"style":1009},[1008],"mspace","margin-right:0.2222em;",[611,1011,980],{"className":1012},[1013],"mbin",[611,1015],{"className":1016,"style":1009},[1008],[611,1018,1020,1023,1026,1029,1032],{"className":1019},[661],[611,1021],{"className":1022,"style":1001},[665],[611,1024,644],{"className":1025},[670,680],[611,1027],{"className":1028,"style":1009},[1008],[611,1030,913],{"className":1031},[1013],[611,1033],{"className":1034,"style":1009},[1008],[611,1036,1038,1042],{"className":1037},[661],[611,1039],{"className":1040,"style":1041},[665],"height:0.6444em;",[611,1043,988],{"className":1044},[670]," tentatives, chacune jusqu'à ",[611,1047,1049,1062],{"className":1048},[614],[611,1050,1052],{"className":1051},[618],[620,1053,1054],{"xmlns":622},[624,1055,1056,1060],{},[627,1057,1058],{},[630,1059,644],{},[649,1061,644],{"encoding":651},[611,1063,1065],{"className":1064,"ariaHidden":657},[656],[611,1066,1068,1071],{"className":1067},[661],[611,1069],{"className":1070,"style":712},[665],[611,1072,644],{"className":1073},[670,680]," comparaisons, soit\n",[611,1076,1078,1099],{"className":1077},[614],[611,1079,1081],{"className":1080},[618],[620,1082,1083],{"xmlns":622},[624,1084,1085,1097],{},[627,1086,1087,1089,1091,1093,1095],{},[630,1088,633],{"mathvariant":632},[635,1090,638],{"stretchy":637},[630,1092,641],{},[630,1094,644],{},[635,1096,647],{"stretchy":637},[649,1098,652],{"encoding":651},[611,1100,1102],{"className":1101,"ariaHidden":657},[656],[611,1103,1105,1108,1111,1114,1117],{"className":1104},[661],[611,1106],{"className":1107,"style":666},[665],[611,1109,633],{"className":1110,"style":672},[670,671],[611,1112,638],{"className":1113},[676],[611,1115,681],{"className":1116},[670,680],[611,1118,647],{"className":1119},[685]," en pire cas. Acceptable pour des petits textes, prohibitif\nsur des génomes ou des corpus.",[593,1122,1124],{"id":1123},"lintuition-de-boyer-moore","L'intuition de Boyer-Moore",[598,1126,1127],{},"Deux idées fondatrices, contre-intuitives :",[1129,1130,1131,1141],"ol",{},[1132,1133,1134,1137,1138,818],"li",{},[601,1135,1136],{},"Comparer de droite à gauche"," : on aligne le motif à une position du\ntexte, puis on compare ses caractères en partant de la ",[601,1139,1140],{},"fin",[1132,1142,1143,1146,1147,1150],{},[601,1144,1145],{},"Prétraiter le motif"," pour savoir, en cas d'échec, ",[601,1148,1149],{},"combien de cases on\npeut sauter"," sans risquer de manquer une occurrence.",[598,1152,1153,1154,1157],{},"Le prétraitement consiste à construire une ",[601,1155,1156],{},"table du mauvais caractère"," :\npour chaque lettre de l'alphabet, on note sa position la plus à droite dans\nle motif.",[1159,1160,1161],"tip",{},[598,1162,1163,1164,1167,1168,1241,1242,1272],{},"L'intérêt ",[601,1165,1166],{},"majeur"," du prétraitement : on le calcule une seule fois, en\n",[611,1169,1171,1201],{"className":1170},[614],[611,1172,1174],{"className":1173},[618],[620,1175,1176],{"xmlns":622},[624,1177,1178,1198],{},[627,1179,1180,1182,1184,1186,1188,1191,1194,1196],{},[630,1181,633],{"mathvariant":632},[635,1183,638],{"stretchy":637},[630,1185,644],{},[635,1187,913],{},[630,1189,1190],{"mathvariant":778},"∣",[630,1192,1193],{"mathvariant":778},"Σ",[630,1195,1190],{"mathvariant":778},[635,1197,647],{"stretchy":637},[649,1199,1200],{"encoding":651},"\\mathcal{O}(m + |\\Sigma|)",[611,1202,1204,1228],{"className":1203,"ariaHidden":657},[656],[611,1205,1207,1210,1213,1216,1219,1222,1225],{"className":1206},[661],[611,1208],{"className":1209,"style":666},[665],[611,1211,633],{"className":1212,"style":672},[670,671],[611,1214,638],{"className":1215},[676],[611,1217,644],{"className":1218},[670,680],[611,1220],{"className":1221,"style":1009},[1008],[611,1223,913],{"className":1224},[1013],[611,1226],{"className":1227,"style":1009},[1008],[611,1229,1231,1234,1238],{"className":1230},[661],[611,1232],{"className":1233,"style":666},[665],[611,1235,1237],{"className":1236},[670],"∣Σ∣",[611,1239,647],{"className":1240},[685]," où ",[611,1243,1245,1259],{"className":1244},[614],[611,1246,1248],{"className":1247},[618],[620,1249,1250],{"xmlns":622},[624,1251,1252,1256],{},[627,1253,1254],{},[630,1255,1193],{"mathvariant":778},[649,1257,1258],{"encoding":651},"\\Sigma",[611,1260,1262],{"className":1261,"ariaHidden":657},[656],[611,1263,1265,1269],{"className":1264},[661],[611,1266],{"className":1267,"style":1268},[665],"height:0.6833em;",[611,1270,1193],{"className":1271},[670]," est l'alphabet, et il est réutilisé\nà chaque échec. Le coût amortir vaut largement les comparaisons épargnées.",[593,1274,1276],{"id":1275},"la-règle-du-mauvais-caractère","La règle du mauvais caractère",[598,1278,1279,1280,1283,1284,1287,1288,1318,1319,1350],{},"Supposons qu'on compare le motif et le texte en partant de la droite, et que\nle premier caractère ",[601,1281,1282],{},"discordant"," soit ",[606,1285,1286],{},"c"," dans le texte, à la position ",[611,1289,1291,1305],{"className":1290},[614],[611,1292,1294],{"className":1293},[618],[620,1295,1296],{"xmlns":622},[624,1297,1298,1303],{},[627,1299,1300],{},[630,1301,1302],{},"i",[649,1304,1302],{"encoding":651},[611,1306,1308],{"className":1307,"ariaHidden":657},[656],[611,1309,1311,1315],{"className":1310},[661],[611,1312],{"className":1313,"style":1314},[665],"height:0.6595em;",[611,1316,1302],{"className":1317},[670,680],"\ndu texte alignée avec la position ",[611,1320,1322,1336],{"className":1321},[614],[611,1323,1325],{"className":1324},[618],[620,1326,1327],{"xmlns":622},[624,1328,1329,1334],{},[627,1330,1331],{},[630,1332,1333],{},"j",[649,1335,1333],{"encoding":651},[611,1337,1339],{"className":1338,"ariaHidden":657},[656],[611,1340,1342,1346],{"className":1341},[661],[611,1343],{"className":1344,"style":1345},[665],"height:0.854em;vertical-align:-0.1944em;",[611,1347,1333],{"className":1348,"style":1349},[670,680],"margin-right:0.0572em;"," du motif.",[1352,1353,1354,1419],"ul",{},[1132,1355,1356,1357,1359,1360,1363,1364,1415,1416,1418],{},"Si ",[606,1358,1286],{}," n'apparaît ",[601,1361,1362],{},"pas du tout"," dans le motif, on peut décaler de\n",[611,1365,1367,1385],{"className":1366},[614],[611,1368,1370],{"className":1369},[618],[620,1371,1372],{"xmlns":622},[624,1373,1374,1382],{},[627,1375,1376,1378,1380],{},[630,1377,1333],{},[635,1379,913],{},[986,1381,988],{},[649,1383,1384],{"encoding":651},"j + 1",[611,1386,1388,1406],{"className":1387,"ariaHidden":657},[656],[611,1389,1391,1394,1397,1400,1403],{"className":1390},[661],[611,1392],{"className":1393,"style":1345},[665],[611,1395,1333],{"className":1396,"style":1349},[670,680],[611,1398],{"className":1399,"style":1009},[1008],[611,1401,913],{"className":1402},[1013],[611,1404],{"className":1405,"style":1009},[1008],[611,1407,1409,1412],{"className":1408},[661],[611,1410],{"className":1411,"style":1041},[665],[611,1413,988],{"className":1414},[670]," : aucune occurrence possible qui contiendrait ",[606,1417,1286],{}," à cette position.",[1132,1420,1356,1421,1423,1424,1455,1456,1511,1512,818],{},[606,1422,1286],{}," apparaît dans le motif à la position ",[611,1425,1427,1441],{"className":1426},[614],[611,1428,1430],{"className":1429},[618],[620,1431,1432],{"xmlns":622},[624,1433,1434,1439],{},[627,1435,1436],{},[630,1437,1438],{},"k",[649,1440,1438],{"encoding":651},[611,1442,1444],{"className":1443,"ariaHidden":657},[656],[611,1445,1447,1451],{"className":1446},[661],[611,1448],{"className":1449,"style":1450},[665],"height:0.6944em;",[611,1452,1438],{"className":1453,"style":1454},[670,680],"margin-right:0.0315em;"," la plus à droite (",[611,1457,1459,1478],{"className":1458},[614],[611,1460,1462],{"className":1461},[618],[620,1463,1464],{"xmlns":622},[624,1465,1466,1475],{},[627,1467,1468,1470,1473],{},[630,1469,1438],{},[635,1471,1472],{},"\u003C",[630,1474,1333],{},[649,1476,1477],{"encoding":651},"k \u003C j",[611,1479,1481,1502],{"className":1480,"ariaHidden":657},[656],[611,1482,1484,1488,1491,1495,1499],{"className":1483},[661],[611,1485],{"className":1486,"style":1487},[665],"height:0.7335em;vertical-align:-0.0391em;",[611,1489,1438],{"className":1490,"style":1454},[670,680],[611,1492],{"className":1493,"style":1494},[1008],"margin-right:0.2778em;",[611,1496,1472],{"className":1497},[1498],"mrel",[611,1500],{"className":1501,"style":1494},[1008],[611,1503,1505,1508],{"className":1504},[661],[611,1506],{"className":1507,"style":1345},[665],[611,1509,1333],{"className":1510,"style":1349},[670,680],"),\non décale pour aligner cette occurrence sur le texte : décalage de ",[611,1513,1515,1533],{"className":1514},[614],[611,1516,1518],{"className":1517},[618],[620,1519,1520],{"xmlns":622},[624,1521,1522,1530],{},[627,1523,1524,1526,1528],{},[630,1525,1333],{},[635,1527,980],{},[630,1529,1438],{},[649,1531,1532],{"encoding":651},"j - k",[611,1534,1536,1554],{"className":1535,"ariaHidden":657},[656],[611,1537,1539,1542,1545,1548,1551],{"className":1538},[661],[611,1540],{"className":1541,"style":1345},[665],[611,1543,1333],{"className":1544,"style":1349},[670,680],[611,1546],{"className":1547,"style":1009},[1008],[611,1549,980],{"className":1550},[1013],[611,1552],{"className":1553,"style":1009},[1008],[611,1555,1557,1560],{"className":1556},[661],[611,1558],{"className":1559,"style":1450},[665],[611,1561,1438],{"className":1562,"style":1454},[670,680],[841,1564,1566],{"className":843,"code":1565,"language":845,"meta":846,"style":846},"def table_mauvais_caractere(motif):\n    \"\"\"Pour chaque caractère du motif, sa dernière position (0-indexée).\"\"\"\n    table = {}\n    for i, c in enumerate(motif):\n        table[c] = i\n    return table\n\ndef boyer_moore(texte, motif):\n    n, m = len(texte), len(motif)\n    if m == 0: return 0\n    table = table_mauvais_caractere(motif)\n    i = 0\n    while i \u003C= n - m:\n        j = m - 1\n        # Compare de droite à gauche.\n        while j >= 0 and motif[j] == texte[i + j]:\n            j -= 1\n        if j \u003C 0:\n            return i                        # occurrence trouvée\n        # Décalage par règle du mauvais caractère.\n        c = texte[i + j]\n        saut = j - table.get(c, -1)\n        i += max(1, saut)                   # garantit la progression\n    return -1\n",[606,1567,1568,1578,1584,1594,1608,1617,1624,1631,1641,1656,1678,1688,1698,1717,1732,1739,1769,1780,1794,1805,1811,1826,1848,1870],{"__ignoreMap":846},[611,1569,1570,1572,1575],{"class":851,"line":852},[611,1571,856],{"class":855},[611,1573,1574],{"class":859}," table_mauvais_caractere",[611,1576,1577],{"class":863},"(motif):\n",[611,1579,1580],{"class":851,"line":867},[611,1581,1583],{"class":1582},"sIIMD","    \"\"\"Pour chaque caractère du motif, sa dernière position (0-indexée).\"\"\"\n",[611,1585,1586,1589,1591],{"class":851,"line":889},[611,1587,1588],{"class":863},"    table ",[611,1590,873],{"class":855},[611,1592,1593],{"class":863}," {}\n",[611,1595,1596,1598,1601,1603,1606],{"class":851,"line":922},[611,1597,892],{"class":855},[611,1599,1600],{"class":863}," i, c ",[611,1602,898],{"class":855},[611,1604,1605],{"class":876}," enumerate",[611,1607,1577],{"class":863},[611,1609,1610,1613,1615],{"class":851,"line":942},[611,1611,1612],{"class":863},"        table[c] ",[611,1614,873],{"class":855},[611,1616,948],{"class":863},[611,1618,1619,1621],{"class":851,"line":951},[611,1620,954],{"class":855},[611,1622,1623],{"class":863}," table\n",[611,1625,1627],{"class":851,"line":1626},7,[611,1628,1630],{"emptyLinePlaceholder":1629},true,"\n",[611,1632,1634,1636,1639],{"class":851,"line":1633},8,[611,1635,856],{"class":855},[611,1637,1638],{"class":859}," boyer_moore",[611,1640,864],{"class":863},[611,1642,1644,1646,1648,1650,1652,1654],{"class":851,"line":1643},9,[611,1645,870],{"class":863},[611,1647,873],{"class":855},[611,1649,877],{"class":876},[611,1651,880],{"class":863},[611,1653,883],{"class":876},[611,1655,886],{"class":863},[611,1657,1659,1662,1664,1666,1669,1672,1675],{"class":851,"line":1658},10,[611,1660,1661],{"class":855},"    if",[611,1663,910],{"class":863},[611,1665,936],{"class":855},[611,1667,1668],{"class":876}," 0",[611,1670,1671],{"class":863},": ",[611,1673,1674],{"class":855},"return",[611,1676,1677],{"class":876}," 0\n",[611,1679,1681,1683,1685],{"class":851,"line":1680},11,[611,1682,1588],{"class":863},[611,1684,873],{"class":855},[611,1686,1687],{"class":863}," table_mauvais_caractere(motif)\n",[611,1689,1691,1694,1696],{"class":851,"line":1690},12,[611,1692,1693],{"class":863},"    i ",[611,1695,873],{"class":855},[611,1697,1677],{"class":876},[611,1699,1701,1704,1706,1709,1712,1714],{"class":851,"line":1700},13,[611,1702,1703],{"class":855},"    while",[611,1705,895],{"class":863},[611,1707,1708],{"class":855},"\u003C=",[611,1710,1711],{"class":863}," n ",[611,1713,907],{"class":855},[611,1715,1716],{"class":863}," m:\n",[611,1718,1720,1723,1725,1727,1729],{"class":851,"line":1719},14,[611,1721,1722],{"class":863},"        j ",[611,1724,873],{"class":855},[611,1726,910],{"class":863},[611,1728,907],{"class":855},[611,1730,1731],{"class":876}," 1\n",[611,1733,1735],{"class":851,"line":1734},15,[611,1736,1738],{"class":1737},"sCsY4","        # Compare de droite à gauche.\n",[611,1740,1742,1745,1748,1751,1753,1756,1759,1761,1764,1766],{"class":851,"line":1741},16,[611,1743,1744],{"class":855},"        while",[611,1746,1747],{"class":863}," j ",[611,1749,1750],{"class":855},">=",[611,1752,1668],{"class":876},[611,1754,1755],{"class":855}," and",[611,1757,1758],{"class":863}," motif[j] ",[611,1760,936],{"class":855},[611,1762,1763],{"class":863}," texte[i ",[611,1765,913],{"class":855},[611,1767,1768],{"class":863}," j]:\n",[611,1770,1772,1775,1778],{"class":851,"line":1771},17,[611,1773,1774],{"class":863},"            j ",[611,1776,1777],{"class":855},"-=",[611,1779,1731],{"class":876},[611,1781,1783,1785,1787,1789,1791],{"class":851,"line":1782},18,[611,1784,925],{"class":855},[611,1786,1747],{"class":863},[611,1788,1472],{"class":855},[611,1790,1668],{"class":876},[611,1792,1793],{"class":863},":\n",[611,1795,1797,1799,1802],{"class":851,"line":1796},19,[611,1798,945],{"class":855},[611,1800,1801],{"class":863}," i                        ",[611,1803,1804],{"class":1737},"# occurrence trouvée\n",[611,1806,1808],{"class":851,"line":1807},20,[611,1809,1810],{"class":1737},"        # Décalage par règle du mauvais caractère.\n",[611,1812,1814,1817,1819,1821,1823],{"class":851,"line":1813},21,[611,1815,1816],{"class":863},"        c ",[611,1818,873],{"class":855},[611,1820,1763],{"class":863},[611,1822,913],{"class":855},[611,1824,1825],{"class":863}," j]\n",[611,1827,1829,1832,1834,1836,1838,1841,1843,1845],{"class":851,"line":1828},22,[611,1830,1831],{"class":863},"        saut ",[611,1833,873],{"class":855},[611,1835,1747],{"class":863},[611,1837,907],{"class":855},[611,1839,1840],{"class":863}," table.get(c, ",[611,1842,907],{"class":855},[611,1844,988],{"class":876},[611,1846,1847],{"class":863},")\n",[611,1849,1851,1854,1857,1860,1862,1864,1867],{"class":851,"line":1850},23,[611,1852,1853],{"class":863},"        i ",[611,1855,1856],{"class":855},"+=",[611,1858,1859],{"class":876}," max",[611,1861,638],{"class":863},[611,1863,988],{"class":876},[611,1865,1866],{"class":863},", saut)                   ",[611,1868,1869],{"class":1737},"# garantit la progression\n",[611,1871,1873,1875,1877],{"class":851,"line":1872},24,[611,1874,954],{"class":855},[611,1876,957],{"class":855},[611,1878,960],{"class":876},[1880,1881,1882],"warning",{},[598,1883,1884,1885,1888,1889,1892,1893,1896],{},"Le ",[606,1886,1887],{},"max(1, saut)"," garantit qu'on ",[601,1890,1891],{},"avance toujours d'au moins une case"," —\nsans cela, on pourrait boucler si ",[606,1894,1895],{},"saut"," était négatif (cas où la dernière\noccurrence du caractère dans le motif est à droite de la position d'échec).",[1898,1899,1901,1907],"self-eval-qcm",{"correct":988,"slug":1900},"recherche-textuelle-c1",[1902,1903,1904],"template",{"v-slot:question":846},[598,1905,1906],{},"Boyer-Moore compare le motif et le texte…",[1902,1908,1909],{"v-slot:choices":846},[1352,1910,1911,1914,1917],{},[1132,1912,1913],{},"de gauche à droite",[1132,1915,1916],{},"de droite à gauche",[1132,1918,1919],{},"dans un ordre aléatoire",[593,1921,1923],{"id":1922},"un-exemple-déroulé","Un exemple déroulé",[598,1925,1926,1927,1930,1931,818],{},"Recherchons ",[606,1928,1929],{},"ABCDE"," dans ",[606,1932,1933],{},"XYZQABCDE",[841,1935,1940],{"className":1936,"code":1938,"language":1939},[1937],"language-text","Position 0 :   X Y Z Q A B C D E\n               A B C D E             ← échec en j=4 : E ≠ A\n                                       texte[i+j]='A', table['A']=0\n                                       saut = 4 - 0 = 4 → i passe à 4\nPosition 4 :   X Y Z Q A B C D E\n                       A B C D E     ← match complet, retourne 4\n","text",[606,1941,1938],{"__ignoreMap":846},[598,1943,1944,1945,1948],{},"L'astuce, c'est que ",[601,1946,1947],{},"dès le premier échec",", on saute directement 4 cases\nau lieu d'1 — un seul échec a remplacé 4 comparaisons inutiles.",[593,1950,1952],{"id":1951},"coût-sans-entrer-dans-la-preuve","Coût — sans entrer dans la preuve",[598,1954,1955],{},"Le BO le mentionne explicitement : « l'étude du coût, difficile, ne peut\nêtre exigée ». On retient cependant :",[1957,1958,1959,1972],"table",{},[1960,1961,1962],"thead",{},[1963,1964,1965,1969],"tr",{},[1966,1967,1968],"th",{},"Cas",[1966,1970,1971],{},"Coût",[1973,1974,1975,2039,2094],"tbody",{},[1963,1976,1977,1983],{},[1978,1979,1980],"td",{},[601,1981,1982],{},"Meilleur cas",[1978,1984,1985,2038],{},[611,1986,1988,2011],{"className":1987},[614],[611,1989,1991],{"className":1990},[618],[620,1992,1993],{"xmlns":622},[624,1994,1995,2009],{},[627,1996,1997,1999,2001,2003,2005,2007],{},[630,1998,633],{"mathvariant":632},[635,2000,638],{"stretchy":637},[630,2002,641],{},[630,2004,779],{"mathvariant":778},[630,2006,644],{},[635,2008,647],{"stretchy":637},[649,2010,786],{"encoding":651},[611,2012,2014],{"className":2013,"ariaHidden":657},[656],[611,2015,2017,2020,2023,2026,2029,2032,2035],{"className":2016},[661],[611,2018],{"className":2019,"style":666},[665],[611,2021,633],{"className":2022,"style":672},[670,671],[611,2024,638],{"className":2025},[676],[611,2027,641],{"className":2028},[670,680],[611,2030,779],{"className":2031},[670],[611,2033,644],{"className":2034},[670,680],[611,2036,647],{"className":2037},[685]," — sauts maximaux à chaque échec",[1963,2040,2041,2046],{},[1978,2042,2043],{},[601,2044,2045],{},"Pire cas",[1978,2047,2048,2093],{},[611,2049,2051,2072],{"className":2050},[614],[611,2052,2054],{"className":2053},[618],[620,2055,2056],{"xmlns":622},[624,2057,2058,2070],{},[627,2059,2060,2062,2064,2066,2068],{},[630,2061,633],{"mathvariant":632},[635,2063,638],{"stretchy":637},[630,2065,641],{},[630,2067,644],{},[635,2069,647],{"stretchy":637},[649,2071,652],{"encoding":651},[611,2073,2075],{"className":2074,"ariaHidden":657},[656],[611,2076,2078,2081,2084,2087,2090],{"className":2077},[661],[611,2079],{"className":2080,"style":666},[665],[611,2082,633],{"className":2083,"style":672},[670,671],[611,2085,638],{"className":2086},[676],[611,2088,681],{"className":2089},[670,680],[611,2091,647],{"className":2092},[685]," — comparable à la recherche naïve",[1963,2095,2096,2101],{},[1978,2097,2098],{},[601,2099,2100],{},"En pratique",[1978,2102,2103],{},"excellent, surtout pour des grands alphabets",[598,2105,2106,2107,2109],{},"En pratique, plus l'alphabet est grand (texte naturel, ADN), plus la table\npermet des sauts longs — Boyer-Moore est l'algorithme utilisé par ",[606,2108,608],{},"\nclassique pour cette raison.",[1898,2111,2113,2118],{"correct":988,"slug":2112},"recherche-textuelle-c2",[1902,2114,2115],{"v-slot:question":846},[598,2116,2117],{},"Le BO demande-t-il la preuve du coût de Boyer-Moore ?",[1902,2119,2120],{"v-slot:choices":846},[1352,2121,2122,2125],{},[1132,2123,2124],{},"oui, exigible",[1132,2126,2127],{},"non, explicitement non exigé",[593,2129,2131],{"id":2130},"pour-aller-plus-loin","Pour aller plus loin",[598,2133,2134,2135,2138,2139,2205,2206,2209,2210,2213,2214,2217],{},"D'autres algorithmes prétraitent le motif différemment :\n",[601,2136,2137],{},"Knuth-Morris-Pratt"," (KMP) garantit ",[611,2140,2142,2166],{"className":2141},[614],[611,2143,2145],{"className":2144},[618],[620,2146,2147],{"xmlns":622},[624,2148,2149,2163],{},[627,2150,2151,2153,2155,2157,2159,2161],{},[630,2152,633],{"mathvariant":632},[635,2154,638],{"stretchy":637},[630,2156,641],{},[635,2158,913],{},[630,2160,644],{},[635,2162,647],{"stretchy":637},[649,2164,2165],{"encoding":651},"\\mathcal{O}(n + m)",[611,2167,2169,2193],{"className":2168,"ariaHidden":657},[656],[611,2170,2172,2175,2178,2181,2184,2187,2190],{"className":2171},[661],[611,2173],{"className":2174,"style":666},[665],[611,2176,633],{"className":2177,"style":672},[670,671],[611,2179,638],{"className":2180},[676],[611,2182,641],{"className":2183},[670,680],[611,2185],{"className":2186,"style":1009},[1008],[611,2188,913],{"className":2189},[1013],[611,2191],{"className":2192,"style":1009},[1008],[611,2194,2196,2199,2202],{"className":2195},[661],[611,2197],{"className":2198,"style":666},[665],[611,2200,644],{"className":2201},[670,680],[611,2203,647],{"className":2204},[685]," en pire cas,\n",[601,2207,2208],{},"Rabin-Karp"," utilise des fonctions de hachage. Sur de très grandes bases\nde données textuelles (génome humain de 3 milliards de paires de bases),\non ",[601,2211,2212],{},"prétraite plutôt le texte"," : c'est le rôle des ",[601,2215,2216],{},"index"," (suffix\narrays, FM-index) qui permettent des recherches en temps quasi-constant\naprès un prétraitement initial coûteux.",[2219,2220,2221],"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":846,"searchDepth":867,"depth":867,"links":2223},[2224,2225,2226,2227,2228,2229,2230],{"id":595,"depth":867,"text":596},{"id":835,"depth":867,"text":836},{"id":1123,"depth":867,"text":1124},{"id":1275,"depth":867,"text":1276},{"id":1922,"depth":867,"text":1923},{"id":1951,"depth":867,"text":1952},{"id":2130,"depth":867,"text":2131},"Prétraiter le motif pour effectuer des sauts intelligents dans le texte — la stratégie qui rend la recherche textuelle parfois sous-linéaire.",null,"md",{},[2236,2240],{"slug":1900,"kind":2237,"question":1906,"choices":2238,"correct":988,"multi":2239,"explanation":846},"qcm",[1913,1916,1919],false,{"slug":2112,"kind":2237,"question":2117,"choices":2241,"correct":988,"multi":2239,"explanation":846},[2124,2127],{"title":582,"description":2231},"JalfVpYPey_lscg3hzQa70FmXYaWb1TCI86Qpw-vJSE",{"id":2245,"title":2246,"bo":2247,"body":2248,"description":3145,"eval":2232,"extension":2233,"labo":2232,"meta":3146,"navigation":2239,"path":3147,"quizzes":3148,"readingTime":852,"seo":3149,"stem":3150,"tp":2232,"__hash__":3151},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.memo.md","Recherche textuelle — l'essentiel",[588],{"type":590,"value":2249,"toc":3137},[2250,2254,2262,2266,2521,2525,2560,2832,2836,2938,2942,2956,2960,3134],[593,2251,2253],{"id":2252},"en-une-phrase","En une phrase",[598,2255,2256,2258,2259,2261],{},[601,2257,748],{}," prétraite le motif, compare ",[601,2260,1916],{}," et saute\nplusieurs cases du texte à chaque échec — souvent sous-linéaire.",[593,2263,2265],{"id":2264},"à-mémoriser","À mémoriser",[1352,2267,2268,2320,2410,2515],{},[1132,2269,2270,2273,2274,2319],{},[601,2271,2272],{},"Force brute"," : ",[611,2275,2277,2298],{"className":2276},[614],[611,2278,2280],{"className":2279},[618],[620,2281,2282],{"xmlns":622},[624,2283,2284,2296],{},[627,2285,2286,2288,2290,2292,2294],{},[630,2287,633],{"mathvariant":632},[635,2289,638],{"stretchy":637},[630,2291,641],{},[630,2293,644],{},[635,2295,647],{"stretchy":637},[649,2297,652],{"encoding":651},[611,2299,2301],{"className":2300,"ariaHidden":657},[656],[611,2302,2304,2307,2310,2313,2316],{"className":2303},[661],[611,2305],{"className":2306,"style":666},[665],[611,2308,633],{"className":2309,"style":672},[670,671],[611,2311,638],{"className":2312},[676],[611,2314,681],{"className":2315},[670,680],[611,2317,647],{"className":2318},[685],", compare de gauche à droite à chaque position.",[1132,2321,2322,2324,2325],{},[601,2323,748],{}," :\n",[1352,2326,2327,2400,2407],{},[1132,2328,2329,2330,2399],{},"prétraite le motif en ",[611,2331,2333,2360],{"className":2332},[614],[611,2334,2336],{"className":2335},[618],[620,2337,2338],{"xmlns":622},[624,2339,2340,2358],{},[627,2341,2342,2344,2346,2348,2350,2352,2354,2356],{},[630,2343,633],{"mathvariant":632},[635,2345,638],{"stretchy":637},[630,2347,644],{},[635,2349,913],{},[630,2351,1190],{"mathvariant":778},[630,2353,1193],{"mathvariant":778},[630,2355,1190],{"mathvariant":778},[635,2357,647],{"stretchy":637},[649,2359,1200],{"encoding":651},[611,2361,2363,2387],{"className":2362,"ariaHidden":657},[656],[611,2364,2366,2369,2372,2375,2378,2381,2384],{"className":2365},[661],[611,2367],{"className":2368,"style":666},[665],[611,2370,633],{"className":2371,"style":672},[670,671],[611,2373,638],{"className":2374},[676],[611,2376,644],{"className":2377},[670,680],[611,2379],{"className":2380,"style":1009},[1008],[611,2382,913],{"className":2383},[1013],[611,2385],{"className":2386,"style":1009},[1008],[611,2388,2390,2393,2396],{"className":2389},[661],[611,2391],{"className":2392,"style":666},[665],[611,2394,1237],{"className":2395},[670],[611,2397,647],{"className":2398},[685]," — table du mauvais caractère ;",[1132,2401,2402,2403,2406],{},"compare le motif et le texte ",[601,2404,2405],{},"de la fin vers le début"," ;",[1132,2408,2409],{},"en cas d'échec, saute autant de cases que possible.",[1132,2411,2412,2415,2416,2469,2470,818],{},[601,2413,2414],{},"Coûts"," : meilleur cas ",[611,2417,2419,2442],{"className":2418},[614],[611,2420,2422],{"className":2421},[618],[620,2423,2424],{"xmlns":622},[624,2425,2426,2440],{},[627,2427,2428,2430,2432,2434,2436,2438],{},[630,2429,633],{"mathvariant":632},[635,2431,638],{"stretchy":637},[630,2433,641],{},[630,2435,779],{"mathvariant":778},[630,2437,644],{},[635,2439,647],{"stretchy":637},[649,2441,786],{"encoding":651},[611,2443,2445],{"className":2444,"ariaHidden":657},[656],[611,2446,2448,2451,2454,2457,2460,2463,2466],{"className":2447},[661],[611,2449],{"className":2450,"style":666},[665],[611,2452,633],{"className":2453,"style":672},[670,671],[611,2455,638],{"className":2456},[676],[611,2458,641],{"className":2459},[670,680],[611,2461,779],{"className":2462},[670],[611,2464,644],{"className":2465},[670,680],[611,2467,647],{"className":2468},[685],", pire cas ",[611,2471,2473,2494],{"className":2472},[614],[611,2474,2476],{"className":2475},[618],[620,2477,2478],{"xmlns":622},[624,2479,2480,2492],{},[627,2481,2482,2484,2486,2488,2490],{},[630,2483,633],{"mathvariant":632},[635,2485,638],{"stretchy":637},[630,2487,641],{},[630,2489,644],{},[635,2491,647],{"stretchy":637},[649,2493,652],{"encoding":651},[611,2495,2497],{"className":2496,"ariaHidden":657},[656],[611,2498,2500,2503,2506,2509,2512],{"className":2499},[661],[611,2501],{"className":2502,"style":666},[665],[611,2504,633],{"className":2505,"style":672},[670,671],[611,2507,638],{"className":2508},[676],[611,2510,681],{"className":2511},[670,680],[611,2513,647],{"className":2514},[685],[1132,2516,2517,2520],{},[601,2518,2519],{},"Preuve"," : non exigée par le programme.",[593,2522,2524],{"id":2523},"règle-du-mauvais-caractère","Règle du mauvais caractère",[598,2526,2527,2528,2530,2531,2559],{},"Quand un caractère ",[606,2529,1286],{}," du texte ne match pas le motif à la position ",[611,2532,2534,2547],{"className":2533},[614],[611,2535,2537],{"className":2536},[618],[620,2538,2539],{"xmlns":622},[624,2540,2541,2545],{},[627,2542,2543],{},[630,2544,1333],{},[649,2546,1333],{"encoding":651},[611,2548,2550],{"className":2549,"ariaHidden":657},[656],[611,2551,2553,2556],{"className":2552},[661],[611,2554],{"className":2555,"style":1345},[665],[611,2557,1333],{"className":2558,"style":1349},[670,680]," :",[1957,2561,2562,2572],{},[1960,2563,2564],{},[1963,2565,2566,2569],{},[1966,2567,2568],{},"Situation",[1966,2570,2571],{},"Décalage",[1973,2573,2574,2633,2742],{},[1963,2575,2576,2581],{},[1978,2577,2578,2580],{},[606,2579,1286],{}," absent du motif",[1978,2582,2583],{},[611,2584,2586,2603],{"className":2585},[614],[611,2587,2589],{"className":2588},[618],[620,2590,2591],{"xmlns":622},[624,2592,2593,2601],{},[627,2594,2595,2597,2599],{},[630,2596,1333],{},[635,2598,913],{},[986,2600,988],{},[649,2602,1384],{"encoding":651},[611,2604,2606,2624],{"className":2605,"ariaHidden":657},[656],[611,2607,2609,2612,2615,2618,2621],{"className":2608},[661],[611,2610],{"className":2611,"style":1345},[665],[611,2613,1333],{"className":2614,"style":1349},[670,680],[611,2616],{"className":2617,"style":1009},[1008],[611,2619,913],{"className":2620},[1013],[611,2622],{"className":2623,"style":1009},[1008],[611,2625,2627,2630],{"className":2626},[661],[611,2628],{"className":2629,"style":1041},[665],[611,2631,988],{"className":2632},[670],[1963,2634,2635,2690],{},[1978,2636,2637,2639,2640],{},[606,2638,1286],{}," présent à position ",[611,2641,2643,2660],{"className":2642},[614],[611,2644,2646],{"className":2645},[618],[620,2647,2648],{"xmlns":622},[624,2649,2650,2658],{},[627,2651,2652,2654,2656],{},[630,2653,1438],{},[635,2655,1472],{},[630,2657,1333],{},[649,2659,1477],{"encoding":651},[611,2661,2663,2681],{"className":2662,"ariaHidden":657},[656],[611,2664,2666,2669,2672,2675,2678],{"className":2665},[661],[611,2667],{"className":2668,"style":1487},[665],[611,2670,1438],{"className":2671,"style":1454},[670,680],[611,2673],{"className":2674,"style":1494},[1008],[611,2676,1472],{"className":2677},[1498],[611,2679],{"className":2680,"style":1494},[1008],[611,2682,2684,2687],{"className":2683},[661],[611,2685],{"className":2686,"style":1345},[665],[611,2688,1333],{"className":2689,"style":1349},[670,680],[1978,2691,2692],{},[611,2693,2695,2712],{"className":2694},[614],[611,2696,2698],{"className":2697},[618],[620,2699,2700],{"xmlns":622},[624,2701,2702,2710],{},[627,2703,2704,2706,2708],{},[630,2705,1333],{},[635,2707,980],{},[630,2709,1438],{},[649,2711,1532],{"encoding":651},[611,2713,2715,2733],{"className":2714,"ariaHidden":657},[656],[611,2716,2718,2721,2724,2727,2730],{"className":2717},[661],[611,2719],{"className":2720,"style":1345},[665],[611,2722,1333],{"className":2723,"style":1349},[670,680],[611,2725],{"className":2726,"style":1009},[1008],[611,2728,980],{"className":2729},[1013],[611,2731],{"className":2732,"style":1009},[1008],[611,2734,2736,2739],{"className":2735},[661],[611,2737],{"className":2738,"style":1450},[665],[611,2740,1438],{"className":2741,"style":1454},[670,680],[1963,2743,2744,2801],{},[1978,2745,2746,2748,2749],{},[606,2747,1286],{}," présent uniquement à ",[611,2750,2752,2771],{"className":2751},[614],[611,2753,2755],{"className":2754},[618],[620,2756,2757],{"xmlns":622},[624,2758,2759,2768],{},[627,2760,2761,2763,2766],{},[630,2762,1438],{},[635,2764,2765],{},">",[630,2767,1333],{},[649,2769,2770],{"encoding":651},"k > j",[611,2772,2774,2792],{"className":2773,"ariaHidden":657},[656],[611,2775,2777,2780,2783,2786,2789],{"className":2776},[661],[611,2778],{"className":2779,"style":1487},[665],[611,2781,1438],{"className":2782,"style":1454},[670,680],[611,2784],{"className":2785,"style":1494},[1008],[611,2787,2765],{"className":2788},[1498],[611,2790],{"className":2791,"style":1494},[1008],[611,2793,2795,2798],{"className":2794},[661],[611,2796],{"className":2797,"style":1345},[665],[611,2799,1333],{"className":2800,"style":1349},[670,680],[1978,2802,2803,2831],{},[611,2804,2806,2819],{"className":2805},[614],[611,2807,2809],{"className":2808},[618],[620,2810,2811],{"xmlns":622},[624,2812,2813,2817],{},[627,2814,2815],{},[986,2816,988],{},[649,2818,988],{"encoding":651},[611,2820,2822],{"className":2821,"ariaHidden":657},[656],[611,2823,2825,2828],{"className":2824},[661],[611,2826],{"className":2827,"style":1041},[665],[611,2829,988],{"className":2830},[670]," (avancer prudemment)",[593,2833,2835],{"id":2834},"à-savoir-reconnaître","À savoir reconnaître",[1957,2837,2838,2847],{},[1960,2839,2840],{},[1963,2841,2842,2844],{},[1966,2843,2568],{},[1966,2845,2846],{},"Algorithme",[1973,2848,2849,2856,2930],{},[1963,2850,2851,2854],{},[1978,2852,2853],{},"Recherche dans un long texte naturel",[1978,2855,748],{},[1963,2857,2858,2928],{},[1978,2859,2860,2861,2927],{},"Garantir ",[611,2862,2864,2888],{"className":2863},[614],[611,2865,2867],{"className":2866},[618],[620,2868,2869],{"xmlns":622},[624,2870,2871,2885],{},[627,2872,2873,2875,2877,2879,2881,2883],{},[630,2874,633],{"mathvariant":632},[635,2876,638],{"stretchy":637},[630,2878,641],{},[635,2880,913],{},[630,2882,644],{},[635,2884,647],{"stretchy":637},[649,2886,2887],{"encoding":651},"\\mathcal{O}(n+m)",[611,2889,2891,2915],{"className":2890,"ariaHidden":657},[656],[611,2892,2894,2897,2900,2903,2906,2909,2912],{"className":2893},[661],[611,2895],{"className":2896,"style":666},[665],[611,2898,633],{"className":2899,"style":672},[670,671],[611,2901,638],{"className":2902},[676],[611,2904,641],{"className":2905},[670,680],[611,2907],{"className":2908,"style":1009},[1008],[611,2910,913],{"className":2911},[1013],[611,2913],{"className":2914,"style":1009},[1008],[611,2916,2918,2921,2924],{"className":2917},[661],[611,2919],{"className":2920,"style":666},[665],[611,2922,644],{"className":2923},[670,680],[611,2925,647],{"className":2926},[685]," pire cas",[1978,2929,2137],{},[1963,2931,2932,2935],{},[1978,2933,2934],{},"Recherche multi-motifs sur génome indexé",[1978,2936,2937],{},"Suffix array, FM-index",[593,2939,2941],{"id":2940},"pièges-courants","Pièges courants",[1352,2943,2944,2950,2953],{},[1132,2945,2946,2947,2949],{},"Oublier le ",[606,2948,1887],{}," → risque de boucle infinie.",[1132,2951,2952],{},"Confondre indice du caractère dans le motif et dans le texte.",[1132,2954,2955],{},"Croire que Boyer-Moore est toujours plus rapide — sur un motif très court,\nla naïve peut être compétitive.",[593,2957,2959],{"id":2958},"syntaxe-python-à-retenir","Syntaxe Python (à retenir)",[841,2961,2963],{"className":843,"code":2962,"language":845,"meta":846,"style":846},"def boyer_moore(t, m):\n    table = {c: i for i, c in enumerate(m)}\n    i, M, T = 0, len(m), len(t)\n    while i \u003C= T - M:\n        j = M - 1\n        while j >= 0 and m[j] == t[i + j]:\n            j -= 1\n        if j \u003C 0: return i\n        i += max(1, j - table.get(t[i + j], -1))\n    return -1\n",[606,2964,2965,2974,2995,3017,3033,3046,3070,3078,3094,3126],{"__ignoreMap":846},[611,2966,2967,2969,2971],{"class":851,"line":852},[611,2968,856],{"class":855},[611,2970,1638],{"class":859},[611,2972,2973],{"class":863},"(t, m):\n",[611,2975,2976,2978,2980,2983,2986,2988,2990,2992],{"class":851,"line":867},[611,2977,1588],{"class":863},[611,2979,873],{"class":855},[611,2981,2982],{"class":863}," {c: i ",[611,2984,2985],{"class":855},"for",[611,2987,1600],{"class":863},[611,2989,898],{"class":855},[611,2991,1605],{"class":876},[611,2993,2994],{"class":863},"(m)}\n",[611,2996,2997,3000,3002,3004,3007,3009,3012,3014],{"class":851,"line":889},[611,2998,2999],{"class":863},"    i, M, T ",[611,3001,873],{"class":855},[611,3003,1668],{"class":876},[611,3005,3006],{"class":863},", ",[611,3008,883],{"class":876},[611,3010,3011],{"class":863},"(m), ",[611,3013,883],{"class":876},[611,3015,3016],{"class":863},"(t)\n",[611,3018,3019,3021,3023,3025,3028,3030],{"class":851,"line":922},[611,3020,1703],{"class":855},[611,3022,895],{"class":863},[611,3024,1708],{"class":855},[611,3026,3027],{"class":863}," T ",[611,3029,907],{"class":855},[611,3031,3032],{"class":863}," M:\n",[611,3034,3035,3037,3039,3042,3044],{"class":851,"line":942},[611,3036,1722],{"class":863},[611,3038,873],{"class":855},[611,3040,3041],{"class":863}," M ",[611,3043,907],{"class":855},[611,3045,1731],{"class":876},[611,3047,3048,3050,3052,3054,3056,3058,3061,3063,3066,3068],{"class":851,"line":951},[611,3049,1744],{"class":855},[611,3051,1747],{"class":863},[611,3053,1750],{"class":855},[611,3055,1668],{"class":876},[611,3057,1755],{"class":855},[611,3059,3060],{"class":863}," m[j] ",[611,3062,936],{"class":855},[611,3064,3065],{"class":863}," t[i ",[611,3067,913],{"class":855},[611,3069,1768],{"class":863},[611,3071,3072,3074,3076],{"class":851,"line":1626},[611,3073,1774],{"class":863},[611,3075,1777],{"class":855},[611,3077,1731],{"class":876},[611,3079,3080,3082,3084,3086,3088,3090,3092],{"class":851,"line":1633},[611,3081,925],{"class":855},[611,3083,1747],{"class":863},[611,3085,1472],{"class":855},[611,3087,1668],{"class":876},[611,3089,1671],{"class":863},[611,3091,1674],{"class":855},[611,3093,948],{"class":863},[611,3095,3096,3098,3100,3102,3104,3106,3109,3111,3114,3116,3119,3121,3123],{"class":851,"line":1643},[611,3097,1853],{"class":863},[611,3099,1856],{"class":855},[611,3101,1859],{"class":876},[611,3103,638],{"class":863},[611,3105,988],{"class":876},[611,3107,3108],{"class":863},", j ",[611,3110,907],{"class":855},[611,3112,3113],{"class":863}," table.get(t[i ",[611,3115,913],{"class":855},[611,3117,3118],{"class":863}," j], ",[611,3120,907],{"class":855},[611,3122,988],{"class":876},[611,3124,3125],{"class":863},"))\n",[611,3127,3128,3130,3132],{"class":851,"line":1658},[611,3129,954],{"class":855},[611,3131,957],{"class":855},[611,3133,960],{"class":876},[2219,3135,3136],{},"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":846,"searchDepth":867,"depth":867,"links":3138},[3139,3140,3141,3142,3143,3144],{"id":2252,"depth":867,"text":2253},{"id":2264,"depth":867,"text":2265},{"id":2523,"depth":867,"text":2524},{"id":2834,"depth":867,"text":2835},{"id":2940,"depth":867,"text":2941},{"id":2958,"depth":867,"text":2959},"Mémo de révision sur l'algorithme de Boyer-Moore.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle.memo",[],{"title":2246,"description":3145},"2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.memo","S2NW68T40OWRxhpKC9hmurjuvVs_bi-6IewXP8Rt-V4",{"id":3153,"title":3154,"body":3155,"description":3986,"extension":2233,"meta":3987,"navigation":2239,"path":3988,"seo":3989,"stem":3990,"__hash__":3991},"coursSlides\u002F2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.slides.md","Recherche textuelle — diapositives",{"type":590,"value":3156,"toc":3984},[3157,3162,3165,3168,3172,3181,3249,3251,3255,3303,3351,3353,3357,3374,3376,3380,3390,3415,3487,3489,3491,3706,3708,3712,3719,3721,3725,3732,3748,3754,3756,3760,3873,3880,3882,3884,3968,3970,3974,3981],[3158,3159,3161],"h1",{"id":3160},"recherche-textuelle","Recherche textuelle",[598,3163,3164],{},"TE05 — Boyer-Moore.",[3166,3167],"hr",{},[3158,3169,3171],{"id":3170},"le-problème","Le problème",[598,3173,3174,3175,3177,3178,818],{},"Trouver le motif ",[606,3176,644],{}," dans le texte ",[606,3179,3180],{},"t",[1352,3182,3183,3188],{},[1132,3184,3185,3187],{},[606,3186,608],{},", recherche dans un éditeur, anti-spam, ADN…",[1132,3189,3190,3191,3219,3220,3248],{},"Texte ",[611,3192,3194,3207],{"className":3193},[614],[611,3195,3197],{"className":3196},[618],[620,3198,3199],{"xmlns":622},[624,3200,3201,3205],{},[627,3202,3203],{},[630,3204,641],{},[649,3206,641],{"encoding":651},[611,3208,3210],{"className":3209,"ariaHidden":657},[656],[611,3211,3213,3216],{"className":3212},[661],[611,3214],{"className":3215,"style":712},[665],[611,3217,641],{"className":3218},[670,680]," caractères, motif ",[611,3221,3223,3236],{"className":3222},[614],[611,3224,3226],{"className":3225},[618],[620,3227,3228],{"xmlns":622},[624,3229,3230,3234],{},[627,3231,3232],{},[630,3233,644],{},[649,3235,644],{"encoding":651},[611,3237,3239],{"className":3238,"ariaHidden":657},[656],[611,3240,3242,3245],{"className":3241},[661],[611,3243],{"className":3244,"style":712},[665],[611,3246,644],{"className":3247},[670,680]," caractères.",[3166,3250],{},[3158,3252,3254],{"id":3253},"la-force-brute","La force brute",[841,3256,3258],{"className":843,"code":3257,"language":845,"meta":846,"style":846},"for i in range(n - m + 1):\n    if texte[i:i+m] == motif:\n        return i\n",[606,3259,3260,3282,3296],{"__ignoreMap":846},[611,3261,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280],{"class":851,"line":852},[611,3263,2985],{"class":855},[611,3265,895],{"class":863},[611,3267,898],{"class":855},[611,3269,901],{"class":876},[611,3271,904],{"class":863},[611,3273,907],{"class":855},[611,3275,910],{"class":863},[611,3277,913],{"class":855},[611,3279,916],{"class":876},[611,3281,919],{"class":863},[611,3283,3284,3286,3288,3290,3292,3294],{"class":851,"line":867},[611,3285,1661],{"class":855},[611,3287,928],{"class":863},[611,3289,913],{"class":855},[611,3291,933],{"class":863},[611,3293,936],{"class":855},[611,3295,939],{"class":863},[611,3297,3298,3301],{"class":851,"line":889},[611,3299,3300],{"class":855},"        return",[611,3302,948],{"class":863},[598,3304,3305,3306,818],{},"Coût pire cas : ",[611,3307,3309,3330],{"className":3308},[614],[611,3310,3312],{"className":3311},[618],[620,3313,3314],{"xmlns":622},[624,3315,3316,3328],{},[627,3317,3318,3320,3322,3324,3326],{},[630,3319,633],{"mathvariant":632},[635,3321,638],{"stretchy":637},[630,3323,641],{},[630,3325,644],{},[635,3327,647],{"stretchy":637},[649,3329,652],{"encoding":651},[611,3331,3333],{"className":3332,"ariaHidden":657},[656],[611,3334,3336,3339,3342,3345,3348],{"className":3335},[661],[611,3337],{"className":3338,"style":666},[665],[611,3340,633],{"className":3341,"style":672},[670,671],[611,3343,638],{"className":3344},[676],[611,3346,681],{"className":3347},[670,680],[611,3349,647],{"className":3350},[685],[3166,3352],{},[3158,3354,3356],{"id":3355},"lidée-de-boyer-moore","L'idée de Boyer-Moore",[1129,3358,3359,3363,3368],{},[1132,3360,3361,818],{},[601,3362,1145],{},[1132,3364,3365,3366,818],{},"Comparer ",[601,3367,1916],{},[1132,3369,3370,3371,818],{},"En cas d'échec, ",[601,3372,3373],{},"sauter plusieurs cases",[3166,3375],{},[3158,3377,3379],{"id":3378},"table-du-mauvais-caractère","Table du mauvais caractère",[598,3381,3382,3383,3385,3386,3389],{},"Pour chaque lettre ",[606,3384,1286],{}," du motif : sa ",[601,3387,3388],{},"dernière"," position (0-indexée).",[841,3391,3393],{"className":843,"code":3392,"language":845,"meta":846,"style":846},"table = {c: i for i, c in enumerate(motif)}\n",[606,3394,3395],{"__ignoreMap":846},[611,3396,3397,3400,3402,3404,3406,3408,3410,3412],{"class":851,"line":852},[611,3398,3399],{"class":863},"table ",[611,3401,873],{"class":855},[611,3403,2982],{"class":863},[611,3405,2985],{"class":855},[611,3407,1600],{"class":863},[611,3409,898],{"class":855},[611,3411,1605],{"class":876},[611,3413,3414],{"class":863},"(motif)}\n",[598,3416,3417,3418,818],{},"Construction : ",[611,3419,3421,3448],{"className":3420},[614],[611,3422,3424],{"className":3423},[618],[620,3425,3426],{"xmlns":622},[624,3427,3428,3446],{},[627,3429,3430,3432,3434,3436,3438,3440,3442,3444],{},[630,3431,633],{"mathvariant":632},[635,3433,638],{"stretchy":637},[630,3435,644],{},[635,3437,913],{},[630,3439,1190],{"mathvariant":778},[630,3441,1193],{"mathvariant":778},[630,3443,1190],{"mathvariant":778},[635,3445,647],{"stretchy":637},[649,3447,1200],{"encoding":651},[611,3449,3451,3475],{"className":3450,"ariaHidden":657},[656],[611,3452,3454,3457,3460,3463,3466,3469,3472],{"className":3453},[661],[611,3455],{"className":3456,"style":666},[665],[611,3458,633],{"className":3459,"style":672},[670,671],[611,3461,638],{"className":3462},[676],[611,3464,644],{"className":3465},[670,680],[611,3467],{"className":3468,"style":1009},[1008],[611,3470,913],{"className":3471},[1013],[611,3473],{"className":3474,"style":1009},[1008],[611,3476,3478,3481,3484],{"className":3477},[661],[611,3479],{"className":3480,"style":666},[665],[611,3482,1237],{"className":3483},[670],[611,3485,647],{"className":3486},[685],[3166,3488],{},[3158,3490,1276],{"id":1275},[1957,3492,3493,3501],{},[1960,3494,3495],{},[1963,3496,3497,3499],{},[1966,3498,1968],{},[1966,3500,2571],{},[1973,3502,3503,3561,3670],{},[1963,3504,3505,3509],{},[1978,3506,3507,2580],{},[606,3508,1286],{},[1978,3510,3511],{},[611,3512,3514,3531],{"className":3513},[614],[611,3515,3517],{"className":3516},[618],[620,3518,3519],{"xmlns":622},[624,3520,3521,3529],{},[627,3522,3523,3525,3527],{},[630,3524,1333],{},[635,3526,913],{},[986,3528,988],{},[649,3530,1384],{"encoding":651},[611,3532,3534,3552],{"className":3533,"ariaHidden":657},[656],[611,3535,3537,3540,3543,3546,3549],{"className":3536},[661],[611,3538],{"className":3539,"style":1345},[665],[611,3541,1333],{"className":3542,"style":1349},[670,680],[611,3544],{"className":3545,"style":1009},[1008],[611,3547,913],{"className":3548},[1013],[611,3550],{"className":3551,"style":1009},[1008],[611,3553,3555,3558],{"className":3554},[661],[611,3556],{"className":3557,"style":1041},[665],[611,3559,988],{"className":3560},[670],[1963,3562,3563,3618],{},[1978,3564,3565,3567,3568],{},[606,3566,1286],{}," à position ",[611,3569,3571,3588],{"className":3570},[614],[611,3572,3574],{"className":3573},[618],[620,3575,3576],{"xmlns":622},[624,3577,3578,3586],{},[627,3579,3580,3582,3584],{},[630,3581,1438],{},[635,3583,1472],{},[630,3585,1333],{},[649,3587,1477],{"encoding":651},[611,3589,3591,3609],{"className":3590,"ariaHidden":657},[656],[611,3592,3594,3597,3600,3603,3606],{"className":3593},[661],[611,3595],{"className":3596,"style":1487},[665],[611,3598,1438],{"className":3599,"style":1454},[670,680],[611,3601],{"className":3602,"style":1494},[1008],[611,3604,1472],{"className":3605},[1498],[611,3607],{"className":3608,"style":1494},[1008],[611,3610,3612,3615],{"className":3611},[661],[611,3613],{"className":3614,"style":1345},[665],[611,3616,1333],{"className":3617,"style":1349},[670,680],[1978,3619,3620],{},[611,3621,3623,3640],{"className":3622},[614],[611,3624,3626],{"className":3625},[618],[620,3627,3628],{"xmlns":622},[624,3629,3630,3638],{},[627,3631,3632,3634,3636],{},[630,3633,1333],{},[635,3635,980],{},[630,3637,1438],{},[649,3639,1532],{"encoding":651},[611,3641,3643,3661],{"className":3642,"ariaHidden":657},[656],[611,3644,3646,3649,3652,3655,3658],{"className":3645},[661],[611,3647],{"className":3648,"style":1345},[665],[611,3650,1333],{"className":3651,"style":1349},[670,680],[611,3653],{"className":3654,"style":1009},[1008],[611,3656,980],{"className":3657},[1013],[611,3659],{"className":3660,"style":1009},[1008],[611,3662,3664,3667],{"className":3663},[661],[611,3665],{"className":3666,"style":1450},[665],[611,3668,1438],{"className":3669,"style":1454},[670,680],[1963,3671,3672,3675],{},[1978,3673,3674],{},"sinon",[1978,3676,3677,3678],{},"au moins ",[611,3679,3681,3694],{"className":3680},[614],[611,3682,3684],{"className":3683},[618],[620,3685,3686],{"xmlns":622},[624,3687,3688,3692],{},[627,3689,3690],{},[986,3691,988],{},[649,3693,988],{"encoding":651},[611,3695,3697],{"className":3696,"ariaHidden":657},[656],[611,3698,3700,3703],{"className":3699},[661],[611,3701],{"className":3702,"style":1041},[665],[611,3704,988],{"className":3705},[670],[3166,3707],{},[3158,3709,3711],{"id":3710},"déroulé-dun-exemple","Déroulé d'un exemple",[3713,3714],"illustration",{"alt":3715,"kind":3716,"src":3717,"svg":3718},"Exemple de Boyer-Moore","schema","\u002Fillustrations\u002F2.nsi-tale\u002Fte-algorithmique\u002Frecherche-motif.svg","\u003Csvg class=\"illustration-svg\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 480 270\" role=\"img\" aria-label=\"Boyer-Moore : le texte XYZQABCDE avec le motif ABCDE aligné en position 0 ; la comparaison de droite à gauche échoue (E face à Q), le saut calculé déplace le motif en position 4 où il s'aligne exactement avec ABCDE et correspond entièrement\">\n  \u003Ctitle>Boyer-Moore : échec puis saut jusqu'au match\u003C\u002Ftitle>\n  \u003Cstyle>\n    .bm-step  { fill: var(--diagram-line); font-family: Geist, Inter, system-ui, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.5px; }\n    .bm-cell  { fill: var(--diagram-surface-alt); stroke: var(--diagram-border); stroke-width: 1.5; }\n    .bm-pcell { fill: var(--diagram-node-bg); stroke: var(--diagram-node-border); stroke-width: 1.5; }\n    .bm-char  { fill: var(--diagram-text); font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 500; }\n    .bm-fail  { stroke: var(--diagram-line); stroke-width: 2; fill: none; }\n    .bm-failhead { fill: var(--diagram-line); }\n    .bm-failmark { fill: var(--diagram-line); font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 600; }\n    .bm-ok    { stroke: var(--diagram-node-border); stroke-width: 2; fill: none; }\n    .bm-okhead { fill: var(--diagram-node-border); }\n    .bm-okmark { fill: var(--diagram-node-border); font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 600; }\n    .bm-note  { fill: var(--diagram-text); font-family: Geist, Inter, system-ui, sans-serif; font-size: 12px; }\n    .bm-jump  { stroke: var(--diagram-node-border); stroke-width: 2; fill: none; stroke-dasharray: 5 3; }\n    .bm-jumphead { fill: var(--diagram-node-border); }\n  \u003C\u002Fstyle>\n\n  \u003C!-- texte de référence (commun aux deux étapes, dessiné en haut) -->\n  \u003Ctext x=\"20\" y=\"40\" class=\"bm-step\">TEXTE\u003C\u002Ftext>\n  \u003Cg>\n    \u003Crect x=\"60\"  y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"78\"  y=\"50\" text-anchor=\"middle\" class=\"bm-char\">X\u003C\u002Ftext>\n    \u003Crect x=\"100\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"118\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">Y\u003C\u002Ftext>\n    \u003Crect x=\"140\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"158\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">Z\u003C\u002Ftext>\n    \u003Crect x=\"180\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"198\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">Q\u003C\u002Ftext>\n    \u003Crect x=\"220\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"238\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">A\u003C\u002Ftext>\n    \u003Crect x=\"260\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"278\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">B\u003C\u002Ftext>\n    \u003Crect x=\"300\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"318\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">C\u003C\u002Ftext>\n    \u003Crect x=\"340\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"358\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">D\u003C\u002Ftext>\n    \u003Crect x=\"380\" y=\"26\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-cell\"\u002F>\u003Ctext x=\"398\" y=\"50\" text-anchor=\"middle\" class=\"bm-char\">E\u003C\u002Ftext>\n  \u003C\u002Fg>\n\n  \u003C!-- ÉTAPE 1 : motif en position 0, échec -->\n  \u003Ctext x=\"20\" y=\"112\" class=\"bm-step\">POS. 0\u003C\u002Ftext>\n  \u003Cg>\n    \u003Crect x=\"60\"  y=\"98\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"78\"  y=\"122\" text-anchor=\"middle\" class=\"bm-char\">A\u003C\u002Ftext>\n    \u003Crect x=\"100\" y=\"98\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"118\" y=\"122\" text-anchor=\"middle\" class=\"bm-char\">B\u003C\u002Ftext>\n    \u003Crect x=\"140\" y=\"98\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"158\" y=\"122\" text-anchor=\"middle\" class=\"bm-char\">C\u003C\u002Ftext>\n    \u003Crect x=\"180\" y=\"98\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"198\" y=\"122\" text-anchor=\"middle\" class=\"bm-char\">D\u003C\u002Ftext>\n    \u003Crect x=\"220\" y=\"98\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"238\" y=\"122\" text-anchor=\"middle\" class=\"bm-char\">E\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003C!-- comparaison de droite à gauche : échec sur la dernière case (E du motif vs Q du texte) -->\n  \u003Cpath class=\"bm-fail\" d=\"M 238 70 L 238 92\"\u002F>\n  \u003Cpolygon class=\"bm-failhead\" points=\"238,96 233,86 243,86\"\u002F>\n  \u003Ctext x=\"268\" y=\"120\" class=\"bm-failmark\">E ≠ Q\u003C\u002Ftext>\n\n  \u003C!-- saut calculé -->\n  \u003Cpath class=\"bm-jump\" d=\"M 238 150 C 300 172, 380 172, 398 158\"\u002F>\n  \u003Cpolygon class=\"bm-jumphead\" points=\"400,150 391,156 396,146\"\u002F>\n  \u003Ctext x=\"318\" y=\"186\" text-anchor=\"middle\" class=\"bm-note\">saut de 4 cases (table['A'] = 0, j = 4)\u003C\u002Ftext>\n\n  \u003C!-- ÉTAPE 2 : motif en position 4, match -->\n  \u003Ctext x=\"20\" y=\"222\" class=\"bm-step\">POS. 4\u003C\u002Ftext>\n  \u003Cg>\n    \u003Crect x=\"220\" y=\"208\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"238\" y=\"232\" text-anchor=\"middle\" class=\"bm-char\">A\u003C\u002Ftext>\n    \u003Crect x=\"260\" y=\"208\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"278\" y=\"232\" text-anchor=\"middle\" class=\"bm-char\">B\u003C\u002Ftext>\n    \u003Crect x=\"300\" y=\"208\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"318\" y=\"232\" text-anchor=\"middle\" class=\"bm-char\">C\u003C\u002Ftext>\n    \u003Crect x=\"340\" y=\"208\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"358\" y=\"232\" text-anchor=\"middle\" class=\"bm-char\">D\u003C\u002Ftext>\n    \u003Crect x=\"380\" y=\"208\" width=\"36\" height=\"36\" rx=\"3\" class=\"bm-pcell\"\u002F>\u003Ctext x=\"398\" y=\"232\" text-anchor=\"middle\" class=\"bm-char\">E\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003Ctext x=\"60\" y=\"262\" class=\"bm-okmark\">✓ match complet\u003C\u002Ftext>\n\u003C\u002Fsvg>\n",[3166,3720],{},[3158,3722,3724],{"id":3723},"le-saut-décisif","Le saut décisif",[598,3726,3190,3727,3729,3730,2559],{},[606,3728,1933],{},", motif ",[606,3731,1929],{},[1352,3733,3734,3745],{},[1132,3735,3736,3737,3740,3741,3744],{},"Position 0 : ",[606,3738,3739],{},"E ≠ A"," → table",[611,3742,3743],{},"'A'","=0, j=4 → saut = 4 → i=4.",[1132,3746,3747],{},"Position 4 : match complet.",[598,3749,3750,3753],{},[601,3751,3752],{},"Une seule comparaison ratée",", et on a sauté 4 cases.",[3166,3755],{},[3158,3757,3759],{"id":3758},"coûts-sans-preuve","Coûts (sans preuve)",[1352,3761,3762,3819,3868],{},[1132,3763,3764,2273,3766,818],{},[601,3765,1982],{},[611,3767,3769,3792],{"className":3768},[614],[611,3770,3772],{"className":3771},[618],[620,3773,3774],{"xmlns":622},[624,3775,3776,3790],{},[627,3777,3778,3780,3782,3784,3786,3788],{},[630,3779,633],{"mathvariant":632},[635,3781,638],{"stretchy":637},[630,3783,641],{},[630,3785,779],{"mathvariant":778},[630,3787,644],{},[635,3789,647],{"stretchy":637},[649,3791,786],{"encoding":651},[611,3793,3795],{"className":3794,"ariaHidden":657},[656],[611,3796,3798,3801,3804,3807,3810,3813,3816],{"className":3797},[661],[611,3799],{"className":3800,"style":666},[665],[611,3802,633],{"className":3803,"style":672},[670,671],[611,3805,638],{"className":3806},[676],[611,3808,641],{"className":3809},[670,680],[611,3811,779],{"className":3812},[670],[611,3814,644],{"className":3815},[670,680],[611,3817,647],{"className":3818},[685],[1132,3820,3821,2273,3823,818],{},[601,3822,2045],{},[611,3824,3826,3847],{"className":3825},[614],[611,3827,3829],{"className":3828},[618],[620,3830,3831],{"xmlns":622},[624,3832,3833,3845],{},[627,3834,3835,3837,3839,3841,3843],{},[630,3836,633],{"mathvariant":632},[635,3838,638],{"stretchy":637},[630,3840,641],{},[630,3842,644],{},[635,3844,647],{"stretchy":637},[649,3846,652],{"encoding":651},[611,3848,3850],{"className":3849,"ariaHidden":657},[656],[611,3851,3853,3856,3859,3862,3865],{"className":3852},[661],[611,3854],{"className":3855,"style":666},[665],[611,3857,633],{"className":3858,"style":672},[670,671],[611,3860,638],{"className":3861},[676],[611,3863,681],{"className":3864},[670,680],[611,3866,647],{"className":3867},[685],[1132,3869,3870,3872],{},[601,3871,2100],{}," : excellent sur de longs textes naturels.",[598,3874,3875,3876,3879],{},"Le BO ne demande ",[601,3877,3878],{},"pas"," la preuve.",[3166,3881],{},[3158,3883,2131],{"id":2130},[1352,3885,3886,3956,3961],{},[1132,3887,3888,2273,3890,3955],{},[601,3889,2137],{},[611,3891,3893,3916],{"className":3892},[614],[611,3894,3896],{"className":3895},[618],[620,3897,3898],{"xmlns":622},[624,3899,3900,3914],{},[627,3901,3902,3904,3906,3908,3910,3912],{},[630,3903,633],{"mathvariant":632},[635,3905,638],{"stretchy":637},[630,3907,641],{},[635,3909,913],{},[630,3911,644],{},[635,3913,647],{"stretchy":637},[649,3915,2887],{"encoding":651},[611,3917,3919,3943],{"className":3918,"ariaHidden":657},[656],[611,3920,3922,3925,3928,3931,3934,3937,3940],{"className":3921},[661],[611,3923],{"className":3924,"style":666},[665],[611,3926,633],{"className":3927,"style":672},[670,671],[611,3929,638],{"className":3930},[676],[611,3932,641],{"className":3933},[670,680],[611,3935],{"className":3936,"style":1009},[1008],[611,3938,913],{"className":3939},[1013],[611,3941],{"className":3942,"style":1009},[1008],[611,3944,3946,3949,3952],{"className":3945},[661],[611,3947],{"className":3948,"style":666},[665],[611,3950,644],{"className":3951},[670,680],[611,3953,647],{"className":3954},[685]," pire cas garanti.",[1132,3957,3958,3960],{},[601,3959,2208],{}," : hachage.",[1132,3962,3963,3964,3967],{},"Sur ADN : on prétraite le ",[601,3965,3966],{},"texte"," (suffix array, FM-index).",[3166,3969],{},[3158,3971,3973],{"id":3972},"à-retenir","À retenir",[598,3975,3976,3977,3980],{},"L'",[601,3978,3979],{},"investissement"," du prétraitement est payé en retour par les sauts.\nPréparer en amont = aller plus vite ensuite.",[2219,3982,3983],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}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":846,"searchDepth":867,"depth":867,"links":3985},[],"Deck projetable pour la séance sur Boyer-Moore.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle.slides",{"title":3154,"description":3986},"2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.slides","4NXtu7oOlM-hyoFwbpIFGwOD0QvZR2JtYQvcw5vwzBA",{"id":2245,"title":2246,"bo":3993,"body":3994,"description":3145,"eval":2232,"extension":2233,"labo":2232,"meta":4821,"navigation":2239,"path":3147,"quizzes":4822,"readingTime":852,"seo":4823,"stem":3150,"tp":2232,"__hash__":3151},[588],{"type":590,"value":3995,"toc":4813},[3996,3998,4004,4006,4246,4248,4280,4544,4546,4641,4643,4653,4655,4811],[593,3997,2253],{"id":2252},[598,3999,4000,2258,4002,2261],{},[601,4001,748],{},[601,4003,1916],{},[593,4005,2265],{"id":2264},[1352,4007,4008,4057,4140,4242],{},[1132,4009,4010,2273,4012,2319],{},[601,4011,2272],{},[611,4013,4015,4036],{"className":4014},[614],[611,4016,4018],{"className":4017},[618],[620,4019,4020],{"xmlns":622},[624,4021,4022,4034],{},[627,4023,4024,4026,4028,4030,4032],{},[630,4025,633],{"mathvariant":632},[635,4027,638],{"stretchy":637},[630,4029,641],{},[630,4031,644],{},[635,4033,647],{"stretchy":637},[649,4035,652],{"encoding":651},[611,4037,4039],{"className":4038,"ariaHidden":657},[656],[611,4040,4042,4045,4048,4051,4054],{"className":4041},[661],[611,4043],{"className":4044,"style":666},[665],[611,4046,633],{"className":4047,"style":672},[670,671],[611,4049,638],{"className":4050},[676],[611,4052,681],{"className":4053},[670,680],[611,4055,647],{"className":4056},[685],[1132,4058,4059,2324,4061],{},[601,4060,748],{},[1352,4062,4063,4134,4138],{},[1132,4064,2329,4065,2399],{},[611,4066,4068,4095],{"className":4067},[614],[611,4069,4071],{"className":4070},[618],[620,4072,4073],{"xmlns":622},[624,4074,4075,4093],{},[627,4076,4077,4079,4081,4083,4085,4087,4089,4091],{},[630,4078,633],{"mathvariant":632},[635,4080,638],{"stretchy":637},[630,4082,644],{},[635,4084,913],{},[630,4086,1190],{"mathvariant":778},[630,4088,1193],{"mathvariant":778},[630,4090,1190],{"mathvariant":778},[635,4092,647],{"stretchy":637},[649,4094,1200],{"encoding":651},[611,4096,4098,4122],{"className":4097,"ariaHidden":657},[656],[611,4099,4101,4104,4107,4110,4113,4116,4119],{"className":4100},[661],[611,4102],{"className":4103,"style":666},[665],[611,4105,633],{"className":4106,"style":672},[670,671],[611,4108,638],{"className":4109},[676],[611,4111,644],{"className":4112},[670,680],[611,4114],{"className":4115,"style":1009},[1008],[611,4117,913],{"className":4118},[1013],[611,4120],{"className":4121,"style":1009},[1008],[611,4123,4125,4128,4131],{"className":4124},[661],[611,4126],{"className":4127,"style":666},[665],[611,4129,1237],{"className":4130},[670],[611,4132,647],{"className":4133},[685],[1132,4135,2402,4136,2406],{},[601,4137,2405],{},[1132,4139,2409],{},[1132,4141,4142,2415,4144,2469,4197,818],{},[601,4143,2414],{},[611,4145,4147,4170],{"className":4146},[614],[611,4148,4150],{"className":4149},[618],[620,4151,4152],{"xmlns":622},[624,4153,4154,4168],{},[627,4155,4156,4158,4160,4162,4164,4166],{},[630,4157,633],{"mathvariant":632},[635,4159,638],{"stretchy":637},[630,4161,641],{},[630,4163,779],{"mathvariant":778},[630,4165,644],{},[635,4167,647],{"stretchy":637},[649,4169,786],{"encoding":651},[611,4171,4173],{"className":4172,"ariaHidden":657},[656],[611,4174,4176,4179,4182,4185,4188,4191,4194],{"className":4175},[661],[611,4177],{"className":4178,"style":666},[665],[611,4180,633],{"className":4181,"style":672},[670,671],[611,4183,638],{"className":4184},[676],[611,4186,641],{"className":4187},[670,680],[611,4189,779],{"className":4190},[670],[611,4192,644],{"className":4193},[670,680],[611,4195,647],{"className":4196},[685],[611,4198,4200,4221],{"className":4199},[614],[611,4201,4203],{"className":4202},[618],[620,4204,4205],{"xmlns":622},[624,4206,4207,4219],{},[627,4208,4209,4211,4213,4215,4217],{},[630,4210,633],{"mathvariant":632},[635,4212,638],{"stretchy":637},[630,4214,641],{},[630,4216,644],{},[635,4218,647],{"stretchy":637},[649,4220,652],{"encoding":651},[611,4222,4224],{"className":4223,"ariaHidden":657},[656],[611,4225,4227,4230,4233,4236,4239],{"className":4226},[661],[611,4228],{"className":4229,"style":666},[665],[611,4231,633],{"className":4232,"style":672},[670,671],[611,4234,638],{"className":4235},[676],[611,4237,681],{"className":4238},[670,680],[611,4240,647],{"className":4241},[685],[1132,4243,4244,2520],{},[601,4245,2519],{},[593,4247,2524],{"id":2523},[598,4249,2527,4250,2530,4252,2559],{},[606,4251,1286],{},[611,4253,4255,4268],{"className":4254},[614],[611,4256,4258],{"className":4257},[618],[620,4259,4260],{"xmlns":622},[624,4261,4262,4266],{},[627,4263,4264],{},[630,4265,1333],{},[649,4267,1333],{"encoding":651},[611,4269,4271],{"className":4270,"ariaHidden":657},[656],[611,4272,4274,4277],{"className":4273},[661],[611,4275],{"className":4276,"style":1345},[665],[611,4278,1333],{"className":4279,"style":1349},[670,680],[1957,4281,4282,4290],{},[1960,4283,4284],{},[1963,4285,4286,4288],{},[1966,4287,2568],{},[1966,4289,2571],{},[1973,4291,4292,4350,4458],{},[1963,4293,4294,4298],{},[1978,4295,4296,2580],{},[606,4297,1286],{},[1978,4299,4300],{},[611,4301,4303,4320],{"className":4302},[614],[611,4304,4306],{"className":4305},[618],[620,4307,4308],{"xmlns":622},[624,4309,4310,4318],{},[627,4311,4312,4314,4316],{},[630,4313,1333],{},[635,4315,913],{},[986,4317,988],{},[649,4319,1384],{"encoding":651},[611,4321,4323,4341],{"className":4322,"ariaHidden":657},[656],[611,4324,4326,4329,4332,4335,4338],{"className":4325},[661],[611,4327],{"className":4328,"style":1345},[665],[611,4330,1333],{"className":4331,"style":1349},[670,680],[611,4333],{"className":4334,"style":1009},[1008],[611,4336,913],{"className":4337},[1013],[611,4339],{"className":4340,"style":1009},[1008],[611,4342,4344,4347],{"className":4343},[661],[611,4345],{"className":4346,"style":1041},[665],[611,4348,988],{"className":4349},[670],[1963,4351,4352,4406],{},[1978,4353,4354,2639,4356],{},[606,4355,1286],{},[611,4357,4359,4376],{"className":4358},[614],[611,4360,4362],{"className":4361},[618],[620,4363,4364],{"xmlns":622},[624,4365,4366,4374],{},[627,4367,4368,4370,4372],{},[630,4369,1438],{},[635,4371,1472],{},[630,4373,1333],{},[649,4375,1477],{"encoding":651},[611,4377,4379,4397],{"className":4378,"ariaHidden":657},[656],[611,4380,4382,4385,4388,4391,4394],{"className":4381},[661],[611,4383],{"className":4384,"style":1487},[665],[611,4386,1438],{"className":4387,"style":1454},[670,680],[611,4389],{"className":4390,"style":1494},[1008],[611,4392,1472],{"className":4393},[1498],[611,4395],{"className":4396,"style":1494},[1008],[611,4398,4400,4403],{"className":4399},[661],[611,4401],{"className":4402,"style":1345},[665],[611,4404,1333],{"className":4405,"style":1349},[670,680],[1978,4407,4408],{},[611,4409,4411,4428],{"className":4410},[614],[611,4412,4414],{"className":4413},[618],[620,4415,4416],{"xmlns":622},[624,4417,4418,4426],{},[627,4419,4420,4422,4424],{},[630,4421,1333],{},[635,4423,980],{},[630,4425,1438],{},[649,4427,1532],{"encoding":651},[611,4429,4431,4449],{"className":4430,"ariaHidden":657},[656],[611,4432,4434,4437,4440,4443,4446],{"className":4433},[661],[611,4435],{"className":4436,"style":1345},[665],[611,4438,1333],{"className":4439,"style":1349},[670,680],[611,4441],{"className":4442,"style":1009},[1008],[611,4444,980],{"className":4445},[1013],[611,4447],{"className":4448,"style":1009},[1008],[611,4450,4452,4455],{"className":4451},[661],[611,4453],{"className":4454,"style":1450},[665],[611,4456,1438],{"className":4457,"style":1454},[670,680],[1963,4459,4460,4514],{},[1978,4461,4462,2748,4464],{},[606,4463,1286],{},[611,4465,4467,4484],{"className":4466},[614],[611,4468,4470],{"className":4469},[618],[620,4471,4472],{"xmlns":622},[624,4473,4474,4482],{},[627,4475,4476,4478,4480],{},[630,4477,1438],{},[635,4479,2765],{},[630,4481,1333],{},[649,4483,2770],{"encoding":651},[611,4485,4487,4505],{"className":4486,"ariaHidden":657},[656],[611,4488,4490,4493,4496,4499,4502],{"className":4489},[661],[611,4491],{"className":4492,"style":1487},[665],[611,4494,1438],{"className":4495,"style":1454},[670,680],[611,4497],{"className":4498,"style":1494},[1008],[611,4500,2765],{"className":4501},[1498],[611,4503],{"className":4504,"style":1494},[1008],[611,4506,4508,4511],{"className":4507},[661],[611,4509],{"className":4510,"style":1345},[665],[611,4512,1333],{"className":4513,"style":1349},[670,680],[1978,4515,4516,2831],{},[611,4517,4519,4532],{"className":4518},[614],[611,4520,4522],{"className":4521},[618],[620,4523,4524],{"xmlns":622},[624,4525,4526,4530],{},[627,4527,4528],{},[986,4529,988],{},[649,4531,988],{"encoding":651},[611,4533,4535],{"className":4534,"ariaHidden":657},[656],[611,4536,4538,4541],{"className":4537},[661],[611,4539],{"className":4540,"style":1041},[665],[611,4542,988],{"className":4543},[670],[593,4545,2835],{"id":2834},[1957,4547,4548,4556],{},[1960,4549,4550],{},[1963,4551,4552,4554],{},[1966,4553,2568],{},[1966,4555,2846],{},[1973,4557,4558,4564,4635],{},[1963,4559,4560,4562],{},[1978,4561,2853],{},[1978,4563,748],{},[1963,4565,4566,4633],{},[1978,4567,2860,4568,2927],{},[611,4569,4571,4594],{"className":4570},[614],[611,4572,4574],{"className":4573},[618],[620,4575,4576],{"xmlns":622},[624,4577,4578,4592],{},[627,4579,4580,4582,4584,4586,4588,4590],{},[630,4581,633],{"mathvariant":632},[635,4583,638],{"stretchy":637},[630,4585,641],{},[635,4587,913],{},[630,4589,644],{},[635,4591,647],{"stretchy":637},[649,4593,2887],{"encoding":651},[611,4595,4597,4621],{"className":4596,"ariaHidden":657},[656],[611,4598,4600,4603,4606,4609,4612,4615,4618],{"className":4599},[661],[611,4601],{"className":4602,"style":666},[665],[611,4604,633],{"className":4605,"style":672},[670,671],[611,4607,638],{"className":4608},[676],[611,4610,641],{"className":4611},[670,680],[611,4613],{"className":4614,"style":1009},[1008],[611,4616,913],{"className":4617},[1013],[611,4619],{"className":4620,"style":1009},[1008],[611,4622,4624,4627,4630],{"className":4623},[661],[611,4625],{"className":4626,"style":666},[665],[611,4628,644],{"className":4629},[670,680],[611,4631,647],{"className":4632},[685],[1978,4634,2137],{},[1963,4636,4637,4639],{},[1978,4638,2934],{},[1978,4640,2937],{},[593,4642,2941],{"id":2940},[1352,4644,4645,4649,4651],{},[1132,4646,2946,4647,2949],{},[606,4648,1887],{},[1132,4650,2952],{},[1132,4652,2955],{},[593,4654,2959],{"id":2958},[841,4656,4657],{"className":843,"code":2962,"language":845,"meta":846,"style":846},[606,4658,4659,4667,4685,4703,4717,4729,4751,4759,4775,4803],{"__ignoreMap":846},[611,4660,4661,4663,4665],{"class":851,"line":852},[611,4662,856],{"class":855},[611,4664,1638],{"class":859},[611,4666,2973],{"class":863},[611,4668,4669,4671,4673,4675,4677,4679,4681,4683],{"class":851,"line":867},[611,4670,1588],{"class":863},[611,4672,873],{"class":855},[611,4674,2982],{"class":863},[611,4676,2985],{"class":855},[611,4678,1600],{"class":863},[611,4680,898],{"class":855},[611,4682,1605],{"class":876},[611,4684,2994],{"class":863},[611,4686,4687,4689,4691,4693,4695,4697,4699,4701],{"class":851,"line":889},[611,4688,2999],{"class":863},[611,4690,873],{"class":855},[611,4692,1668],{"class":876},[611,4694,3006],{"class":863},[611,4696,883],{"class":876},[611,4698,3011],{"class":863},[611,4700,883],{"class":876},[611,4702,3016],{"class":863},[611,4704,4705,4707,4709,4711,4713,4715],{"class":851,"line":922},[611,4706,1703],{"class":855},[611,4708,895],{"class":863},[611,4710,1708],{"class":855},[611,4712,3027],{"class":863},[611,4714,907],{"class":855},[611,4716,3032],{"class":863},[611,4718,4719,4721,4723,4725,4727],{"class":851,"line":942},[611,4720,1722],{"class":863},[611,4722,873],{"class":855},[611,4724,3041],{"class":863},[611,4726,907],{"class":855},[611,4728,1731],{"class":876},[611,4730,4731,4733,4735,4737,4739,4741,4743,4745,4747,4749],{"class":851,"line":951},[611,4732,1744],{"class":855},[611,4734,1747],{"class":863},[611,4736,1750],{"class":855},[611,4738,1668],{"class":876},[611,4740,1755],{"class":855},[611,4742,3060],{"class":863},[611,4744,936],{"class":855},[611,4746,3065],{"class":863},[611,4748,913],{"class":855},[611,4750,1768],{"class":863},[611,4752,4753,4755,4757],{"class":851,"line":1626},[611,4754,1774],{"class":863},[611,4756,1777],{"class":855},[611,4758,1731],{"class":876},[611,4760,4761,4763,4765,4767,4769,4771,4773],{"class":851,"line":1633},[611,4762,925],{"class":855},[611,4764,1747],{"class":863},[611,4766,1472],{"class":855},[611,4768,1668],{"class":876},[611,4770,1671],{"class":863},[611,4772,1674],{"class":855},[611,4774,948],{"class":863},[611,4776,4777,4779,4781,4783,4785,4787,4789,4791,4793,4795,4797,4799,4801],{"class":851,"line":1643},[611,4778,1853],{"class":863},[611,4780,1856],{"class":855},[611,4782,1859],{"class":876},[611,4784,638],{"class":863},[611,4786,988],{"class":876},[611,4788,3108],{"class":863},[611,4790,907],{"class":855},[611,4792,3113],{"class":863},[611,4794,913],{"class":855},[611,4796,3118],{"class":863},[611,4798,907],{"class":855},[611,4800,988],{"class":876},[611,4802,3125],{"class":863},[611,4804,4805,4807,4809],{"class":851,"line":1658},[611,4806,954],{"class":855},[611,4808,957],{"class":855},[611,4810,960],{"class":876},[2219,4812,3136],{},{"title":846,"searchDepth":867,"depth":867,"links":4814},[4815,4816,4817,4818,4819,4820],{"id":2252,"depth":867,"text":2253},{"id":2264,"depth":867,"text":2265},{"id":2523,"depth":867,"text":2524},{"id":2834,"depth":867,"text":2835},{"id":2940,"depth":867,"text":2941},{"id":2958,"depth":867,"text":2959},{},[],{"title":2246,"description":3145},{"id":3153,"title":3154,"body":4825,"description":3986,"extension":2233,"meta":5584,"navigation":2239,"path":3988,"seo":5585,"stem":3990,"__hash__":3991},{"type":590,"value":4826,"toc":5582},[4827,4829,4831,4833,4835,4841,4905,4907,4909,4955,5002,5004,5006,5020,5022,5024,5030,5052,5123,5125,5127,5339,5341,5343,5345,5347,5349,5355,5365,5369,5371,5373,5485,5489,5491,5493,5572,5574,5576,5580],[3158,4828,3161],{"id":3160},[598,4830,3164],{},[3166,4832],{},[3158,4834,3171],{"id":3170},[598,4836,3174,4837,3177,4839,818],{},[606,4838,644],{},[606,4840,3180],{},[1352,4842,4843,4847],{},[1132,4844,4845,3187],{},[606,4846,608],{},[1132,4848,3190,4849,3219,4877,3248],{},[611,4850,4852,4865],{"className":4851},[614],[611,4853,4855],{"className":4854},[618],[620,4856,4857],{"xmlns":622},[624,4858,4859,4863],{},[627,4860,4861],{},[630,4862,641],{},[649,4864,641],{"encoding":651},[611,4866,4868],{"className":4867,"ariaHidden":657},[656],[611,4869,4871,4874],{"className":4870},[661],[611,4872],{"className":4873,"style":712},[665],[611,4875,641],{"className":4876},[670,680],[611,4878,4880,4893],{"className":4879},[614],[611,4881,4883],{"className":4882},[618],[620,4884,4885],{"xmlns":622},[624,4886,4887,4891],{},[627,4888,4889],{},[630,4890,644],{},[649,4892,644],{"encoding":651},[611,4894,4896],{"className":4895,"ariaHidden":657},[656],[611,4897,4899,4902],{"className":4898},[661],[611,4900],{"className":4901,"style":712},[665],[611,4903,644],{"className":4904},[670,680],[3166,4906],{},[3158,4908,3254],{"id":3253},[841,4910,4911],{"className":843,"code":3257,"language":845,"meta":846,"style":846},[606,4912,4913,4935,4949],{"__ignoreMap":846},[611,4914,4915,4917,4919,4921,4923,4925,4927,4929,4931,4933],{"class":851,"line":852},[611,4916,2985],{"class":855},[611,4918,895],{"class":863},[611,4920,898],{"class":855},[611,4922,901],{"class":876},[611,4924,904],{"class":863},[611,4926,907],{"class":855},[611,4928,910],{"class":863},[611,4930,913],{"class":855},[611,4932,916],{"class":876},[611,4934,919],{"class":863},[611,4936,4937,4939,4941,4943,4945,4947],{"class":851,"line":867},[611,4938,1661],{"class":855},[611,4940,928],{"class":863},[611,4942,913],{"class":855},[611,4944,933],{"class":863},[611,4946,936],{"class":855},[611,4948,939],{"class":863},[611,4950,4951,4953],{"class":851,"line":889},[611,4952,3300],{"class":855},[611,4954,948],{"class":863},[598,4956,3305,4957,818],{},[611,4958,4960,4981],{"className":4959},[614],[611,4961,4963],{"className":4962},[618],[620,4964,4965],{"xmlns":622},[624,4966,4967,4979],{},[627,4968,4969,4971,4973,4975,4977],{},[630,4970,633],{"mathvariant":632},[635,4972,638],{"stretchy":637},[630,4974,641],{},[630,4976,644],{},[635,4978,647],{"stretchy":637},[649,4980,652],{"encoding":651},[611,4982,4984],{"className":4983,"ariaHidden":657},[656],[611,4985,4987,4990,4993,4996,4999],{"className":4986},[661],[611,4988],{"className":4989,"style":666},[665],[611,4991,633],{"className":4992,"style":672},[670,671],[611,4994,638],{"className":4995},[676],[611,4997,681],{"className":4998},[670,680],[611,5000,647],{"className":5001},[685],[3166,5003],{},[3158,5005,3356],{"id":3355},[1129,5007,5008,5012,5016],{},[1132,5009,5010,818],{},[601,5011,1145],{},[1132,5013,3365,5014,818],{},[601,5015,1916],{},[1132,5017,3370,5018,818],{},[601,5019,3373],{},[3166,5021],{},[3158,5023,3379],{"id":3378},[598,5025,3382,5026,3385,5028,3389],{},[606,5027,1286],{},[601,5029,3388],{},[841,5031,5032],{"className":843,"code":3392,"language":845,"meta":846,"style":846},[606,5033,5034],{"__ignoreMap":846},[611,5035,5036,5038,5040,5042,5044,5046,5048,5050],{"class":851,"line":852},[611,5037,3399],{"class":863},[611,5039,873],{"class":855},[611,5041,2982],{"class":863},[611,5043,2985],{"class":855},[611,5045,1600],{"class":863},[611,5047,898],{"class":855},[611,5049,1605],{"class":876},[611,5051,3414],{"class":863},[598,5053,3417,5054,818],{},[611,5055,5057,5084],{"className":5056},[614],[611,5058,5060],{"className":5059},[618],[620,5061,5062],{"xmlns":622},[624,5063,5064,5082],{},[627,5065,5066,5068,5070,5072,5074,5076,5078,5080],{},[630,5067,633],{"mathvariant":632},[635,5069,638],{"stretchy":637},[630,5071,644],{},[635,5073,913],{},[630,5075,1190],{"mathvariant":778},[630,5077,1193],{"mathvariant":778},[630,5079,1190],{"mathvariant":778},[635,5081,647],{"stretchy":637},[649,5083,1200],{"encoding":651},[611,5085,5087,5111],{"className":5086,"ariaHidden":657},[656],[611,5088,5090,5093,5096,5099,5102,5105,5108],{"className":5089},[661],[611,5091],{"className":5092,"style":666},[665],[611,5094,633],{"className":5095,"style":672},[670,671],[611,5097,638],{"className":5098},[676],[611,5100,644],{"className":5101},[670,680],[611,5103],{"className":5104,"style":1009},[1008],[611,5106,913],{"className":5107},[1013],[611,5109],{"className":5110,"style":1009},[1008],[611,5112,5114,5117,5120],{"className":5113},[661],[611,5115],{"className":5116,"style":666},[665],[611,5118,1237],{"className":5119},[670],[611,5121,647],{"className":5122},[685],[3166,5124],{},[3158,5126,1276],{"id":1275},[1957,5128,5129,5137],{},[1960,5130,5131],{},[1963,5132,5133,5135],{},[1966,5134,1968],{},[1966,5136,2571],{},[1973,5138,5139,5197,5305],{},[1963,5140,5141,5145],{},[1978,5142,5143,2580],{},[606,5144,1286],{},[1978,5146,5147],{},[611,5148,5150,5167],{"className":5149},[614],[611,5151,5153],{"className":5152},[618],[620,5154,5155],{"xmlns":622},[624,5156,5157,5165],{},[627,5158,5159,5161,5163],{},[630,5160,1333],{},[635,5162,913],{},[986,5164,988],{},[649,5166,1384],{"encoding":651},[611,5168,5170,5188],{"className":5169,"ariaHidden":657},[656],[611,5171,5173,5176,5179,5182,5185],{"className":5172},[661],[611,5174],{"className":5175,"style":1345},[665],[611,5177,1333],{"className":5178,"style":1349},[670,680],[611,5180],{"className":5181,"style":1009},[1008],[611,5183,913],{"className":5184},[1013],[611,5186],{"className":5187,"style":1009},[1008],[611,5189,5191,5194],{"className":5190},[661],[611,5192],{"className":5193,"style":1041},[665],[611,5195,988],{"className":5196},[670],[1963,5198,5199,5253],{},[1978,5200,5201,3567,5203],{},[606,5202,1286],{},[611,5204,5206,5223],{"className":5205},[614],[611,5207,5209],{"className":5208},[618],[620,5210,5211],{"xmlns":622},[624,5212,5213,5221],{},[627,5214,5215,5217,5219],{},[630,5216,1438],{},[635,5218,1472],{},[630,5220,1333],{},[649,5222,1477],{"encoding":651},[611,5224,5226,5244],{"className":5225,"ariaHidden":657},[656],[611,5227,5229,5232,5235,5238,5241],{"className":5228},[661],[611,5230],{"className":5231,"style":1487},[665],[611,5233,1438],{"className":5234,"style":1454},[670,680],[611,5236],{"className":5237,"style":1494},[1008],[611,5239,1472],{"className":5240},[1498],[611,5242],{"className":5243,"style":1494},[1008],[611,5245,5247,5250],{"className":5246},[661],[611,5248],{"className":5249,"style":1345},[665],[611,5251,1333],{"className":5252,"style":1349},[670,680],[1978,5254,5255],{},[611,5256,5258,5275],{"className":5257},[614],[611,5259,5261],{"className":5260},[618],[620,5262,5263],{"xmlns":622},[624,5264,5265,5273],{},[627,5266,5267,5269,5271],{},[630,5268,1333],{},[635,5270,980],{},[630,5272,1438],{},[649,5274,1532],{"encoding":651},[611,5276,5278,5296],{"className":5277,"ariaHidden":657},[656],[611,5279,5281,5284,5287,5290,5293],{"className":5280},[661],[611,5282],{"className":5283,"style":1345},[665],[611,5285,1333],{"className":5286,"style":1349},[670,680],[611,5288],{"className":5289,"style":1009},[1008],[611,5291,980],{"className":5292},[1013],[611,5294],{"className":5295,"style":1009},[1008],[611,5297,5299,5302],{"className":5298},[661],[611,5300],{"className":5301,"style":1450},[665],[611,5303,1438],{"className":5304,"style":1454},[670,680],[1963,5306,5307,5309],{},[1978,5308,3674],{},[1978,5310,3677,5311],{},[611,5312,5314,5327],{"className":5313},[614],[611,5315,5317],{"className":5316},[618],[620,5318,5319],{"xmlns":622},[624,5320,5321,5325],{},[627,5322,5323],{},[986,5324,988],{},[649,5326,988],{"encoding":651},[611,5328,5330],{"className":5329,"ariaHidden":657},[656],[611,5331,5333,5336],{"className":5332},[661],[611,5334],{"className":5335,"style":1041},[665],[611,5337,988],{"className":5338},[670],[3166,5340],{},[3158,5342,3711],{"id":3710},[3713,5344],{"alt":3715,"kind":3716,"src":3717,"svg":3718},[3166,5346],{},[3158,5348,3724],{"id":3723},[598,5350,3190,5351,3729,5353,2559],{},[606,5352,1933],{},[606,5354,1929],{},[1352,5356,5357,5363],{},[1132,5358,3736,5359,3740,5361,3744],{},[606,5360,3739],{},[611,5362,3743],{},[1132,5364,3747],{},[598,5366,5367,3753],{},[601,5368,3752],{},[3166,5370],{},[3158,5372,3759],{"id":3758},[1352,5374,5375,5432,5481],{},[1132,5376,5377,2273,5379,818],{},[601,5378,1982],{},[611,5380,5382,5405],{"className":5381},[614],[611,5383,5385],{"className":5384},[618],[620,5386,5387],{"xmlns":622},[624,5388,5389,5403],{},[627,5390,5391,5393,5395,5397,5399,5401],{},[630,5392,633],{"mathvariant":632},[635,5394,638],{"stretchy":637},[630,5396,641],{},[630,5398,779],{"mathvariant":778},[630,5400,644],{},[635,5402,647],{"stretchy":637},[649,5404,786],{"encoding":651},[611,5406,5408],{"className":5407,"ariaHidden":657},[656],[611,5409,5411,5414,5417,5420,5423,5426,5429],{"className":5410},[661],[611,5412],{"className":5413,"style":666},[665],[611,5415,633],{"className":5416,"style":672},[670,671],[611,5418,638],{"className":5419},[676],[611,5421,641],{"className":5422},[670,680],[611,5424,779],{"className":5425},[670],[611,5427,644],{"className":5428},[670,680],[611,5430,647],{"className":5431},[685],[1132,5433,5434,2273,5436,818],{},[601,5435,2045],{},[611,5437,5439,5460],{"className":5438},[614],[611,5440,5442],{"className":5441},[618],[620,5443,5444],{"xmlns":622},[624,5445,5446,5458],{},[627,5447,5448,5450,5452,5454,5456],{},[630,5449,633],{"mathvariant":632},[635,5451,638],{"stretchy":637},[630,5453,641],{},[630,5455,644],{},[635,5457,647],{"stretchy":637},[649,5459,652],{"encoding":651},[611,5461,5463],{"className":5462,"ariaHidden":657},[656],[611,5464,5466,5469,5472,5475,5478],{"className":5465},[661],[611,5467],{"className":5468,"style":666},[665],[611,5470,633],{"className":5471,"style":672},[670,671],[611,5473,638],{"className":5474},[676],[611,5476,681],{"className":5477},[670,680],[611,5479,647],{"className":5480},[685],[1132,5482,5483,3872],{},[601,5484,2100],{},[598,5486,3875,5487,3879],{},[601,5488,3878],{},[3166,5490],{},[3158,5492,2131],{"id":2130},[1352,5494,5495,5564,5568],{},[1132,5496,5497,2273,5499,3955],{},[601,5498,2137],{},[611,5500,5502,5525],{"className":5501},[614],[611,5503,5505],{"className":5504},[618],[620,5506,5507],{"xmlns":622},[624,5508,5509,5523],{},[627,5510,5511,5513,5515,5517,5519,5521],{},[630,5512,633],{"mathvariant":632},[635,5514,638],{"stretchy":637},[630,5516,641],{},[635,5518,913],{},[630,5520,644],{},[635,5522,647],{"stretchy":637},[649,5524,2887],{"encoding":651},[611,5526,5528,5552],{"className":5527,"ariaHidden":657},[656],[611,5529,5531,5534,5537,5540,5543,5546,5549],{"className":5530},[661],[611,5532],{"className":5533,"style":666},[665],[611,5535,633],{"className":5536,"style":672},[670,671],[611,5538,638],{"className":5539},[676],[611,5541,641],{"className":5542},[670,680],[611,5544],{"className":5545,"style":1009},[1008],[611,5547,913],{"className":5548},[1013],[611,5550],{"className":5551,"style":1009},[1008],[611,5553,5555,5558,5561],{"className":5554},[661],[611,5556],{"className":5557,"style":666},[665],[611,5559,644],{"className":5560},[670,680],[611,5562,647],{"className":5563},[685],[1132,5565,5566,3960],{},[601,5567,2208],{},[1132,5569,3963,5570,3967],{},[601,5571,3966],{},[3166,5573],{},[3158,5575,3973],{"id":3972},[598,5577,3976,5578,3980],{},[601,5579,3979],{},[2219,5581,3983],{},{"title":846,"searchDepth":867,"depth":867,"links":5583},[],{},{"title":3154,"description":3986},1788035586258]