<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Le bloc-notes Maths, Info, Lycée</title>
<link>https://mathsinfolycee.fr/</link>
<atom:link href="https://mathsinfolycee.fr/index.xml" rel="self" type="application/rss+xml"/>
<description>Le blog de M. LALLEMAND, professeur de mathématiques</description>
<generator>quarto-1.9.16</generator>
<lastBuildDate>Mon, 05 Jan 2026 23:00:00 GMT</lastBuildDate>
<item>
  <title>Maîtriser la recherche de primitives : le guide complet</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2026-01-06-primitives/</link>
  <description><![CDATA[ 





<p>Bienvenue dans ce nouveau guide ! 📘 Aujourd’hui, nous nous intéressons aux <strong>primitives</strong>, une notion essentielle pour comprendre le calcul intégral.</p>
<section id="quest-ce-quune-primitive" class="level2">
<h2 class="anchored" data-anchor-id="quest-ce-quune-primitive">Qu’est-ce qu’une primitive ?</h2>
<p>Par définition, soit <img src="https://latex.codecogs.com/png.latex?f"> une fonction continue sur un intervalle <img src="https://latex.codecogs.com/png.latex?I">. On appelle <strong>primitive</strong> de <img src="https://latex.codecogs.com/png.latex?f"> sur <img src="https://latex.codecogs.com/png.latex?I">, toute fonction <img src="https://latex.codecogs.com/png.latex?F"> dérivable sur <img src="https://latex.codecogs.com/png.latex?I"> telle que <img src="https://latex.codecogs.com/png.latex?F'%20=%20f">.</p>
<blockquote class="blockquote">
<p><strong>En résumé :</strong> Chercher une primitive, c’est faire l’inverse de la dérivation.</p>
</blockquote>
<section id="lensemble-des-primitives-et-la-constante-c" class="level3">
<h3 class="anchored" data-anchor-id="lensemble-des-primitives-et-la-constante-c">L’ensemble des primitives et la constante <img src="https://latex.codecogs.com/png.latex?C"></h3>
<p>Si une fonction admet une primitive <img src="https://latex.codecogs.com/png.latex?F">, alors elle en possède une infinité de la forme <img src="https://latex.codecogs.com/png.latex?G(x)%20=%20F(x)%20+%20C">, où <img src="https://latex.codecogs.com/png.latex?C%20%5Cin%20%5Cmathbb%7BR%7D">.</p>
<p><strong>Exemple d’application (Condition initiale) :</strong></p>
<p>Soit <img src="https://latex.codecogs.com/png.latex?f(x)%20=%202x%20+%203">. On cherche la primitive <img src="https://latex.codecogs.com/png.latex?F"> telle que <img src="https://latex.codecogs.com/png.latex?F(1)%20=%205">.</p>
<ol type="1">
<li><p>Les primitives sont de la forme <img src="https://latex.codecogs.com/png.latex?F(x)%20=%20x%5E2%20+%203x%20+%20C">.</p></li>
<li><p>On impose la condition <img src="https://latex.codecogs.com/png.latex?F(1)%20=%205"> : <img src="https://latex.codecogs.com/png.latex?1%5E2%20+%203(1)%20+%20C%20=%205%20%5Cimplies%204%20+%20C%20=%205%20%5Cimplies%20C%20=%201"></p></li>
<li><p>La primitive unique est donc <strong><img src="https://latex.codecogs.com/png.latex?F(x)%20=%20x%5E2%20+%203x%20+%201"></strong>.</p></li>
</ol>
<hr>
</section>
</section>
<section id="les-propriétés-fondamentales" class="level2">
<h2 class="anchored" data-anchor-id="les-propriétés-fondamentales">Les propriétés fondamentales</h2>
<p>Pour calculer des primitives de fonctions plus complexes, on utilise la <strong>linéarité</strong> :</p>
<ul>
<li><strong>Somme :</strong> Une primitive de <img src="https://latex.codecogs.com/png.latex?u%20+%20v"> est <img src="https://latex.codecogs.com/png.latex?U%20+%20V">.</li>
<li><strong>Multiplication par un réel :</strong> Une primitive de <img src="https://latex.codecogs.com/png.latex?k%20%5Ccdot%20u"> est <img src="https://latex.codecogs.com/png.latex?k%20%5Ccdot%20U">.</li>
</ul>
<p><strong>Exemple :</strong></p>
<p>Soit <img src="https://latex.codecogs.com/png.latex?f(x)%20=%203x%5E2%20+%205e%5Ex">.</p>
<p>Une primitive de <img src="https://latex.codecogs.com/png.latex?x%5E2"> étant <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bx%5E3%7D%7B3%7D">, celle de <img src="https://latex.codecogs.com/png.latex?3x%5E2"> est <img src="https://latex.codecogs.com/png.latex?3%20%5Ccdot%20%5Cfrac%7Bx%5E3%7D%7B3%7D%20=%20x%5E3">.</p>
<p>On obtient : <strong><img src="https://latex.codecogs.com/png.latex?F(x)%20=%20x%5E3%20+%205e%5Ex%20+%20C"></strong>.</p>
<hr>
</section>
<section id="tableau-des-primitives-usuelles" class="level2">
<h2 class="anchored" data-anchor-id="tableau-des-primitives-usuelles">Tableau des primitives usuelles 📝</h2>
<p>Voici les formules fondamentales à connaître par cœur :</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: left;">Fonction <img src="https://latex.codecogs.com/png.latex?f(x)"></th>
<th style="text-align: left;">Une primitive <img src="https://latex.codecogs.com/png.latex?F(x)"></th>
<th style="text-align: left;">Conditions</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?k"> (constante)</td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?kx"></td>
<td style="text-align: left;"></td>
</tr>
<tr class="even">
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?x%5En"></td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bx%5E%7Bn+1%7D%7D%7Bn+1%7D"></td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?n%20%5Cin%20%5Cmathbb%7BZ%7D,%20n%20%5Cneq%20-1"></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?e%5Ex"></td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?e%5Ex"></td>
<td style="text-align: left;"></td>
</tr>
<tr class="even">
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B1%7D%7B2%5Csqrt%7Bx%7D%7D"></td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?%5Csqrt%7Bx%7D"></td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?x%20%3E%200"></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B1%7D%7Bx%7D"></td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?%5Cln(x)"></td>
<td style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?x%20%3E%200"></td>
</tr>
</tbody>
</table>
<hr>
</section>
<section id="primitives-de-fonctions-composées" class="level2">
<h2 class="anchored" data-anchor-id="primitives-de-fonctions-composées">Primitives de fonctions composées</h2>
<p>Le programme attend que vous sachiez reconnaître la dérivée d’une fonction composée.</p>
<section id="forme-u-cdot-un" class="level3">
<h3 class="anchored" data-anchor-id="forme-u-cdot-un">Forme <img src="https://latex.codecogs.com/png.latex?u'%20%5Ccdot%20u%5En"></h3>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bu%5E%7Bn+1%7D%7D%7Bn+1%7D"></strong>.</p>
<p><strong>Exemple :</strong> Soit <img src="https://latex.codecogs.com/png.latex?f(x)%20=%20(2x+1)(x%5E2+x+3)%5E4">.</p>
<p>En posant <img src="https://latex.codecogs.com/png.latex?u(x)%20=%20x%5E2+x+3">, on a <img src="https://latex.codecogs.com/png.latex?u'(x)%20=%202x+1">. La fonction est de la forme <img src="https://latex.codecogs.com/png.latex?u'%20%5Ccdot%20u%5E4">.</p>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?F(x)%20=%20%5Cfrac%7B1%7D%7B5%7D(x%5E2+x+3)%5E5"></strong>.</p>
</section>
<section id="forme-u-eu" class="level3">
<h3 class="anchored" data-anchor-id="forme-u-eu">Forme <img src="https://latex.codecogs.com/png.latex?u'%20e%5Eu"></h3>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?e%5Eu"></strong>.</p>
<p><strong>Exemple :</strong> Soit <img src="https://latex.codecogs.com/png.latex?f(x)%20=%203e%5E%7B3x-2%7D">.</p>
<p>Avec <img src="https://latex.codecogs.com/png.latex?u(x)%20=%203x-2">, on a <img src="https://latex.codecogs.com/png.latex?u'(x)%20=%203">. La forme est exactement <img src="https://latex.codecogs.com/png.latex?u'%20e%5Eu">.</p>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?F(x)%20=%20e%5E%7B3x-2%7D"></strong>.</p>
</section>
<section id="forme-fracuu" class="level3">
<h3 class="anchored" data-anchor-id="forme-fracuu">Forme <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bu'%7D%7Bu%7D"></h3>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?%5Cln(u)"></strong> (pour <img src="https://latex.codecogs.com/png.latex?u%20%3E%200">).</p>
<p><strong>Exemple :</strong> Soit <img src="https://latex.codecogs.com/png.latex?f(x)%20=%20%5Cfrac%7B2x%7D%7Bx%5E2+1%7D">.</p>
<p>Avec <img src="https://latex.codecogs.com/png.latex?u(x)%20=%20x%5E2+1">, on a <img src="https://latex.codecogs.com/png.latex?u'(x)%20=%202x">. La forme est exactement <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bu'%7D%7Bu%7D">. Comme <img src="https://latex.codecogs.com/png.latex?x%5E2+1%20%3E%200"> pour tout réel <img src="https://latex.codecogs.com/png.latex?x">.</p>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?F(x)%20=%20%5Cln(x%5E2+1)"></strong>.</p>
<hr>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>💡 L’astuce du prof : Ajuster les constantes
</div>
</div>
<div class="callout-body-container callout-body">
<p>Il arrive souvent que la dérivée <img src="https://latex.codecogs.com/png.latex?u'(x)"> ne soit pas parfaitement présente. Si le décalage n’est qu’un nombre multiplicatif, on peut l’ajuster.</p>
<p><strong>Exemple 1 (Exponentielle) :</strong> <img src="https://latex.codecogs.com/png.latex?f(x)%20=%20e%5E%7B5x+2%7D">.</p>
<p>Ici <img src="https://latex.codecogs.com/png.latex?u(x)%20=%205x+2">, donc <img src="https://latex.codecogs.com/png.latex?u'(x)%20=%20%5Cmathbf%7B5%7D">.</p>
<p>On écrit : <img src="https://latex.codecogs.com/png.latex?f(x)%20=%20%5Cmathbf%7B%5Cfrac%7B1%7D%7B5%7D%7D%20%5Ctimes%20%5Cmathbf%7B5%7De%5E%7B5x+2%7D">.</p>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?F(x)%20=%20%5Cfrac%7B1%7D%7B5%7De%5E%7B5x+2%7D%20+%20C"></strong>.</p>
<p><strong>Exemple 2 (Logarithme) :</strong> <img src="https://latex.codecogs.com/png.latex?f(x)%20=%20%5Cfrac%7B1%7D%7B3x+4%7D">.</p>
<p>Ici <img src="https://latex.codecogs.com/png.latex?u(x)%20=%203x+4">, donc <img src="https://latex.codecogs.com/png.latex?u'(x)%20=%20%5Cmathbf%7B3%7D">.</p>
<p>On écrit : <img src="https://latex.codecogs.com/png.latex?f(x)%20=%20%5Cmathbf%7B%5Cfrac%7B1%7D%7B3%7D%7D%20%5Ctimes%20%5Cfrac%7B%5Cmathbf%7B3%7D%7D%7B3x+4%7D">.</p>
<p>Une primitive est <strong><img src="https://latex.codecogs.com/png.latex?F(x)%20=%20%5Cfrac%7B1%7D%7B3%7D%20%5Cln(3x+4)%20+%20C"></strong>.</p>
</div>
</div>
<hr>
</section>
</section>
<section id="pourquoi-chercher-des-primitives" class="level2">
<h2 class="anchored" data-anchor-id="pourquoi-chercher-des-primitives">Pourquoi chercher des primitives ? 🎯</h2>
<p>La recherche de primitives est au cœur de deux piliers du programme :</p>
<ol type="1">
<li><strong>Les équations différentielles :</strong> Résoudre <img src="https://latex.codecogs.com/png.latex?y'%20=%20f"> revient à chercher les primitives de <img src="https://latex.codecogs.com/png.latex?f">. C’est crucial pour les modèles de croissance de population ou de refroidissement thermique.</li>
<li><strong>Le calcul d’aires :</strong> Si <img src="https://latex.codecogs.com/png.latex?F"> est une primitive de <img src="https://latex.codecogs.com/png.latex?f"> sur <img src="https://latex.codecogs.com/png.latex?%5Ba;b%5D">, alors l’intégrale (qui représente l’aire sous la courbe pour une fonction positive) se calcule par : <img src="https://latex.codecogs.com/png.latex?%5Cint_%7Ba%7D%5E%7Bb%7D%20f(x)%20%5C,%20dx%20=%20F(b)%20-%20F(a)"></li>
</ol>


</section>

 ]]></description>
  <category>Analyse</category>
  <category>Terminale</category>
  <category>Mathématiques</category>
  <guid>https://mathsinfolycee.fr/posts/2026-01-06-primitives/</guid>
  <pubDate>Mon, 05 Jan 2026 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2026-01-06-primitives/primitives2.png" medium="image" type="image/png" height="81" width="144"/>
</item>
<item>
  <title>L’histoire de l’Intelligence Artificielle</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025-11-17_histoire_AI/</link>
  <description><![CDATA[ 





<section id="des-pionniers-au-prix-nobel-lhistoire-de-lintelligence-artificielle" class="level2">
<h2 class="anchored" data-anchor-id="des-pionniers-au-prix-nobel-lhistoire-de-lintelligence-artificielle">Des pionniers au prix Nobel : l’histoire de l’Intelligence Artificielle</h2>
<p>L’intelligence artificielle n’est pas un phénomène né en 2022 avec l’irruption de ChatGPT. Si l’IA fait aujourd’hui la une, son histoire est bien plus longue et remonte aux débuts de l’informatique, impliquant certains de ses plus grands noms.</p>
<p>La vidéo suivante, publiée par la Direction Régionale Académique du Numérique Éducatif de la région Grand-Est, retrace les grandes étapes de cette aventure humaine et technologique.</p>
<div style="position: relative; padding-top: 56.25%;">
<iframe title="Histoire de l'intelligence artificielle" width="100%" height="100%" src="https://tube-numerique-educatif.apps.education.fr/videos/embed/pcgvWspA1PwiJiZX3Wqxyi" style="border: 0px; position: absolute; inset: 0px;" allow="fullscreen" sandbox="allow-same-origin allow-scripts allow-popups allow-forms">
</iframe>
</div>
<section id="bref-résumé-de-lhistoire-de-lia" class="level3">
<h3 class="anchored" data-anchor-id="bref-résumé-de-lhistoire-de-lia">Bref résumé de l’histoire de l’IA</h3>
<p>L’histoire de l’IA est généralement divisée en quatre périodes. Voici un aperçu des étapes clés que vous découvrirez dans ce document :</p>
<section id="lère-des-pionniers-et-la-définition-fondamentale" class="level4">
<h4 class="anchored" data-anchor-id="lère-des-pionniers-et-la-définition-fondamentale">1. L’Ère des Pionniers et la Définition Fondamentale</h4>
<p>L’histoire des prémisses de l’IA commence dès <strong>1936</strong>, lorsque <strong>Alan Turing</strong> propose un modèle de machine (la machine de Turing) capable de simuler le fonctionnement de n’importe quel algorithme, machine qui est devenue notre ordinateur actuel.</p>
<p>Pendant la Seconde Guerre mondiale, alors qu’Alan Turing travaillait à décrypter les messages nazis chiffrés par la machine Enigma, un article fondamental a été publié en <strong>1943</strong> par Warren McCulloch et Walter Pitts. Ils y proposaient le premier <strong>modèle de neurone mathématique</strong>, inspiré du neurone biologique. L’intention était claire : s’inspirer du vivant pour créer une machine potentiellement plus puissante que la machine de Turing grâce à un réseau bouclé de neurones artificiels.</p>
<p>Ce n’est qu’en <strong>1956</strong> que le terme “Intelligence Artificielle” est forgé lors de la conférence de Dartmouth dans le New Hampshire, réunissant une vingtaine de spécialistes. L’IA y est définie comme un système capable de résoudre des problèmes <strong>normalement réservés à l’intelligence humaine</strong>.</p>
</section>
<section id="les-premières-machines-et-les-hivers-technologiques" class="level4">
<h4 class="anchored" data-anchor-id="les-premières-machines-et-les-hivers-technologiques">2. Les Premières Machines et les Hivers Technologiques</h4>
<p>Le passage de la théorie à la pratique survient en <strong>1957</strong> avec Frank Rosenblatt, qui propose le premier modèle de machine capable d’apprendre, fondé sur un réseau de neurones artificiels. Cela a mené au <strong>Mark 1 Perceptron</strong>, une machine composée de 400 cellules photoélectriques et d’une seule couche de neurones, capable de tâches simples comme la reconnaissance de caractères. Cependant, le Perceptron, limité en puissance de calcul et incapable de traiter des problèmes non linéaires (comme distinguer précisément les spams des non-spams), a rapidement atteint ses limites.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Mark_I_Perceptron.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Mark 1 Perceptron - By John C. Hay, Albert E. Murray - https://apps.dtic.mil/sti/tr/pdf/AD0236965.pdf, Public Domain, https://commons.wikimedia.org/w/index.php?curid=143176022"><img src="https://mathsinfolycee.fr/posts/2025-11-17_histoire_AI/Mark_I_Perceptron.png" class="img-fluid figure-img" style="width:66.0%" alt="Mark 1 Perceptron - By John C. Hay, Albert E. Murray - https://apps.dtic.mil/sti/tr/pdf/AD0236965.pdf, Public Domain, https://commons.wikimedia.org/w/index.php?curid=143176022"></a></p>
<figcaption>Mark 1 Perceptron - By John C. Hay, Albert E. Murray - https://apps.dtic.mil/sti/tr/pdf/AD0236965.pdf, Public Domain, https://commons.wikimedia.org/w/index.php?curid=143176022</figcaption>
</figure>
</div>
<p>Ces difficultés techniques ont conduit au <strong>premier hiver de l’intelligence artificielle</strong> à partir de <strong>1974</strong>, une période de désintérêt et de blocage.</p>
<p>La reprise a nécessité une rupture technologique, qui est survenue en <strong>1986</strong> avec la réappropriation de l’algorithme de <strong>rétropropagation du gradient</strong>. Cet algorithme permet d’optimiser l’apprentissage des neurones artificiels en calculant l’erreur en sortie et en la faisant remonter pour modifier les connexions.</p>
<p>Malgré cela, un <strong>deuxième hiver</strong> a eu lieu en <strong>1987</strong>, principalement lié à un manque d’investissement. Les investisseurs ne voyaient pas le potentiel de la technologie. Il manquait alors une promesse ou un « storytelling » pour séduire l’opinion publique.</p>
</section>
<section id="la-consécration-et-lère-du-deep-learning" class="level4">
<h4 class="anchored" data-anchor-id="la-consécration-et-lère-du-deep-learning">3. La Consécration et l’Ère du Deep Learning</h4>
<p>Pour attirer les investisseurs, il a fallu des événements médiatiques marquants :</p>
<ul>
<li><strong>1997 : La force brute</strong>. L’ordinateur <strong>Deep Blue</strong> d’IBM, un monstre de 2 tonnes capable de calculer 100 millions de coups à la seconde, bat le champion du monde d’échecs, Garry Kasparov, en six manches. Deep Blue utilisait l’algorithme Minimax pour trier les possibilités et maximiser ses profits.</li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Kasparov-29.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Garry Kasparov - By Copyright 2007, S.M.S.I., Inc.&nbsp;- Owen Williams, The Kasparov Agency. - http://www.kasparovagent.com/photo_gallery.php, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=4507359"><img src="https://mathsinfolycee.fr/posts/2025-11-17_histoire_AI/Kasparov-29.jpg" class="img-fluid figure-img" alt="Garry Kasparov - By Copyright 2007, S.M.S.I., Inc.&nbsp;- Owen Williams, The Kasparov Agency. - http://www.kasparovagent.com/photo_gallery.php, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=4507359"></a></p>
<figcaption>Garry Kasparov - By Copyright 2007, S.M.S.I., Inc.&nbsp;- Owen Williams, The Kasparov Agency. - http://www.kasparovagent.com/photo_gallery.php, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=4507359</figcaption>
</figure>
</div>
<ul>
<li><strong>2012 : La Naissance du Deep Learning</strong>. Lors du concours ImageNet, l’informaticien Alex Krizhevsky remporte la victoire en réduisant de moitié le taux d’erreur de ses concurrents. Ses deux idées révolutionnaires furent d’utiliser des <strong>processeurs graphiques (GPU)</strong>, beaucoup plus puissants que les CPU, et de monter son réseau de neurones en <strong>couches successives</strong>. Chaque couche décompose l’information en éléments élémentaires. C’est la naissance de l’<strong>apprentissage profond</strong> (deep learning).</li>
<li><strong>2016 : L’intelligence stratégique</strong>. L’ordinateur <strong>AlphaGo</strong> de Google bat le champion du monde de jeu de go, Lee Sedol. Le jeu de go est bien plus complexe que les échecs (300 à 400 coups possibles contre 20 à 30 en moyenne). Cette victoire prouve que l’IA a non seulement gagné en puissance de calcul, mais qu’elle est également capable de faire preuve d’une <strong>intelligence stratégique</strong>. Le fameux <strong>37e coup</strong> de la seconde partie, totalement inattendu, est souvent cité comme l’exemple d’une nouvelle stratégie qui a déstabilisé l’adversaire et les commentateurs.</li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Lee_Se-Dol.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-3" title="Lee Sedol - LG Electronics, CC BY 2.0 https://creativecommons.org/licenses/by/2.0, via Wikimedia Commons"><img src="https://mathsinfolycee.fr/posts/2025-11-17_histoire_AI/Lee_Se-Dol.jpg" class="img-fluid figure-img" style="width:33.0%" alt="Lee Sedol - LG Electronics, CC BY 2.0 https://creativecommons.org/licenses/by/2.0, via Wikimedia Commons"></a></p>
<figcaption>Lee Sedol - LG Electronics, CC BY 2.0 <a href="https://creativecommons.org/licenses/by/2.0" class="uri">https://creativecommons.org/licenses/by/2.0</a>, via Wikimedia Commons</figcaption>
</figure>
</div>
<p>Depuis 2016, c’est l’époque de la consécration et de la découverte par le grand public. Les progrès dans le traitement du langage naturel (comme l’assistant vocal <strong>Siri</strong> d’Apple lancé en <strong>2011</strong>) ont également amélioré l’interaction homme-machine.</p>
<p>La reconnaissance scientifique s’est manifestée par l’attribution du prix Turing à Yann Le Cun, Geoffrey Hinton et Joshua Bengio pour leurs travaux sur le <em>deep learning</em>. Plus récemment, en 2024, le <strong>prix Nobel de physique</strong> a été attribué à Geoffrey Hinton et John Hopfield.</p>


</section>
</section>
</section>

 ]]></description>
  <category>Histoire</category>
  <category>Informatique</category>
  <category>IA</category>
  <category>Vidéothèque</category>
  <guid>https://mathsinfolycee.fr/posts/2025-11-17_histoire_AI/</guid>
  <pubDate>Sun, 16 Nov 2025 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025-11-17_histoire_AI/miniature.png" medium="image" type="image/png" height="81" width="144"/>
</item>
<item>
  <title>Superordinateurs : pour quoi faire ?</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025_09_16_superordi/</link>
  <description><![CDATA[ 





<p>Quand on parle d’ordinateur, on pense souvent à notre ordinateur personnel, celui que l’on utilise pour naviguer sur internet ou pour faire du traitement de texte, ou encore pour jouer à Minecraft…</p>
<p>Et ceux qui ont un peu de culture informatique savent que les premiers ordinateurs, dans les années 40 ou 50, étaient de gigantesques machines occupant des pièces entières et coûtant des millions de dollars. Ce temps semble bien loin aujourd’hui, mais il existe encore des ordinateurs de cette taille : <strong>les superordinateurs</strong>.</p>
<section id="quest-ce-quun-superordinateur" class="level2">
<h2 class="anchored" data-anchor-id="quest-ce-quun-superordinateur">Qu’est-ce qu’un superordinateur ?</h2>
<p>Un superordinateur est un ordinateur extrêmement puissant, capable de réaliser des calculs à une vitesse phénoménale. Ils sont utilisés pour des tâches qui nécessitent une puissance de calcul bien au-delà de ce que les ordinateurs personnels ou même les serveurs peuvent offrir. On parle aussi de <strong>supercalculateur</strong>.</p>
<p>La science des superordinateurs (HPC, pour High Performance Computing) nécessite une conception matérielle dédiée, avec des processeurs très rapides, une mémoire vive (RAM) énorme, et souvent des systèmes de refroidissement sophistiqués pour éviter la surchauffe, mais aussi le développement de logiciels optimisés et adaptés à ces architectures très spécifiques.</p>
</section>
<section id="à-quoi-servent-les-superordinateurs" class="level2">
<h2 class="anchored" data-anchor-id="à-quoi-servent-les-superordinateurs">À quoi servent les superordinateurs ?</h2>
<p>Les superordinateurs sont utilisés dans de nombreux domaines scientifiques et industriels qui demandent une grande puissance de calcul : les prévisions météorologiques, la modélisation climatique, la recherche en astrophysique, la simulation de réactions chimiques, simulation d’essais nucléaires, le développement de nouveaux médicaments, la cryptanalyse et bien d’autres encore. Ils permettent de traiter des quantités massives de données et d’effectuer des simulations complexes en un temps record, ce qui serait impossible avec des ordinateurs classiques.</p>
</section>
<section id="exemple-jean-zay-4-le-supercalculateur-français" class="level2">
<h2 class="anchored" data-anchor-id="exemple-jean-zay-4-le-supercalculateur-français">Exemple : Jean Zay 4, le supercalculateur français</h2>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Le_supercalculateur_Jean_Zay_.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Jean Zay 4"><img src="https://mathsinfolycee.fr/posts/2025_09_16_superordi/Le_supercalculateur_Jean_Zay_.jpg" class="img-fluid figure-img" style="width:50.0%" alt="Jean Zay 4"></a></p>
<figcaption>Jean Zay 4</figcaption>
</figure>
</div>
<p>Un article récent paru dans le journal du CNRS propose une vidéo présentant <a href="https://lejournal.cnrs.fr/videos/jean-zay-4-supercalculateur-le-plus-puissant-de-france">Jean Zay 4, le supercalculateur le plus puissant de France pour la recherche</a>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/8JdjePR9mvo?si=Sq4ZQ1976O9wHdtF" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">
</iframe>
<p>Il est capable de résoudre des milliards d’opérations flottantes par seconde et est mis à la disposition de la communauté scientifique pour la recherche en intelligence artificielle. Ce superordinateur se trouve à l’IDRIS (Institut du Développement et des Ressources en Informatique Scientifique), un centre de calcul du CNRS situé sur le plateau de Saclay, près de Paris.</p>
<p>Depuis sa création en 2019 avec une puissance de 14 pétaflops, Jean Zay 4 a connu quatre extensions et culmine désormais à 126 pétaflops, soit 126 millions de milliards d’opérations flottantes par seconde.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Unité de mesure
</div>
</div>
<div class="callout-body-container callout-body">
<p><strong>FLOPS</strong> : FLOPS (Floating Point Operations Per Second) est une unité de mesure de la performance des ordinateurs, en particulier pour les calculs en virgule flottante. Un pétaflop équivaut à <img src="https://latex.codecogs.com/png.latex?10%5E%7B15%7D"> FLOPS, soit un million de milliards d’opérations par seconde.</p>
</div>
</div>
<p>Le supercalculateur se compose de 16 racks, chacun abritant 26 châssis. Chaque châssis est équipé de quatre processeurs graphiques (GPU Nvidia H100) et de deux processeurs CPU, le tout interconnecté. Au total, il compte près de 1500 GPU.</p>
<p>Jean Zay 4 pèse 2,5 tonnes par mètre carré et est traversé par de larges tuyaux d’eau pour refroidir ses composants électroniques. La chaleur récupérée est réutilisée pour chauffer le bâtiment de l’IDRIS et contribue au chauffage des bâtiments du plateau de Saclay, générant environ 6500 MWh par an, l’équivalent du chauffage de 1500 logements neufs.</p>
<p>Les chercheurs doivent soumettre un dossier évalué scientifiquement pour accéder à Jean Zay 4. Ils peuvent ensuite se connecter à distance et réserver des GPU pour leurs simulations numériques, le supercalculateur fonctionnant 24h/24, 7j/7.</p>
<p>Un exemple d’utilisation est présenté dans la vidéo. François Lanusse, chercheur au CNRS, a développé Eon One, un outil d’intelligence artificielle multifonction grâce à Jean Zay 4. Eon One est un modèle de fondation capable de comprendre une grande variété de données et de s’adapter facilement aux besoins des astrophysiciens. Il a été entraîné sur une quantité astronomique de données provenant de divers télescopes, nécessitant la mobilisation de centaines de GPU pendant plusieurs jours.</p>
<p>L’outil peut détecter et classer des objets similaires dans d’énormes jeux de données, par exemple pour trouver des lentilles gravitationnelles parmi des milliards de galaxies.</p>
<p>Eon One sera prochainement disponible en accès libre pour la communauté scientifique, favorisant une recherche plus collaborative.</p>
</section>
<section id="le-supercalculateur-européen-jupiter" class="level2">
<h2 class="anchored" data-anchor-id="le-supercalculateur-européen-jupiter">Le supercalculateur européen Jupiter</h2>
<p>En septembre 2025 a été inauguré à Jülich, en Allemagne, le supercalculateur européen Jupiter. Il est destiné à la recherche scientifique et à l’innovation industrielle en Europe. Il s’agit de la machine la plus puissante d’Europe et la quatrième au monde, capable d’effectuer un milliard de milliards d’opérations par seconde (1 exaflop/s).</p>
<p>Jupiter a été élaboré par <strong>le groupe français Atos</strong> et financé par l’Union européenne et l’Allemagne.</p>
<p>On peut lire dans l’article du journal Le Monde (5/09/2025, lien en sources) :</p>
<blockquote class="blockquote">
<p>“Jupiter occupe une surface de près de 3 600 mètres carrés – soit environ la moitié d’un terrain de football – avec des rangées de processeurs et environ 24 000 puces du grand groupe américain Nvidia, prisées par l’industrie de l’intelligence artificielle. […] Jupiter fournit ainsi la puissance de calcul nécessaire pour entraîner efficacement les modèles de langage de grande taille (LLM) produisant d’énormes volumes de textes et utilisés dans des chatbots génératifs, comme ChatGPT ou Gemini.”</p>
</blockquote>
<p>Cependant, Jupiter n’est pas uniquement destiné à l’intelligence artificielle. Il sera également utilisé pour des applications dans divers domaines scientifiques, tels que la recherche sur les matériaux, la biologie, la médecine, la physique des particules et la climatologie.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="jupiter.webp" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Un salarié travaille sur le superordinateur Jupiter dans le centre de recherche de Jülich, près de Cologne. (Oliver Berg/Dpa/SIPA)"><img src="https://mathsinfolycee.fr/posts/2025_09_16_superordi/jupiter.webp" class="img-fluid figure-img" style="width:50.0%" alt="Un salarié travaille sur le superordinateur Jupiter dans le centre de recherche de Jülich, près de Cologne. (Oliver Berg/Dpa/SIPA)"></a></p>
<figcaption>Un salarié travaille sur le superordinateur Jupiter dans le centre de recherche de Jülich, près de Cologne. (Oliver Berg/Dpa/SIPA)</figcaption>
</figure>
</div>
<p><strong>Sources utilisées pour cet article :</strong></p>
<ul>
<li><a href="https://lejournal.cnrs.fr/videos/jean-zay-4-supercalculateur-le-plus-puissant-de-france" target="_blank">Le supercalculateur Jean Zay 4, le plus puissant de France pour la recherche</a> (CNRS, 12/06/2025)</li>
<li><a href="https://www.lemonde.fr/economie/article/2025/09/05/l-europe-lance-jupiter-son-supercalculateur-destine-a-rattraper-son-retard-dans-l-ia_6639102_3234.html" target="_blank">L’Europe lance Jupiter, son supercalculateur, destiné à rattraper son retard dans l’IA</a> (Le Monde, 05/09/2025)</li>
<li><a href="https://commons.wikimedia.org/wiki/File:Le_supercalculateur_Jean_Zay_.jpg" target="_blank">Photo du supercalculateur Jean Zay sur Wikimedia Commons</a></li>
<li><a href="https://www.lesechos.fr/tech-medias/intelligence-artificielle/leurope-devoile-son-plus-puissant-supercalculateur-pour-gagner-la-bataille-de-lia-2184679" target="_blank">Photo du supercalculateur Jupiter publiée sur le site des Echos</a></li>
</ul>


</section>

 ]]></description>
  <category>Informatique</category>
  <category>IA</category>
  <category>Actualités</category>
  <guid>https://mathsinfolycee.fr/posts/2025_09_16_superordi/</guid>
  <pubDate>Sun, 21 Sep 2025 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025_09_16_superordi/Le_supercalculateur_Jean_Zay_.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>John von Neumann: Le génie architecte du numérique</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025_09_10_von_Neumann/</link>
  <description><![CDATA[ 





<p>L’objectif de cet article est de faire découvrir une figure incontournable de l’histoire des sciences et de l’informatique, souvent méconnue du grand public, mais dont les travaux sont absolument fondamentaux : John von Neumann.</p>
<p>Sans lui, nos ordinateurs n’auraient pas la même tête, et de nombreux concepts que nous utilisons aujourd’hui n’existeraient peut-être pas. On peut dire de lui qu’il était un <strong>polymathe</strong> – c’est-à-dire une personne possédant une connaissance approfondie dans un grand nombre de domaines, notamment en sciences, en art et en philosophie – un vrai génie aux multiples contributions !</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="800px-JohnvonNeumann-LosAlamos.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="John von Neumann à Los Alamos en 1945 (source : Wikimedia Commons, domaine public)"><img src="https://mathsinfolycee.fr/posts/2025_09_10_von_Neumann/800px-JohnvonNeumann-LosAlamos.jpg" class="img-fluid figure-img" style="width:30.0%" alt="John von Neumann à Los Alamos en 1945 (source : Wikimedia Commons, domaine public)"></a></p>
<figcaption>John von Neumann à Los Alamos en 1945 (source : Wikimedia Commons, domaine public)</figcaption>
</figure>
</div>
<section id="lenfant-prodige-de-budapest-un-martien-avant-lheure" class="level2">
<h2 class="anchored" data-anchor-id="lenfant-prodige-de-budapest-un-martien-avant-lheure">L’enfant prodige de Budapest : Un “Martien” avant l’heure</h2>
<p>John von Neumann, né Neumann János Lajos, voit le jour le <strong>28 décembre 1903 à Budapest</strong>, dans une famille juive aisée et cultivée de l’Empire austro-hongrois. Son père, banquier, obtient un titre de noblesse en 1913, ajoutant le célèbre “von” à leur nom.</p>
<p>Dès son plus jeune âge, János est un <strong>enfant prodige</strong>. À six ans, il converse en grec ancien avec son père et est capable de faire des divisions de nombres à huit chiffres de tête. À huit ans, il aurait déjà lu et mémorisé les quarante-quatre volumes de l’histoire universelle de la bibliothèque familiale. Il apprend l’allemand et le français très jeune, en plus du hongrois. À seulement 22 ans, il obtient son <strong>doctorat en mathématiques</strong> (avec la physique expérimentale et la chimie comme matières secondaires) de l’université Loránd-Eötvös. En parallèle, et à la demande de son père qui souhaitait le voir dans un secteur plus rémunérateur que les mathématiques, il obtient un diplôme en génie chimique de l’École polytechnique fédérale de Zurich. Entre 1926 et 1930, à 25 ans, il est le plus jeune au monde à obtenir le titre de privat-docent (habilitation universitaire) à Berlin et à Hambourg.</p>
<p>Von Neumann fait partie d’une génération exceptionnelle d’intellectuels hongrois qui ont fui les persécutions et ont marqué la science du XXe siècle, comme Eugene Wigner, Edward Teller, Leó Szilárd ou Paul Erdős. Ils seront surnommés avec humour les “<strong>Martiens hongrois</strong>” en raison de leur intelligence hors du commun et de leur capacité d’intégration dans les milieux universitaires américains.</p>
<p>L’enfance dorée de von Neumann est marquée par les troubles politiques en Hongrie après la Première Guerre mondiale, notamment la République des conseils hongrois de Béla Kun et la montée des totalitarismes. Cette expérience forge son <strong>anticommunisme viscéral</strong> et sa conviction que les régimes oppressifs sont une négation de la pensée libre. Cela influencera plus tard ses engagements aux États-Unis, où il émigre dans les années 1930 et est naturalisé américain en 1937.</p>
</section>
<section id="des-théories-abstraites-aux-applications-concrètes-le-savant-universel" class="level2">
<h2 class="anchored" data-anchor-id="des-théories-abstraites-aux-applications-concrètes-le-savant-universel">Des théories abstraites aux applications concrètes : Le savant universel</h2>
<p>John von Neumann est un véritable pont entre les mathématiques pures et leurs applications les plus concrètes.</p>
<section id="logique-et-théorie-des-ensembles" class="level3">
<h3 class="anchored" data-anchor-id="logique-et-théorie-des-ensembles">1. Logique et théorie des ensembles</h3>
<p>Nous savons que la logique est la base de tout ce qui est informatique. Von Neumann a apporté des contributions majeures à la <strong>logique mathématique</strong> et à la <strong>théorie des ensembles</strong>. Il a par exemple proposé l’axiome de fondation dans sa thèse de doctorat, qui permet de structurer l’univers des ensembles et d’éviter des paradoxes. Il est également l’auteur de la <strong>théorie des classes de von Neumann-Bernays-Gödel</strong> (NBG), une reformulation essentielle de la théorie des ensembles. Ses travaux ont aussi permis de définir la notion de nombre ordinal, connue sous le nom d’<strong>ordinal de von Neumann</strong>.</p>
<p>Il fut aussi l’un des rares à comprendre immédiatement les implications des <strong>théorèmes d’incomplétude de Gödel</strong> en 1930, montrant qu’aucun système axiomatique assez puissant ne peut démontrer sa propre cohérence.</p>
</section>
<section id="mécanique-quantique-et-analyse-fonctionnelle" class="level3">
<h3 class="anchored" data-anchor-id="mécanique-quantique-et-analyse-fonctionnelle">2. Mécanique quantique et analyse fonctionnelle</h3>
<p>Dans les années 1920-1930, il s’attaque à l’<strong>axiomatisation de la mécanique quantique</strong>. Il réalise qu’un système quantique peut être modélisé comme un vecteur dans un espace de Hilbert, et que les quantités physiques sont des opérateurs linéaires dans ces espaces. Cette approche mathématique rigoureuse réconcilie les différentes formalisations existantes et est exposée dans son ouvrage classique <em>Les Fondements mathématiques de la mécanique quantique</em> (1932). Il a aussi inventé les algèbres de von Neumann, des structures abstraites utilisées en physique, en logique et en théorie des opérateurs.</p>
</section>
<section id="économie-et-théorie-des-jeux" class="level3">
<h3 class="anchored" data-anchor-id="économie-et-théorie-des-jeux">3. Économie et théorie des jeux</h3>
<p>La <strong>théorie des jeux</strong> est un domaine qui combine maths, logique et prise de décision, avec des applications en IA et en algorithmique. Von Neumann est l’un des pères fondateurs de la théorie des jeux moderne.</p>
<p>En 1928, il formule <strong>le théorème du minimax</strong>, qui établit que dans un jeu à somme nulle avec information parfaite, chaque joueur rationnel dispose de stratégies optimales. Il a ensuite étendu cette théorie aux jeux avec asymétrie d’information et à plus de deux joueurs, culminant avec la publication de la célèbre <em>Théorie des jeux et comportements économiques</em> en collaboration avec Oskar Morgenstern en 1944. Cette théorie permet de modéliser les conflits, les négociations, les alliances et même le comportement des missiles.</p>
<p>Le principe de la dissuasion nucléaire trouve ses racines dans le minimax et influencera même le personnage du <strong>Docteur Folamour</strong> de Stanley Kubrick, qui emprunte beaucoup à von Neumann.</p>
</section>
<section id="armement-atomique-et-la-seconde-guerre-mondiale" class="level3">
<h3 class="anchored" data-anchor-id="armement-atomique-et-la-seconde-guerre-mondiale">4. Armement atomique et la Seconde Guerre mondiale</h3>
<p>Son expertise en mathématiques appliquées (balistique, dynamique des chocs, hydrodynamique) le conduit à collaborer avec l’armée américaine dès les années 1930. En 1943, il rejoint le <strong>Projet Manhatta</strong>n à Los Alamos, le programme ultra-secret visant à concevoir la bombe atomique.</p>
<p>Von Neumann est crucial pour les calculs d’implosion nécessaires à la bombe au plutonium (comme “Fat Man” larguée sur Nagasaki) et pour déterminer la <strong>hauteur optimale d’explosion</strong> pour maximiser les dégâts. Il assiste même au test “Trinity” en juillet 1945. Son approche était d’une froideur scientifique impressionnante, et il ne semblait pas avoir de doutes moraux, convaincu de la nécessité de vaincre les nazis, puis de contenir les Soviétiques. Son anticommunisme était notoire, et il a même milité pour une frappe préventive contre l’URSS, considérant ce régime comme un danger absolu.</p>
</section>
<section id="informatique" class="level3">
<h3 class="anchored" data-anchor-id="informatique">5. Informatique</h3>
<p>Le développement des bombes atomiques a nécessité un nombre colossal de calculs, rendant les ordinateurs essentiels. Von Neumann a donné son nom à l’<strong>architecture de von Neumann</strong>, le modèle utilisé dans la quasi-totalité des ordinateurs modernes. Ce modèle, dont il fut le rapporteur en 1945 avec le <em>First Draft of a Report on the EDVAC</em>, est à la base de la conception de la plupart des machines que nous utilisons aujourd’hui, y compris vos téléphones portables.</p>
<p>Cette architecture repose sur quatre composants principaux :</p>
<ol type="1">
<li>L’Unité Arithmétique et Logique (UAL), qui effectue les opérations de base.</li>
<li>L’unité de contrôle, qui séquence les opérations.</li>
<li>La mémoire, qui stocke à la fois les données ET les instructions du programme (c’est l’idée révolutionnaire d’un programme enregistré !).</li>
<li>Les dispositifs d’entrées-sorties, pour communiquer avec le monde extérieur.</li>
</ol>
<p>Précisons que la paternité de cette architecture est débattue, avec des contributions d’autres pionniers comme J. Presper Eckert, John William Mauchly, et Alan Turing. Cependant, von Neumann a été le premier à la formaliser de manière aussi complète.</p>
<p>Mais ce n’est pas tout ! Il est aussi, avec Stanislaw Ulam, à l’origine du concept d’<strong>automates cellulaires</strong>. Incapable de concevoir physiquement des automates auto-reproducteurs, il a travaillé sur le problème de manière purement mathématique, simulant un processus d’auto-reproduction sur une grille discrète. Ces travaux, publiés dans son œuvre posthume <em>Theory of Self-Reproducing Automata</em>, ont inspiré des modèles comme le célèbre <em>Jeu de la vie</em> de Conway, qui simule l’évolution de systèmes complexes à partir de règles simples. C’est une porte ouverte sur la simulation numérique et l’intelligence artificielle !</p>
<p>Enfin, John von Neumann a été le premier à envisager la notion de singularité technologique dans les années 1950, l’idée que le progrès technologique pourrait devenir incontrôlable et irréversible, entraînant des changements imprévisibles pour la civilisation humaine.</p>
</section>
</section>
<section id="lhomme-derrière-le-génie-entre-cynisme-et-bon-vivant" class="level2">
<h2 class="anchored" data-anchor-id="lhomme-derrière-le-génie-entre-cynisme-et-bon-vivant">L’homme derrière le génie : Entre cynisme et bon vivant</h2>
<p>Derrière ce cerveau aux “options illimitées”, se cachait un homme complexe. Von Neumann n’était pas le stéréotype du savant enfermé dans sa tour d’ivoire. C’était un bon vivant, un raconteur d’histoires, gourmand et parfois grivois. Il organisait des fêtes mémorables où il côtoyait le gratin scientifique, y compris Albert Einstein. Son humour était légendaire, de temps en temps cruel, souvent brillant. On lui attribue cette célèbre phrase : « Si les gens ne croient pas que les mathématiques sont simples, c’est uniquement parce qu’ils ne réalisent pas à quel point la vie est compliquée ».</p>
<p>Pourtant, sous cette aisance se cachait un pessimisme croissant et une vision cynique du monde, notamment face à l’inéluctabilité d’un holocauste nucléaire. Il ne manifesta jamais de regrets en public concernant son travail sur l’armement nucléaire. Sa trop grande rapidité d’esprit le laissait souvent seul, peu de gens pouvant réellement converser à son niveau.</p>
<p>John von Neumann décède en 1957 à l’âge de 53 ans d’un cancer, probablement lié à son exposition aux radiations lors de ses travaux sur les armes nucléaires à Los Alamos ou durant des essais nucléaires. Son lit d’hôpital était même sous haute surveillance militaire par crainte qu’il ne divulgue accidentellement des secrets.</p>
</section>
<section id="son-héritage-un-architecte-du-monde-moderne" class="level2">
<h2 class="anchored" data-anchor-id="son-héritage-un-architecte-du-monde-moderne">Son héritage : Un architecte du monde moderne</h2>
<p>Aujourd’hui encore, son nom est invoqué dans les laboratoires d’IA, les modèles climatiques, les débats sur la guerre algorithmique ou l’éthique des machines. Son héritage est partout, comme une architecture invisible du monde moderne. Il est sans doute l’un des derniers universalistes à avoir cru qu’un esprit humain, bien entraîné et curieux, pouvait encore tout embrasser et tout relier. C’est l’un des esprits qui a véritablement façonné le monde numérique dans lequel nous vivons !</p>
<p>Cet article est un rapide résumé de la vie et des contributions de John von Neumann, en grande partie rédigé à partir de l’épisode du podcast <em>Maths en têtes</em> qui lui est consacré et que vous pouvez écouter ci-dessous.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/5SAvrGAEM68?si=XQZw_pmhmBW4HPDG" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">
</iframe>
<p>Je vous conseille également la lecture du très bon roman de Benjamin LABATUT, <strong>MANIAC</strong>, dont Von Neumann est l’un des personnages principaux.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="maniac.jpeg" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Couverture du roman MANIAC de Benjamin Labatut (éditions Grasset)"><img src="https://mathsinfolycee.fr/posts/2025_09_10_von_Neumann/maniac.jpeg" class="img-fluid figure-img" style="width:20.0%" alt="Couverture du roman MANIAC de Benjamin Labatut (éditions Grasset)"></a></p>
<figcaption>Couverture du roman MANIAC de Benjamin Labatut (éditions Grasset)</figcaption>
</figure>
</div>


</section>

 ]]></description>
  <category>Histoire</category>
  <category>Informatique</category>
  <category>Mathématiques</category>
  <category>Science</category>
  <guid>https://mathsinfolycee.fr/posts/2025_09_10_von_Neumann/</guid>
  <pubDate>Tue, 09 Sep 2025 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025_09_10_von_Neumann/800px-JohnvonNeumann-LosAlamos.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Corrigé du sujet de Mathématiques du baccalauréat 2025 - Métropole Jour 2</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025-06-24-MathsMetropoleJ2/</link>
  <description><![CDATA[ 





<p><a href="spe_mathematiques_2025_metropole_2_sujet_officiel_1_.pdf">Lien vers l’énoncé en PDF</a></p>
<section id="corrigé-de-lexercice-1" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-1">Corrigé de l’exercice 1</h2>
<section id="partie-a" class="level4">
<h4 class="anchored" data-anchor-id="partie-a">Partie A</h4>
<ol type="1">
<li><p><strong>Représenter la situation par un arbre pondéré.</strong></p>
<p>On traduit les données de l’énoncé.</p>
<p>Soient les événements <img src="https://latex.codecogs.com/png.latex?A"> : « La personne chute pendant la première séance » et <img src="https://latex.codecogs.com/png.latex?B"> : « La personne chute pendant la deuxième séance ».</p>
<p>On a <img src="https://latex.codecogs.com/png.latex?P(A)%20=%200,6">. Par conséquent, la probabilité de l’événement contraire <img src="https://latex.codecogs.com/png.latex?%5Coverline%7B%20A%7D"> est <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20A%7D)%20=%201%20-%20P(A)%20=%201%20-%200,6%20=%200,4">.</p>
<p>L’énoncé nous donne les probabilités conditionnelles suivantes :</p>
<ul>
<li>La probabilité que la personne chute pendant la deuxième séance sachant qu’elle a chuté pendant la première est <img src="https://latex.codecogs.com/png.latex?P_A(B)%20=%200,3">.</li>
<li>La probabilité que la personne chute pendant la deuxième séance sachant qu’elle n’a pas chuté pendant la première est <img src="https://latex.codecogs.com/png.latex?P_%7B%5Coverline%7B%20A%7D%7D(B)%20=%200,4">.</li>
</ul>
<p>On peut en déduire les probabilités des événements contraires :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?P_A(%5Coverline%7B%20B%7D)%20=%201%20-%20P_A(B)%20=%201%20-%200,3%20=%200,7">.</li>
<li><img src="https://latex.codecogs.com/png.latex?P_%7B%5Coverline%7B%20A%7D%7D(%5Coverline%7B%20B%7D)%20=%201%20-%20P_%7B%5Coverline%7B%20A%7D%7D(B)%20=%201%20-%200,4%20=%200,6">.</li>
</ul>
<p>L’arbre pondéré représentant la situation est le suivant :</p>
<p><a href="arbre.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://mathsinfolycee.fr/posts/2025-06-24-MathsMetropoleJ2/arbre.png" class="img-fluid" style="width:50.0%"></a></p></li>
<li><p><strong>Calculer la probabilité <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D)"> et interpréter le résultat.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Probabilité d’une intersection
</div>
</div>
<div class="callout-body-container callout-body">
<p>Pour deux événements <img src="https://latex.codecogs.com/png.latex?A"> et <img src="https://latex.codecogs.com/png.latex?E">, la probabilité de leur intersection est donnée par la formule : <img src="https://latex.codecogs.com/png.latex?P(A%20%5Ccap%20E)%20=%20P(A)%20%5Ctimes%20P_A(E)">.</p>
<p>Cette valeur correspond à la probabilité du chemin passant par <img src="https://latex.codecogs.com/png.latex?A"> puis <img src="https://latex.codecogs.com/png.latex?E"> dans un arbre pondéré.</p>
</div>
</div>
<p>On cherche la probabilité de l’événement <img src="https://latex.codecogs.com/png.latex?%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D"> : « La personne ne chute ni pendant la première séance ni pendant la deuxième séance ».</p>
<p>D’après la formule des probabilités composées, on a : <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D)%20=%20P(%5Coverline%7B%20A%7D)%20%5Ctimes%20P_%7B%5Coverline%7B%20A%7D%7D(%5Coverline%7B%20B%7D)"> <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D)%20=%200,4%20%5Ctimes%200,6%20=%200,24"></p>
<p>La probabilité que la personne choisie au hasard ne chute lors d’aucune des deux séances est de 0,24.</p></li>
<li><p><strong>Montrer que <img src="https://latex.codecogs.com/png.latex?P(B)%20=%200,34">.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Formule des probabilités totales
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si les événements <img src="https://latex.codecogs.com/png.latex?A_1,%20A_2,%20...,%20A_n"> forment une partition de l’univers, alors pour tout événement <img src="https://latex.codecogs.com/png.latex?E">, on a : <img src="https://latex.codecogs.com/png.latex?P(E)%20=%20P(A_1%20%5Ccap%20E)%20+%20P(A_2%20%5Ccap%20E)%20+%20...%20+%20P(A_n%20%5Ccap%20E)">.</p>
<p>Dans le cas d’un événement <img src="https://latex.codecogs.com/png.latex?A"> et de son contraire <img src="https://latex.codecogs.com/png.latex?%5Coverline%7B%20A%7D">, la formule se simplifie en : <img src="https://latex.codecogs.com/png.latex?P(E)%20=%20P(A%20%5Ccap%20E)%20+%20P(%5Coverline%7B%20A%7D%20%5Ccap%20E)">.</p>
</div>
</div>
<p>L’événement <img src="https://latex.codecogs.com/png.latex?B"> peut se réaliser de deux manières exclusives : soit la personne a chuté à la première séance et à la deuxième (<img src="https://latex.codecogs.com/png.latex?A%20%5Ccap%20B">), soit elle n’a pas chuté à la première mais a chuté à la deuxième (<img src="https://latex.codecogs.com/png.latex?%5Coverline%7B%20A%7D%20%5Ccap%20B">).</p>
<p>Les événements <img src="https://latex.codecogs.com/png.latex?A"> et <img src="https://latex.codecogs.com/png.latex?%5Coverline%7B%20A%7D"> formant une partition de l’univers, on peut utiliser la formule des probabilités totales : <img src="https://latex.codecogs.com/png.latex?P(B)%20=%20P(A%20%5Ccap%20B)%20+%20P(%5Coverline%7B%20A%7D%20%5Ccap%20B)"></p>
<p>On calcule <img src="https://latex.codecogs.com/png.latex?P(A%20%5Ccap%20B)"> :</p>
<p><img src="https://latex.codecogs.com/png.latex?P(A%20%5Ccap%20B)%20=%20P(A)%20%5Ctimes%20P_A(B)%20=%200,6%20%5Ctimes%200,3%20=%200,18"></p>
<p>On calcule <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20A%7D%20%5Ccap%20B)"> : <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20A%7D%20%5Ccap%20B)%20=%20P(%5Coverline%7B%20A%7D)%20%5Ctimes%20P_%7B%5Coverline%7B%20A%7D%7D(B)%20=%200,4%20%5Ctimes%200,4%20=%200,16"> On peut maintenant calculer <img src="https://latex.codecogs.com/png.latex?P(B)"> : <img src="https://latex.codecogs.com/png.latex?P(B)%20=%200,18%20+%200,16%20=%200,34"> On a bien montré que <img src="https://latex.codecogs.com/png.latex?P(B)%20=%200,34">.</p></li>
<li><p><strong>La personne ne chute pas pendant la deuxième séance de cours. Calculer la probabilité qu’elle n’ait pas chuté lors de la première séance.</strong></p>
<p>On cherche à calculer la probabilité que la personne n’ait pas chuté lors de la première séance, sachant qu’elle n’a pas chuté lors de la deuxième. Il s’agit de la probabilité conditionnelle <img src="https://latex.codecogs.com/png.latex?P_%7B%5Coverline%7B%20B%7D%7D(%5Coverline%7B%20A%7D)">.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Probabilité conditionnelle
</div>
</div>
<div class="callout-body-container callout-body">
<p>La probabilité de l’événement <img src="https://latex.codecogs.com/png.latex?E"> sachant l’événement <img src="https://latex.codecogs.com/png.latex?F"> est donnée par : <img src="https://latex.codecogs.com/png.latex?P_F(E)%20=%20%5Cfrac%7BP(E%20%5Ccap%20F)%7D%7BP(F)%7D"></p>
</div>
</div>
<p>La formule est donc : <img src="https://latex.codecogs.com/png.latex?P_%7B%5Coverline%7B%20B%7D%7D(%5Coverline%7B%20A%7D)%20=%20%5Cfrac%7BP(%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D)%7D%7BP(%5Coverline%7B%20B%7D)%7D"> Calculons les deux termes :</p>
<ul>
<li>Le numérateur, en suivant la branche correspondante de l’arbre : <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D)%20=%20P(%5Coverline%7B%20A%7D)%20%5Ctimes%20P_%7B%5Coverline%7B%20A%7D%7D(%5Coverline%7B%20B%7D)%20=%200,4%20%5Ctimes%200,6%20=%200,24">.</li>
<li>Le dénominateur, en utilisant l’événement contraire de <img src="https://latex.codecogs.com/png.latex?B"> : <img src="https://latex.codecogs.com/png.latex?P(%5Coverline%7B%20B%7D)%20=%201%20-%20P(B)%20=%201%20-%200,34%20=%200,66">.</li>
</ul>
<p>On obtient alors : <img src="https://latex.codecogs.com/png.latex?P_%7B%5Coverline%7B%20B%7D%7D(%5Coverline%7B%20A%7D)%20=%20%5Cfrac%7B0,24%7D%7B0,66%7D%20=%20%5Cfrac%7B24%7D%7B66%7D%20=%20%5Cfrac%7B4%7D%7B11%7D"> En arrondissant au millième, on a : <img src="https://latex.codecogs.com/png.latex?P_%7B%5Coverline%7B%20B%7D%7D(%5Coverline%7B%20A%7D)%20%5Capprox%200,364"> La probabilité que la personne n’ait pas chuté à la première séance sachant qu’elle n’a pas chuté à la deuxième est d’environ 0,364.</p></li>
<li><p><strong>Étude d’une variable aléatoire <img src="https://latex.codecogs.com/png.latex?X">.</strong></p>
<ol type="a">
<li><strong>Montrer que la variable aléatoire <img src="https://latex.codecogs.com/png.latex?X"> suit une loi binomiale dont on précisera les paramètres.</strong></li>
</ol>
<p>Soit l’événement <img src="https://latex.codecogs.com/png.latex?S"> : « la personne n’a chuté ni lors de la première ni lors de la deuxième séance ». Cet événement correspond à <img src="https://latex.codecogs.com/png.latex?%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D">. L’énoncé admet que la probabilité de cet événement est <img src="https://latex.codecogs.com/png.latex?p%20=%20P(S)%20=%20P(%5Coverline%7B%20A%7D%20%5Ccap%20%5Coverline%7B%20B%7D)%20=%200,24">. (Nous l’avions calculé à la question précédente).</p>
<p>On répète <img src="https://latex.codecogs.com/png.latex?n=100"> fois de manière identique et indépendante une épreuve de Bernoulli (le choix d’une personne est assimilé à un tirage avec remise).</p>
<ul>
<li>L’épreuve de Bernoulli consiste à choisir une personne et à regarder si l’événement <img src="https://latex.codecogs.com/png.latex?S"> est réalisé (succès) ou non (échec).</li>
<li>La probabilité du succès est constante et vaut <img src="https://latex.codecogs.com/png.latex?p=0,24">.</li>
<li>Les épreuves sont indépendantes.</li>
</ul>
<p>La variable aléatoire <img src="https://latex.codecogs.com/png.latex?X">, qui compte le nombre de succès (le nombre de personnes n’ayant pas chuté) au cours de ces 100 répétitions, suit donc une loi binomiale de paramètres <img src="https://latex.codecogs.com/png.latex?n=100"> et <img src="https://latex.codecogs.com/png.latex?p=0,24">.</p>
<p>On note <img src="https://latex.codecogs.com/png.latex?X%20%5Csim%20%5Cmathcal%7BB%7D(100%20%5C,;%5C,%200,24)">.</p>
<ol start="2" type="a">
<li><strong>Quelle est la probabilité d’avoir, dans un échantillon de 100 personnes, au moins 20 personnes qui ne chutent ni lors de la première ni lors de la deuxième séance ?</strong></li>
</ol>
<p>On cherche à calculer <img src="https://latex.codecogs.com/png.latex?P(X%20%5Cgeqslant%2020)">.</p>
<p>Il est plus simple de passer par l’événement contraire : <img src="https://latex.codecogs.com/png.latex?P(X%20%5Cgeqslant%2020)%20=%201%20-%20P(X%20%3C%2020)%20=%201%20-%20P(X%20%5Cleqslant%2019)"> À l’aide de la calculatrice, on utilise la fonction de répartition de la loi binomiale pour calculer <img src="https://latex.codecogs.com/png.latex?P(X%20%5Cleqslant%2019)">. Avec les paramètres <img src="https://latex.codecogs.com/png.latex?n=100"> et <img src="https://latex.codecogs.com/png.latex?p=0,24">, on obtient : <img src="https://latex.codecogs.com/png.latex?P(X%20%5Cleqslant%2019)%20%5Capprox%200,1453"> Donc, <img src="https://latex.codecogs.com/png.latex?P(X%20%5Cgeqslant%2020)%20%5Capprox%201%20-%200,1453%20=%200,8547"> Arrondie au millième, la probabilité est d’environ 0,855.</p>
<ol start="3" type="a">
<li><strong>Calculer l’espérance <img src="https://latex.codecogs.com/png.latex?E(X)"> et interpréter le résultat dans le contexte de l’exercice.</strong></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Espérance d’une loi binomiale
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si une variable aléatoire <img src="https://latex.codecogs.com/png.latex?X"> suit une loi binomiale <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BB%7D(n,%20p)">, son espérance est donnée par : <img src="https://latex.codecogs.com/png.latex?E(X)%20=%20n%20%5Ctimes%20p">.</p>
</div>
</div>
<p>Pour <img src="https://latex.codecogs.com/png.latex?X%20%5Csim%20%5Cmathcal%7BB%7D(100%20%5C,;%5C,%200,24)">, l’espérance est : <img src="https://latex.codecogs.com/png.latex?E(X)%20=%20100%20%5Ctimes%200,24%20=%2024"> <strong>Interprétation :</strong> L’espérance représente la valeur moyenne que l’on peut espérer obtenir si l’on répète l’expérience (le tirage d’un échantillon de 100 personnes) un grand nombre de fois.</p>
<p>Ainsi, sur un grand nombre d’échantillons de 100 personnes, on peut s’attendre à ce qu’en moyenne, 24 personnes n’aient chuté au cours d’aucune des deux séances.</p></li>
</ol>
</section>
<section id="partie-b" class="level4">
<h4 class="anchored" data-anchor-id="partie-b">Partie B</h4>
<ol type="1">
<li><p><strong>Déterminer l’espérance <img src="https://latex.codecogs.com/png.latex?E(T)"> de la variable aléatoire <img src="https://latex.codecogs.com/png.latex?T">. Interpréter le résultat dans le contexte de l’exercice.</strong></p>
<p>La variable aléatoire <img src="https://latex.codecogs.com/png.latex?T"> est définie comme la somme des variables aléatoires <img src="https://latex.codecogs.com/png.latex?T_1"> et <img src="https://latex.codecogs.com/png.latex?T_2">, soit <img src="https://latex.codecogs.com/png.latex?T%20=%20T_1%20+%20T_2">.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Linéarité de l’espérance
</div>
</div>
<div class="callout-body-container callout-body">
<p>Pour deux variables aléatoires <img src="https://latex.codecogs.com/png.latex?X"> et <img src="https://latex.codecogs.com/png.latex?Y">, l’espérance de leur somme est la somme de leurs espérances : <img src="https://latex.codecogs.com/png.latex?E(X+Y)%20=%20E(X)%20+%20E(Y)"> Cette propriété est toujours vraie, que les variables soient indépendantes ou non.</p>
</div>
</div>
<p>En appliquant cette propriété, on obtient : <img src="https://latex.codecogs.com/png.latex?E(T)%20=%20E(T_1%20+%20T_2)%20=%20E(T_1)%20+%20E(T_2)"> En utilisant les valeurs données dans l’énoncé : <img src="https://latex.codecogs.com/png.latex?E(T)%20=%2040%20+%2060%20=%20100"> <strong>Interprétation :</strong> L’espérance de <img src="https://latex.codecogs.com/png.latex?T"> représente le temps d’attente total moyen. En moyenne, une personne choisie au hasard attendra <strong>100 minutes</strong> au total sur l’ensemble du week-end pour accéder aux activités sportives.</p></li>
<li><p><strong>Montrer que la variance <img src="https://latex.codecogs.com/png.latex?V(T)"> de la variable aléatoire <img src="https://latex.codecogs.com/png.latex?T"> est égale à 356.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Variance d’une somme de variables indépendantes
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si deux variables aléatoires <img src="https://latex.codecogs.com/png.latex?X"> et <img src="https://latex.codecogs.com/png.latex?Y"> sont <strong>indépendantes</strong>, la variance de leur somme est la somme de leurs variances : <img src="https://latex.codecogs.com/png.latex?V(X+Y)%20=%20V(X)%20+%20V(Y)"> De plus, la variance est le carré de l’écart-type : <img src="https://latex.codecogs.com/png.latex?V(X)%20=%20(%5Csigma(X))%5E2">.</p>
</div>
</div>
<p>L’énoncé précise que les variables aléatoires <img src="https://latex.codecogs.com/png.latex?T_1"> et <img src="https://latex.codecogs.com/png.latex?T_2"> sont indépendantes. On peut donc appliquer la formule de la variance d’une somme.</p>
<p>Nous devons d’abord calculer les variances de <img src="https://latex.codecogs.com/png.latex?T_1"> et <img src="https://latex.codecogs.com/png.latex?T_2"> à partir de leurs écarts-types :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?V(T_1)%20=%20(%5Csigma(T_1))%5E2%20=%2010%5E2%20=%20100"></li>
<li><img src="https://latex.codecogs.com/png.latex?V(T_2)%20=%20(%5Csigma(T_2))%5E2%20=%2016%5E2%20=%20256"></li>
</ul>
<p>On peut maintenant calculer la variance de <img src="https://latex.codecogs.com/png.latex?T"> : <img src="https://latex.codecogs.com/png.latex?V(T)%20=%20V(T_1)%20+%20V(T_2)%20=%20100%20+%20256%20=%20356"> On a bien montré que <img src="https://latex.codecogs.com/png.latex?V(T)%20=%20356">.</p></li>
<li><p><strong>À l’aide de l’inégalité de Bienaymé-Tchebychev, montrer que la probabilité que le temps total d’attente <img src="https://latex.codecogs.com/png.latex?T"> soit strictement compris entre 60 et 140 minutes est supérieure à 0,77.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Inégalité de Bienaymé-Tchebychev
</div>
</div>
<div class="callout-body-container callout-body">
<p>Pour une variable aléatoire <img src="https://latex.codecogs.com/png.latex?X"> d’espérance <img src="https://latex.codecogs.com/png.latex?E(X)"> et de variance <img src="https://latex.codecogs.com/png.latex?V(X)">, et pour tout réel <img src="https://latex.codecogs.com/png.latex?%5Cdelta%20%3E%200">, l’inégalité s’écrit : <img src="https://latex.codecogs.com/png.latex?P(%7CX%20-%20E(X)%7C%20%5Cgeqslant%5Cdelta)%20%5Cle%20%5Cfrac%7BV(X)%7D%7B%5Cdelta%5E2%7D"> La forme complémentaire, souvent plus utile pour borner une probabilité d’être <em>proche</em> de la moyenne, est : <img src="https://latex.codecogs.com/png.latex?P(%7CX%20-%20E(X)%7C%20%3C%20%5Cdelta)%20%5Cgeqslant1%20-%20%5Cfrac%7BV(X)%7D%7B%5Cdelta%5E2%7D"></p>
</div>
</div>
<p>On cherche à minorer la probabilité <img src="https://latex.codecogs.com/png.latex?P(60%20%3C%20T%20%3C%20140)">. Nous avons calculé <img src="https://latex.codecogs.com/png.latex?E(T)%20=%20100"> et <img src="https://latex.codecogs.com/png.latex?V(T)%20=%20356">.</p>
<p>L’intervalle <img src="https://latex.codecogs.com/png.latex?%5D60,%20140%5B"> est centré sur l’espérance <img src="https://latex.codecogs.com/png.latex?E(T)=100">. On peut le réécrire sous la forme <img src="https://latex.codecogs.com/png.latex?%7CT%20-%20E(T)%7C%20%3C%20%5Cdelta">.</p>
<p><img src="https://latex.codecogs.com/png.latex?60%20%3C%20T%20%3C%20140%20%5CLeftrightarrow%2060%20-%20100%20%3C%20T%20-%20100%20%3C%20140%20-%20100"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5CLeftrightarrow%20-40%20%3C%20T%20-%20100%20%3C%2040"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5CLeftrightarrow%20%7CT%20-%20100%7C%20%3C%2040"></p>
<p>L’événement est donc <img src="https://latex.codecogs.com/png.latex?%7CT%20-%20E(T)%7C%20%3C%2040">, ce qui correspond à la forme de l’inégalité de Bienaymé-Tchebychev avec <img src="https://latex.codecogs.com/png.latex?%5Cdelta%20=%2040">.</p>
<p>Appliquons la forme complémentaire de l’inégalité : <img src="https://latex.codecogs.com/png.latex?P(%7CT%20-%20100%7C%20%3C%2040)%20%5Cgeqslant1%20-%20%5Cfrac%7BV(T)%7D%7B40%5E2%7D"> En remplaçant par les valeurs connues : <img src="https://latex.codecogs.com/png.latex?P(60%20%3C%20T%20%3C%20140)%20%5Cgeqslant1%20-%20%5Cfrac%7B356%7D%7B40%5E2%7D"> <img src="https://latex.codecogs.com/png.latex?P(60%20%3C%20T%20%3C%20140)%20%5Cgeqslant1%20-%20%5Cfrac%7B356%7D%7B1600%7D"> Calculons la valeur du minorant : <img src="https://latex.codecogs.com/png.latex?1%20-%20%5Cfrac%7B356%7D%7B1600%7D%20=%201%20-%200,2225%20=%200,7775"> On a donc : <img src="https://latex.codecogs.com/png.latex?P(60%20%3C%20T%20%3C%20140)%20%5Cgeqslant0,7775"> Puisque <img src="https://latex.codecogs.com/png.latex?0,7775%20%3E%200,77">, on a bien montré que la probabilité que le temps total d’attente soit strictement compris entre 60 et 140 minutes est supérieure à 0,77.</p></li>
</ol>
</section>
</section>
<section id="corrigé-de-lexercice-2" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-2">Corrigé de l’exercice 2</h2>
<section id="partie-a-1" class="level4">
<h4 class="anchored" data-anchor-id="partie-a-1">Partie A</h4>
<ol type="1">
<li><p><strong>Montrer que les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'"> sont sécantes au point <img src="https://latex.codecogs.com/png.latex?S(-%5Cfrac%7B1%7D%7B2%7D%20%5C,;%5C,%201%20%5C,;%5C,%204)">.</strong></p>
<p>Pour montrer que les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'"> sont sécantes au point <img src="https://latex.codecogs.com/png.latex?S">, nous devons vérifier deux conditions :</p>
<ul>
<li>Le point <img src="https://latex.codecogs.com/png.latex?S"> appartient à la droite <img src="https://latex.codecogs.com/png.latex?d">.</li>
<li>Le point <img src="https://latex.codecogs.com/png.latex?S"> appartient à la droite <img src="https://latex.codecogs.com/png.latex?d'">.</li>
<li>Les droites ne sont pas parallèles.</li>
</ul>
<p><strong>Vérifions si <img src="https://latex.codecogs.com/png.latex?S"> appartient à <img src="https://latex.codecogs.com/png.latex?d"> :</strong></p>
<p>On remplace les coordonnées de <img src="https://latex.codecogs.com/png.latex?S"> dans la représentation paramétrique de <img src="https://latex.codecogs.com/png.latex?d"> et on vérifie s’il existe une valeur unique du paramètre <img src="https://latex.codecogs.com/png.latex?t">. <img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Bcases%7D%0A-%5Cfrac%7B1%7D%7B2%7D%20=%20%5Cfrac%7B3%7D%7B2%7D%20+%202t%20%5C%5C%0A1%20=%202%20+%20t%20%5C%5C%0A4%20=%203%20-%20t%0A%5Cend%7Bcases%7D%0A%5CLeftrightarrow%0A%5Cbegin%7Bcases%7D%0A2t%20=%20-%5Cfrac%7B1%7D%7B2%7D%20-%20%5Cfrac%7B3%7D%7B2%7D%20=%20-2%20%5C%5C%0At%20=%201%20-%202%20=%20-1%20%5C%5C%0At%20=%203%20-%204%20=%20-1%0A%5Cend%7Bcases%7D%0A%5CLeftrightarrow%0A%5Cbegin%7Bcases%7D%0At%20=%20-1%20%5C%5C%0At%20=%20-1%20%5C%5C%0At%20=%20-1%0A%5Cend%7Bcases%7D%0A"> Le système a une solution unique <img src="https://latex.codecogs.com/png.latex?t=-1">. Le point <img src="https://latex.codecogs.com/png.latex?S"> appartient donc à la droite <img src="https://latex.codecogs.com/png.latex?d">.</p>
<p><strong>Vérifions si <img src="https://latex.codecogs.com/png.latex?S"> appartient à <img src="https://latex.codecogs.com/png.latex?d'"> :</strong></p>
<p>On procède de même avec la représentation paramétrique de <img src="https://latex.codecogs.com/png.latex?d'">. <img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Bcases%7D%0A-%5Cfrac%7B1%7D%7B2%7D%20=%20s%20%5C%5C%0A1%20=%20%5Cfrac%7B3%7D%7B2%7D%20+%20s%20%5C%5C%0A4%20=%203%20-%202s%0A%5Cend%7Bcases%7D%0A%5CLeftrightarrow%0A%5Cbegin%7Bcases%7D%0As%20=%20-%5Cfrac%7B1%7D%7B2%7D%20%5C%5C%0As%20=%201%20-%20%5Cfrac%7B3%7D%7B2%7D%20=%20-%5Cfrac%7B1%7D%7B2%7D%20%5C%5C%0A2s%20=%203%20-%204%20=%20-1%20%5CRightarrow%20s%20=%20-%5Cfrac%7B1%7D%7B2%7D%0A%5Cend%7Bcases%7D%0A"> Le système a une solution unique <img src="https://latex.codecogs.com/png.latex?s=-%5Cfrac%7B1%7D%7B2%7D">. Le point <img src="https://latex.codecogs.com/png.latex?S"> appartient donc à la droite <img src="https://latex.codecogs.com/png.latex?d'">.</p>
<p><strong>Vérifions si les droites sont parallèles :</strong></p>
<p>Un vecteur directeur de <img src="https://latex.codecogs.com/png.latex?d"> est <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D(2%20%5C,;%5C,%201%20%5C,;%5C,%20-1)">.</p>
<p>Un vecteur directeur de <img src="https://latex.codecogs.com/png.latex?d'"> est <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bv%7D(1%20%5C,;%5C,%201%20%5C,;%5C,%20-2)">.</p>
<p>Les coordonnées de ces vecteurs ne sont pas proportionnelles (par exemple, <img src="https://latex.codecogs.com/png.latex?2/1%20=%202"> mais <img src="https://latex.codecogs.com/png.latex?1/1%20=%201">). Les vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bv%7D"> ne sont donc pas colinéaires. Par conséquent, les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'"> ne sont pas parallèles.</p>
<p>Puisque les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'"> ne sont pas parallèles et ont un point commun <img src="https://latex.codecogs.com/png.latex?S">, elles sont sécantes en <img src="https://latex.codecogs.com/png.latex?S">.</p></li>
<li><p><strong>Étude du plan (ABC).</strong></p>
<ol type="a">
<li><strong>Montrer que le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D(1%20%5C,;%5C,%202%20%5C,;%5C,%204)"> est un vecteur normal au plan (ABC).</strong></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Vecteur normal à un plan
</div>
</div>
<div class="callout-body-container callout-body">
<p>Un vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> est normal à un plan <img src="https://latex.codecogs.com/png.latex?(P)"> s’il est orthogonal à deux vecteurs non colinéaires de ce plan. On utilise le produit scalaire pour vérifier l’orthogonalité.</p>
</div>
</div>
<p>On considère les points <img src="https://latex.codecogs.com/png.latex?A(-1%20%5C,;%5C,%202%20%5C,;%5C,%201)">, <img src="https://latex.codecogs.com/png.latex?B(1%20%5C,;%5C,%20-1%20%5C,;%5C,%202)"> et <img src="https://latex.codecogs.com/png.latex?C(1%20%5C,;%5C,%201%20%5C,;%5C,%201)">.</p>
<p>On calcule les coordonnées des vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAC%7D"> :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D(1%20-%20(-1)%20%5C,;%5C,%20-1%20-%202%20%5C,;%5C,%202%20-%201)">, soit <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D(2%20%5C,;%5C,%20-3%20%5C,;%5C,%201)">.</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAC%7D(1%20-%20(-1)%20%5C,;%5C,%201%20-%202%20%5C,;%5C,%201%20-%201)">, soit <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAC%7D(2%20%5C,;%5C,%20-1%20%5C,;%5C,%200)">.</p>
<p>Les coordonnées de <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAC%7D"> ne sont pas proportionnelles, les vecteurs ne sont donc pas colinéaires et définissent bien le plan (ABC).</p>
<p>Calculons les produits scalaires de <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> avec ces deux vecteurs :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D%20%5Ccdot%20%5Coverrightarrow%7BAB%7D%20=%201%20%5Ctimes%202%20+%202%20%5Ctimes%20(-3)%20+%204%20%5Ctimes%201%20=%202%20-%206%20+%204%20=%200">.</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D%20%5Ccdot%20%5Coverrightarrow%7BAC%7D%20=%201%20%5Ctimes%202%20+%202%20%5Ctimes%20(-1)%20+%204%20%5Ctimes%200%20=%202%20-%202%20+%200%20=%200">.</p>
<p>Le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> est orthogonal à deux vecteurs non colinéaires du plan (ABC), il est donc bien un vecteur normal à ce plan.</p>
<ol start="2" type="a">
<li><strong>En déduire qu’une équation cartésienne du plan (ABC) est : <img src="https://latex.codecogs.com/png.latex?x%20+%202y%20+%204z%20-%207%20=%200">.</strong></li>
</ol>
<p>Puisque <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D(1%20%5C,;%5C,%202%20%5C,;%5C,%204)"> est un vecteur normal au plan (ABC), une équation cartésienne de ce plan est de la forme <img src="https://latex.codecogs.com/png.latex?1x%20+%202y%20+%204z%20+%20d%20=%200">.</p>
<p>Pour déterminer la constante <img src="https://latex.codecogs.com/png.latex?d">, on utilise le fait que le point <img src="https://latex.codecogs.com/png.latex?A(-1%20%5C,;%5C,%202%20%5C,;%5C,%201)"> appartient au plan. Ses coordonnées doivent vérifier l’équation :</p>
<p><img src="https://latex.codecogs.com/png.latex?(-1)%20+%202(2)%20+%204(1)%20+%20d%20=%200"></p>
<p><img src="https://latex.codecogs.com/png.latex?-1%20+%204%20+%204%20+%20d%20=%200"></p>
<p><img src="https://latex.codecogs.com/png.latex?7%20+%20d%20=%200"></p>
<p><img src="https://latex.codecogs.com/png.latex?d%20=%20-7"></p>
<p>Une équation cartésienne du plan (ABC) est donc bien <img src="https://latex.codecogs.com/png.latex?x%20+%202y%20+%204z%20-%207%20=%200">.</p>
<ol start="3" type="a">
<li><strong>Démontrer que les points A, B, C et S ne sont pas coplanaires.</strong></li>
</ol>
<p>Pour démontrer que les quatre points ne sont pas coplanaires, il suffit de montrer que le point <img src="https://latex.codecogs.com/png.latex?S"> n’appartient pas au plan (ABC).</p>
<p>On utilise les coordonnées de <img src="https://latex.codecogs.com/png.latex?S(-%5Cfrac%7B1%7D%7B2%7D%20%5C,;%5C,%201%20%5C,;%5C,%204)"> et l’équation du plan (ABC).</p>
<p><img src="https://latex.codecogs.com/png.latex?x_S%20+%202y_S%20+%204z_S%20-%207%20=%20(-%5Cfrac%7B1%7D%7B2%7D)%20+%202(1)%20+%204(4)%20-%207"></p>
<p><img src="https://latex.codecogs.com/png.latex?=%20-0,5%20+%202%20+%2016%20-%207"></p>
<p><img src="https://latex.codecogs.com/png.latex?=%2010,5"></p>
<p>Comme <img src="https://latex.codecogs.com/png.latex?10,5%20%5Cneq%200">, les coordonnées de <img src="https://latex.codecogs.com/png.latex?S"> ne vérifient pas l’équation du plan (ABC). Le point <img src="https://latex.codecogs.com/png.latex?S"> n’appartient donc pas à ce plan.</p>
<p>Par conséquent, les points A, B, C et S ne sont pas coplanaires.</p></li>
<li><p><strong>Projection orthogonale.</strong></p>
<ol type="a">
<li><strong>Démontrer que le point <img src="https://latex.codecogs.com/png.latex?H(-1%20%5C,;%5C,%200%20%5C,;%5C,%202)"> est le projeté orthogonal de <img src="https://latex.codecogs.com/png.latex?S"> sur le plan (ABC).</strong></li>
</ol>
<p>Pour que <img src="https://latex.codecogs.com/png.latex?H"> soit le projeté orthogonal de <img src="https://latex.codecogs.com/png.latex?S"> sur le plan (ABC), deux conditions doivent être réunies :</p>
<ol type="1">
<li>Le point <img src="https://latex.codecogs.com/png.latex?H"> doit appartenir au plan (ABC).</li>
<li>Le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BSH%7D"> doit être colinéaire au vecteur normal <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> du plan.</li>
</ol>
<p><strong>Condition 1 :</strong></p>
<p>Vérifions si les coordonnées de <img src="https://latex.codecogs.com/png.latex?H(-1%20%5C,;%5C,%200%20%5C,;%5C,%202)"> satisfont l’équation du plan (ABC) :</p>
<p><img src="https://latex.codecogs.com/png.latex?x_H%20+%202y_H%20+%204z_H%20-%207%20=%20(-1)%20+%202(0)%20+%204(2)%20-%207%20=%20-1%20+%200%20+%208%20-%207%20=%200">.</p>
<p>Le point <img src="https://latex.codecogs.com/png.latex?H"> appartient bien au plan (ABC).</p>
<p><strong>Condition 2 :</strong></p>
<p>Calculons les coordonnées du vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BSH%7D"> avec <img src="https://latex.codecogs.com/png.latex?S(-%5Cfrac%7B1%7D%7B2%7D%20%5C,;%5C,%201%20%5C,;%5C,%204)"> :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BSH%7D(-1%20-%20(-%5Cfrac%7B1%7D%7B2%7D)%20%5C,;%5C,%200%20-%201%20%5C,;%5C,%202%20-%204)">, soit <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BSH%7D(-%5Cfrac%7B1%7D%7B2%7D%20%5C,;%5C,%20-1%20%5C,;%5C,%20-2)">.</p>
<p>Le vecteur normal est <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D(1%20%5C,;%5C,%202%20%5C,;%5C,%204)">.</p>
<p>On observe que <img src="https://latex.codecogs.com/png.latex?1%20=%20-2%20%5Ctimes%20(-%5Cfrac%7B1%7D%7B2%7D)">, <img src="https://latex.codecogs.com/png.latex?2%20=%20-2%20%5Ctimes%20(-1)"> et <img src="https://latex.codecogs.com/png.latex?4%20=%20-2%20%5Ctimes%20(-2)">.</p>
<p>On a donc <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D%20=%20-2%20%5Coverrightarrow%7BSH%7D">, ce qui montre que les vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BSH%7D"> sont colinéaires.</p>
<p>Les deux conditions étant vérifiées, le point <img src="https://latex.codecogs.com/png.latex?H"> est bien le projeté orthogonal de <img src="https://latex.codecogs.com/png.latex?S"> sur le plan (ABC).</p>
<ol start="2" type="a">
<li><strong>En déduire qu’il n’existe aucun point <img src="https://latex.codecogs.com/png.latex?M"> du plan (ABC) tel que <img src="https://latex.codecogs.com/png.latex?SM%20%3C%20%5Cfrac%7B%5Csqrt%7B21%7D%7D%7B2%7D">.</strong></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Distance d’un point à un plan
</div>
</div>
<div class="callout-body-container callout-body">
<p>La distance d’un point <img src="https://latex.codecogs.com/png.latex?S"> à un plan <img src="https://latex.codecogs.com/png.latex?(P)"> est la plus courte distance entre <img src="https://latex.codecogs.com/png.latex?S"> et n’importe quel point <img src="https://latex.codecogs.com/png.latex?M"> de <img src="https://latex.codecogs.com/png.latex?(P)">. Cette distance minimale est atteinte au projeté orthogonal <img src="https://latex.codecogs.com/png.latex?H"> de <img src="https://latex.codecogs.com/png.latex?S"> sur <img src="https://latex.codecogs.com/png.latex?(P)">. On a donc <img src="https://latex.codecogs.com/png.latex?d(S,%20(P))%20=%20SH"> et pour tout point <img src="https://latex.codecogs.com/png.latex?M%20%5Cin%20(P)">, <img src="https://latex.codecogs.com/png.latex?SM%20%5Cgeqslant%20SH">.</p>
</div>
</div>
<p>La distance du point <img src="https://latex.codecogs.com/png.latex?S"> au plan (ABC) est la distance <img src="https://latex.codecogs.com/png.latex?SH">. Calculons cette distance :</p>
<p><img src="https://latex.codecogs.com/png.latex?SH%20=%20%7C%7C%5Coverrightarrow%7BSH%7D%7C%7C%20=%20%5Csqrt%7B(-%5Cfrac%7B1%7D%7B2%7D)%5E2%20+%20(-1)%5E2%20+%20(-2)%5E2%7D"></p>
<p><img src="https://latex.codecogs.com/png.latex?SH%20=%20%5Csqrt%7B%5Cfrac%7B1%7D%7B4%7D%20+%201%20+%204%7D%20=%20%5Csqrt%7B%5Cfrac%7B1%7D%7B4%7D%20+%20%5Cfrac%7B4%7D%7B4%7D%20+%20%5Cfrac%7B16%7D%7B4%7D%7D%20=%20%5Csqrt%7B%5Cfrac%7B21%7D%7B4%7D%7D%20=%20%5Cfrac%7B%5Csqrt%7B21%7D%7D%7B2%7D">.</p>
<p>Pour tout point <img src="https://latex.codecogs.com/png.latex?M"> appartenant au plan (ABC), la distance <img src="https://latex.codecogs.com/png.latex?SM"> est supérieure ou égale à la distance du point <img src="https://latex.codecogs.com/png.latex?S"> au plan, c’est-à-dire <img src="https://latex.codecogs.com/png.latex?SM%20%5Cgeqslant%20SH">.</p>
<p>On a donc pour tout point <img src="https://latex.codecogs.com/png.latex?M"> du plan (ABC), <img src="https://latex.codecogs.com/png.latex?SM%20%5Cgeqslant%20%5Cfrac%7B%5Csqrt%7B21%7D%7D%7B2%7D">.</p>
<p>Il n’existe par conséquent aucun point <img src="https://latex.codecogs.com/png.latex?M"> du plan (ABC) pour lequel la distance <img src="https://latex.codecogs.com/png.latex?SM"> serait strictement inférieure à <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B%5Csqrt%7B21%7D%7D%7B2%7D">.</p></li>
</ol>
</section>
<section id="partie-b-1" class="level4">
<h4 class="anchored" data-anchor-id="partie-b-1">Partie B</h4>
<ol type="1">
<li><p><strong>Déterminer les coordonnées du point <img src="https://latex.codecogs.com/png.latex?M"> en fonction de <img src="https://latex.codecogs.com/png.latex?k">.</strong></p>
<p>Le point <img src="https://latex.codecogs.com/png.latex?M"> est défini par la relation vectorielle <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCM%7D%20=%20k%20%5Coverrightarrow%7BCS%7D"> avec <img src="https://latex.codecogs.com/png.latex?M(x_M,%20y_M,%20z_M)">, <img src="https://latex.codecogs.com/png.latex?C(1,1,1)"> et <img src="https://latex.codecogs.com/png.latex?S(-%5Cfrac%7B1%7D%7B2%7D,1,4)">.</p>
<p>Calculons les coordonnées du vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCS%7D"> :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCS%7D(-%5Cfrac%7B1%7D%7B2%7D%20-%201%20%5C,;%5C,%201%20-%201%20%5C,;%5C,%204%20-%201)">, soit <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCS%7D(-%5Cfrac%7B3%7D%7B2%7D%20%5C,;%5C,%200%20%5C,;%5C,%203)">.</p>
<p>La relation <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCM%7D%20=%20k%20%5Coverrightarrow%7BCS%7D"> se traduit en coordonnées :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cbegin%7Bcases%7D%0Ax_M%20-%20x_C%20=%20k%20%5Ctimes%20(-%5Cfrac%7B3%7D%7B2%7D)%20%5C%5C%0Ay_M%20-%20y_C%20=%20k%20%5Ctimes%200%20%5C%5C%0Az_M%20-%20z_C%20=%20k%20%5Ctimes%203%0A%5Cend%7Bcases%7D%0A%5CLeftrightarrow%0A%5Cbegin%7Bcases%7D%0Ax_M%20-%201%20=%20-%5Cfrac%7B3%7D%7B2%7Dk%20%5C%5C%0Ay_M%20-%201%20=%200%20%5C%5C%0Az_M%20-%201%20=%203k%0A%5Cend%7Bcases%7D%0A%5CLeftrightarrow%0A%5Cbegin%7Bcases%7D%0Ax_M%20=%201%20-%20%5Cfrac%7B3%7D%7B2%7Dk%20%5C%5C%0Ay_M%20=%201%20%5C%5C%0Az_M%20=%201%20+%203k%0A%5Cend%7Bcases%7D"></p>
<p>Les coordonnées de <img src="https://latex.codecogs.com/png.latex?M"> sont donc <img src="https://latex.codecogs.com/png.latex?(1%20-%20%5Cfrac%7B3%7D%7B2%7Dk%20%5C,;%5C,%201%20%5C,;%5C,%201%20+%203k)">.</p></li>
<li><p><strong>Existe-t-il un point <img src="https://latex.codecogs.com/png.latex?M"> sur le segment <img src="https://latex.codecogs.com/png.latex?%5BCS%5D"> tel que le triangle <img src="https://latex.codecogs.com/png.latex?MAB"> soit rectangle en <img src="https://latex.codecogs.com/png.latex?M"> ?</strong></p>
<p>Le triangle <img src="https://latex.codecogs.com/png.latex?MAB"> est rectangle en <img src="https://latex.codecogs.com/png.latex?M"> si et seulement si les vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMA%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMB%7D"> sont orthogonaux, c’est-à-dire si leur produit scalaire est nul : <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMA%7D%20%5Ccdot%20%5Coverrightarrow%7BMB%7D%20=%200">.</p>
<p>Exprimons les coordonnées des vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMA%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMB%7D"> en fonction de <img src="https://latex.codecogs.com/png.latex?k"> :</p>
<p><img src="https://latex.codecogs.com/png.latex?A(-1,%202,%201)"> et <img src="https://latex.codecogs.com/png.latex?B(1,%20-1,%202)">.</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMA%7D(x_A%20-%20x_M%20%5C,;%5C,%20y_A%20-%20y_M%20%5C,;%5C,%20z_A%20-%20z_M)"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMA%7D(-1%20-%20(1%20-%20%5Cfrac%7B3%7D%7B2%7Dk)%20%5C,;%5C,%202%20-%201%20%5C,;%5C,%201%20-%20(1%20+%203k))%20=%20(-2%20+%20%5Cfrac%7B3%7D%7B2%7Dk%20%5C,;%5C,%201%20%5C,;%5C,%20-3k)">.</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMB%7D(x_B%20-%20x_M%20%5C,;%5C,%20y_B%20-%20y_M%20%5C,;%5C,%20z_B%20-%20z_M)"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMB%7D(1%20-%20(1%20-%20%5Cfrac%7B3%7D%7B2%7Dk)%20%5C,;%5C,%20-1%20-%201%20%5C,;%5C,%202%20-%20(1%20+%203k))%20=%20(%5Cfrac%7B3%7D%7B2%7Dk%20%5C,;%5C,%20-2%20%5C,;%5C,%201%20-%203k)">.</p>
<p>Calculons le produit scalaire :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BMA%7D%20%5Ccdot%20%5Coverrightarrow%7BMB%7D%20=%20(-2%20+%20%5Cfrac%7B3%7D%7B2%7Dk)(%5Cfrac%7B3%7D%7B2%7Dk)%20+%20(1)(-2)%20+%20(-3k)(1%20-%203k)"></p>
<p><img src="https://latex.codecogs.com/png.latex?=%20-3k%20+%20%5Cfrac%7B9%7D%7B4%7Dk%5E2%20-%202%20-%203k%20+%209k%5E2"></p>
<p><img src="https://latex.codecogs.com/png.latex?=%20%5Cfrac%7B9%7D%7B4%7Dk%5E2%20+%20%5Cfrac%7B36%7D%7B4%7Dk%5E2%20-%206k%20-%202"></p>
<p><img src="https://latex.codecogs.com/png.latex?=%20%5Cfrac%7B45%7D%7B4%7Dk%5E2%20-%206k%20-%202"></p>
<p>On résout l’équation <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B45%7D%7B4%7Dk%5E2%20-%206k%20-%202%20=%200">.</p>
<p>C’est une équation du second degré de la forme <img src="https://latex.codecogs.com/png.latex?ak%5E2+bk+c=0">.</p>
<p>Le discriminant est <img src="https://latex.codecogs.com/png.latex?%5CDelta%20=%20b%5E2%20-%204ac%20=%20(-6)%5E2%20-%204(%5Cfrac%7B45%7D%7B4%7D)(-2)%20=%2036%20+%2090%20=%20126">.</p>
<p><img src="https://latex.codecogs.com/png.latex?%5CDelta%20%3E%200">, l’équation a deux solutions réelles :</p>
<p><img src="https://latex.codecogs.com/png.latex?k_1%20=%20%5Cfrac%7B-b%20-%20%5Csqrt%7B%5CDelta%7D%7D%7B2a%7D%20=%20%5Cfrac%7B6%20-%20%5Csqrt%7B126%7D%7D%7B2%20%5Ctimes%20%5Cfrac%7B45%7D%7B4%7D%7D%20=%20%5Cfrac%7B6%20-%20%5Csqrt%7B9%20%5Ctimes%2014%7D%7D%7B45/2%7D%20=%20%5Cfrac%7B6%20-%203%5Csqrt%7B14%7D%7D%7B45/2%7D%20=%20%5Cfrac%7B2(6%20-%203%5Csqrt%7B14%7D)%7D%7B45%7D%20=%20%5Cfrac%7B12%20-%206%5Csqrt%7B14%7D%7D%7B45%7D%20=%20%5Cfrac%7B4%20-%202%5Csqrt%7B14%7D%7D%7B15%7D">.</p>
<p><img src="https://latex.codecogs.com/png.latex?k_2%20=%20%5Cfrac%7B-b%20+%20%5Csqrt%7B%5CDelta%7D%7D%7B2a%7D%20=%20%5Cfrac%7B6%20+%20%5Csqrt%7B126%7D%7D%7B45/2%7D%20=%20%5Cfrac%7B6%20+%203%5Csqrt%7B14%7D%7D%7B45/2%7D%20=%20%5Cfrac%7B12%20+%206%5Csqrt%7B14%7D%7D%7B45%7D%20=%20%5Cfrac%7B4%20+%202%5Csqrt%7B14%7D%7D%7B15%7D">.</p>
<p>Le point <img src="https://latex.codecogs.com/png.latex?M"> doit appartenir au segment <img src="https://latex.codecogs.com/png.latex?%5BCS%5D">, ce qui impose que le réel <img src="https://latex.codecogs.com/png.latex?k"> appartienne à l’intervalle <img src="https://latex.codecogs.com/png.latex?%5B0%20%5C,;%5C,%201%5D">.</p>
<ul>
<li><p>Étudions <img src="https://latex.codecogs.com/png.latex?k_1">:</p>
<p>On sait que <img src="https://latex.codecogs.com/png.latex?3%20%3C%20%5Csqrt%7B14%7D%20%3C%204">, donc <img src="https://latex.codecogs.com/png.latex?6%20%3C%202%5Csqrt%7B14%7D%20%3C%208">.</p>
<p>Ainsi, <img src="https://latex.codecogs.com/png.latex?4%20-%202%5Csqrt%7B14%7D%20%3C%204%20-%206%20=%20-2">. Le numérateur est négatif, donc <img src="https://latex.codecogs.com/png.latex?k_1%20%3C%200">. Cette solution n’est pas dans <img src="https://latex.codecogs.com/png.latex?%5B0%20%5C,;%5C,%201%5D">.</p></li>
<li><p>Étudions <img src="https://latex.codecogs.com/png.latex?k_2">:</p>
<p><img src="https://latex.codecogs.com/png.latex?k_2"> est clairement positif. Vérifions si <img src="https://latex.codecogs.com/png.latex?k_2%20%5Cleqslant%201">.</p>
<p><img src="https://latex.codecogs.com/png.latex?k_2%20%5Cleqslant%201%20%5CLeftrightarrow%20%5Cfrac%7B4%20+%202%5Csqrt%7B14%7D%7D%7B15%7D%20%5Cleqslant%201%20%5CLeftrightarrow%204%20+%202%5Csqrt%7B14%7D%20%5Cleqslant%2015%20%5CLeftrightarrow%202%5Csqrt%7B14%7D%20%5Cleqslant%2011">.</p>
<p>Comme les deux membres sont positifs, on peut élever au carré :</p>
<p><img src="https://latex.codecogs.com/png.latex?(2%5Csqrt%7B14%7D)%5E2%20%5Cleqslant%2011%5E2%20%5CLeftrightarrow%204%20%5Ctimes%2014%20%5Cleqslant%20121%20%5CLeftrightarrow%2056%20%5Cleqslant%20121">.</p>
<p>Cette inégalité est vraie. On a donc <img src="https://latex.codecogs.com/png.latex?0%20%3C%20k_2%20%5Cleqslant%201">.</p></li>
</ul>
<p>Il existe une unique valeur <img src="https://latex.codecogs.com/png.latex?k%20=%20%5Cfrac%7B4%20+%202%5Csqrt%7B14%7D%7D%7B15%7D"> dans l’intervalle <img src="https://latex.codecogs.com/png.latex?%5B0%20%5C,;%5C,%201%5D"> pour laquelle le triangle <img src="https://latex.codecogs.com/png.latex?MAB"> est rectangle en <img src="https://latex.codecogs.com/png.latex?M">.</p>
<p>Par conséquent, oui, il existe un tel point <img src="https://latex.codecogs.com/png.latex?M"> sur le segment <img src="https://latex.codecogs.com/png.latex?%5BCS%5D">.</p></li>
</ol>
</section>
</section>
<section id="corrigé-de-lexercice-3" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-3">Corrigé de l’exercice 3</h2>
<p>Cet exercice est de type vrai/faux où chaque affirmation doit être validée ou invalidée par une justification.</p>
<ol type="1">
<li><p><strong>Affirmation 1 : La suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> définie pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n"> par <img src="https://latex.codecogs.com/png.latex?u_n%20=%20%5Cfrac%7B1+5%5En%7D%7B2+3%5En%7D"> converge vers <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B5%7D%7B3%7D">.</strong></p>
<p><strong>FAUSSE</strong></p>
<p><strong>Justification :</strong> Nous cherchons la limite de la suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> en <img src="https://latex.codecogs.com/png.latex?+%5Cinfty">. Nous sommes face à une forme indéterminée du type « <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B%5Cinfty%7D%7B%5Cinfty%7D"> ». Dans le cas de sommes de termes avec des puissances de <img src="https://latex.codecogs.com/png.latex?n">, la méthode consiste à factoriser par le terme qui croît le plus rapidement (le terme dominant). Ici, le terme dominant est <img src="https://latex.codecogs.com/png.latex?5%5En"> car <img src="https://latex.codecogs.com/png.latex?5%20%3E%203">.</p>
<p>On factorise donc le numérateur et le dénominateur par <img src="https://latex.codecogs.com/png.latex?5%5En"> : <img src="https://latex.codecogs.com/png.latex?u_n%20=%20%5Cfrac%7B5%5En%20%5Cleft(%20%5Cfrac%7B1%7D%7B5%5En%7D%20+%201%20%5Cright)%7D%7B5%5En%20%5Cleft(%20%5Cfrac%7B2%7D%7B5%5En%7D%20+%20%5Cfrac%7B3%5En%7D%7B5%5En%7D%20%5Cright)%7D"> Pour tout <img src="https://latex.codecogs.com/png.latex?n%20%5Cin%20%5Cmathbb%7BN%7D">, <img src="https://latex.codecogs.com/png.latex?5%5En%20%5Cneq%200">, on peut donc simplifier : <img src="https://latex.codecogs.com/png.latex?u_n%20=%20%5Cfrac%7B%5Cfrac%7B1%7D%7B5%5En%7D%20+%201%7D%7B%5Cfrac%7B2%7D%7B5%5En%7D%20+%20%5Cleft(%5Cfrac%7B3%7D%7B5%7D%5Cright)%5En%7D"></p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Limite d’une suite géométrique
</div>
</div>
<div class="callout-body-container callout-body">
<p>La limite de la suite <img src="https://latex.codecogs.com/png.latex?(q%5En)"> dépend de la valeur de la raison <img src="https://latex.codecogs.com/png.latex?q"> :</p>
<ul>
<li>Si <img src="https://latex.codecogs.com/png.latex?-1%20%3C%20q%20%3C%201">, alors <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20q%5En%20=%200">.</li>
<li>Si <img src="https://latex.codecogs.com/png.latex?q%20%3E%201">, alors <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20q%5En%20=%20+%5Cinfty">.</li>
</ul>
</div>
</div>
<p>Étudions la limite de chaque terme :</p>
<ul>
<li>On a <img src="https://latex.codecogs.com/png.latex?5%3E1">, donc <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%205%5En%20=%20+%5Cinfty">, et par conséquent <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20%5Cfrac%7B1%7D%7B5%5En%7D%20=%200">.</li>
<li>De même, <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20%5Cfrac%7B2%7D%7B5%5En%7D%20=%200">.</li>
<li>Pour le terme <img src="https://latex.codecogs.com/png.latex?%5Cleft(%5Cfrac%7B3%7D%7B5%7D%5Cright)%5En">, la raison est <img src="https://latex.codecogs.com/png.latex?q%20=%20%5Cfrac%7B3%7D%7B5%7D">.</li>
</ul>
<p>Comme <img src="https://latex.codecogs.com/png.latex?-1%20%3C%20%5Cfrac%7B3%7D%7B5%7D%20%3C%201">, on a <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20%5Cleft(%5Cfrac%7B3%7D%7B5%7D%5Cright)%5En%20=%200">.</p>
<p>On peut maintenant calculer la limite du numérateur et du dénominateur par somme des limites :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20%5Cleft(%5Cfrac%7B1%7D%7B5%5En%7D%20+%201%5Cright)%20=%200%20+%201%20=%201">.</li>
<li><img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20%5Cleft(%5Cfrac%7B2%7D%7B5%5En%7D%20+%20%5Cleft(%5Cfrac%7B3%7D%7B5%7D%5Cright)%5En%5Cright)%20=%200%20+%200%20=%200">.</li>
</ul>
<p>Le quotient a donc une limite infinie. Pour déterminer s’il s’agit de <img src="https://latex.codecogs.com/png.latex?+%5Cinfty"> ou <img src="https://latex.codecogs.com/png.latex?-%5Cinfty">, il faut connaître le signe du dénominateur. Pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n">, <img src="https://latex.codecogs.com/png.latex?5%5En%20%3E%200"> et <img src="https://latex.codecogs.com/png.latex?3%5En%20%3E%200">, donc le dénominateur <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B2%7D%7B5%5En%7D%20+%20(%5Cfrac%7B3%7D%7B5%7D)%5En"> est une somme de termes strictement positifs. Il tend donc vers 0 par valeurs positives (<img src="https://latex.codecogs.com/png.latex?0%5E+">).</p>
<p>Finalement, par quotient des limites : <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bn%20%5Cto%20+%5Cinfty%7D%20u_n%20=%20+%5Cinfty"></p>
<p>La suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> diverge vers <img src="https://latex.codecogs.com/png.latex?+%5Cinfty">, elle ne converge donc pas vers <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B5%7D%7B3%7D">. L’affirmation est fausse.</p></li>
<li><p><strong>Affirmation 2 : On considère la suite <img src="https://latex.codecogs.com/png.latex?(w_n)"> définie par <img src="https://latex.codecogs.com/png.latex?w_0=0"> et, pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n">, <img src="https://latex.codecogs.com/png.latex?w_%7Bn+1%7D%20=%203w_n%20-%202n%20+%203">. Pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n">, on a <img src="https://latex.codecogs.com/png.latex?w_n%20%5Cgeqslant%20n">.</strong></p>
<p><strong>VRAIE</strong></p>
<p><strong>Justification :</strong></p>
<p>Nous allons démontrer cette propriété par récurrence. Soit <img src="https://latex.codecogs.com/png.latex?P(n)"> la proposition : « <img src="https://latex.codecogs.com/png.latex?w_n%20%5Cgeqslant%20n"> ».</p>
<ul>
<li><p><strong>Initialisation :</strong></p>
<p>Pour <img src="https://latex.codecogs.com/png.latex?n=0">, on a <img src="https://latex.codecogs.com/png.latex?w_0=0">. La proposition <img src="https://latex.codecogs.com/png.latex?P(0)"> est <img src="https://latex.codecogs.com/png.latex?w_0%20%5Cgeqslant%200">, soit <img src="https://latex.codecogs.com/png.latex?0%20%5Cgeqslant%200">, ce qui est vrai. <img src="https://latex.codecogs.com/png.latex?P(0)"> est initialisée.</p></li>
<li><p><strong>Hérédité :</strong></p>
<p>Supposons qu’il existe un entier <img src="https://latex.codecogs.com/png.latex?k%20%5Cgeqslant%200"> tel que <img src="https://latex.codecogs.com/png.latex?P(k)"> est vraie, c’est-à-dire <img src="https://latex.codecogs.com/png.latex?w_k%20%5Cgeqslant%20k"> (hypothèse de récurrence).</p>
<p>Montrons que <img src="https://latex.codecogs.com/png.latex?P(k+1)"> est vraie, c’est-à-dire <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D%20%5Cgeqslant%20k+1">.</p>
<p>Par définition de la suite, <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D%20=%203w_k%20-%202k%20+%203">.</p>
<p>D’après l’hypothèse de récurrence, <img src="https://latex.codecogs.com/png.latex?w_k%20%5Cgeqslant%20k">, donc <img src="https://latex.codecogs.com/png.latex?3w_k%20%5Cgeqslant%203k">.</p>
<p>En injectant cette inégalité dans l’expression de <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D">, on obtient : <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D%20%5Cgeqslant%203k%20-%202k%20+%203"> <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D%20%5Cgeqslant%20k%20+%203"> Nous voulons montrer que <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D%20%5Cgeqslant%20k+1">. Or, pour tout entier <img src="https://latex.codecogs.com/png.latex?k%20%5Cgeqslant%200">, on a <img src="https://latex.codecogs.com/png.latex?k+3%20%5Cgeqslant%20k+1">.</p>
<p>Puisque <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D%20%5Cgeqslant%20k+3"> et que <img src="https://latex.codecogs.com/png.latex?k+3%20%5Cgeqslant%20k+1">, on peut conclure par transitivité que : <img src="https://latex.codecogs.com/png.latex?w_%7Bk+1%7D%20%5Cgeqslant%20k+1"> La proposition <img src="https://latex.codecogs.com/png.latex?P(k+1)"> est donc vraie.</p></li>
<li><p><strong>Conclusion :</strong> La proposition est initialisée pour <img src="https://latex.codecogs.com/png.latex?n=0"> et est héréditaire. Par le principe de récurrence, on peut affirmer que pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n">, <img src="https://latex.codecogs.com/png.latex?w_n%20%5Cgeqslant%20n">.</p></li>
</ul></li>
<li><p><strong>Affirmation 3 : D’après le graphique, la fonction <img src="https://latex.codecogs.com/png.latex?f"> est convexe sur son ensemble de définition.</strong></p>
<p><strong>FAUSSE</strong></p>
<p><strong>Justification :</strong></p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Convexité et position relative de la courbe et des tangentes
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une fonction est dite <strong>convexe</strong> sur un intervalle si sa courbe représentative est située <strong>au-dessus</strong> de chacune de ses tangentes sur cet intervalle. Elle est dite <strong>concave</strong> si sa courbe est située <strong>en dessous</strong> de chacune de ses tangentes.</p>
</div>
</div>
<p>Le graphique (Fig. 1) montre la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> et sa tangente <img src="https://latex.codecogs.com/png.latex?T"> au point A d’abscisse 8.</p>
<p>On observe que, au voisinage du point A, la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> est située <strong>en dessous</strong> de sa tangente <img src="https://latex.codecogs.com/png.latex?T">.</p>
<p>Ceci est la caractéristique d’une fonction concave. Puisqu’il existe au moins une tangente (la tangente <img src="https://latex.codecogs.com/png.latex?T">) telle que la courbe n’est pas entièrement au-dessus d’elle, la fonction <img src="https://latex.codecogs.com/png.latex?f"> n’est pas convexe sur son ensemble de définition <img src="https://latex.codecogs.com/png.latex?%5D0;%20+%5Cinfty%5B">.</p>
<p>L’affirmation est donc fausse.</p></li>
<li><p><strong>Affirmation 4 : Pour tout réel <img src="https://latex.codecogs.com/png.latex?x%20%3E%200">, <img src="https://latex.codecogs.com/png.latex?%5Cln(x)%20-%20x%20+%201%20%5Cleqslant%200">.</strong></p>
<p><strong>VRAIE</strong></p>
<p><strong>Justification :</strong> Pour étudier le signe de l’expression, nous pouvons étudier les variations de la fonction <img src="https://latex.codecogs.com/png.latex?g"> définie sur l’intervalle <img src="https://latex.codecogs.com/png.latex?%5D0;%20+%5Cinfty%5B"> par <img src="https://latex.codecogs.com/png.latex?g(x)%20=%20%5Cln(x)%20-%20x%20+%201">.</p>
<p>La fonction <img src="https://latex.codecogs.com/png.latex?g"> est dérivable sur <img src="https://latex.codecogs.com/png.latex?%5D0;%20+%5Cinfty%5B"> comme somme de fonctions dérivables sur cet intervalle. <img src="https://latex.codecogs.com/png.latex?g'(x)%20=%20%5Cfrac%7B1%7D%7Bx%7D%20-%201"> Étudions le signe de la dérivée <img src="https://latex.codecogs.com/png.latex?g'(x)"> : <img src="https://latex.codecogs.com/png.latex?g'(x)%20%3E%200%20%5CLeftrightarrow%20%5Cfrac%7B1%7D%7Bx%7D%20-%201%20%3E%200%20%5CLeftrightarrow%20%5Cfrac%7B1%7D%7Bx%7D%20%3E%201"> Comme <img src="https://latex.codecogs.com/png.latex?x%20%3E%200">, on peut multiplier par <img src="https://latex.codecogs.com/png.latex?x"> sans changer le sens de l’inégalité : <img src="https://latex.codecogs.com/png.latex?1%20%3E%20x"> Ainsi, <img src="https://latex.codecogs.com/png.latex?g'(x)%20%3E%200"> pour <img src="https://latex.codecogs.com/png.latex?x%20%5Cin%20%5D0,%201%5B"> et <img src="https://latex.codecogs.com/png.latex?g'(x)%20%3C%200"> pour <img src="https://latex.codecogs.com/png.latex?x%20%5Cin%20%5D1,%20+%5Cinfty%5B">. La dérivée s’annule en <img src="https://latex.codecogs.com/png.latex?x=1">.</p>
<p>On peut dresser le tableau de variation de la fonction <img src="https://latex.codecogs.com/png.latex?g"> :</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?x"></th>
<th style="text-align: center;">0</th>
<th style="text-align: center;"></th>
<th style="text-align: center;">1</th>
<th style="text-align: center;"></th>
<th style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?+%5Cinfty"></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?g'(x)"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;">+</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">-</td>
<td style="text-align: center;"></td>
</tr>
<tr class="even">
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?g(x)"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;">↗</td>
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?g(1)"></td>
<td style="text-align: center;">↘</td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
<p>La fonction <img src="https://latex.codecogs.com/png.latex?g"> admet donc un maximum global sur <img src="https://latex.codecogs.com/png.latex?%5D0;%20+%5Cinfty%5B"> atteint en <img src="https://latex.codecogs.com/png.latex?x=1">.</p>
<p>Calculons la valeur de ce maximum :</p>
<p><img src="https://latex.codecogs.com/png.latex?g(1)%20=%20%5Cln(1)%20-%201%20+%201%20=%200%20-%201%20+%201%20=%200"></p>
<p>Le maximum de la fonction <img src="https://latex.codecogs.com/png.latex?g"> sur son ensemble de définition est 0. Par conséquent, pour tout <img src="https://latex.codecogs.com/png.latex?x%20%5Cin%20%5D0;%20+%5Cinfty%5B">, on a <img src="https://latex.codecogs.com/png.latex?g(x)%20%5Cleqslant%20g(1)">, ce qui signifie :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cln(x)%20-%20x%20+%201%20%5Cleqslant%200"></p>
<p>L’affirmation est donc vraie.</p></li>
</ol>
</section>
<section id="corrigé-de-lexercice-4" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-4">Corrigé de l’exercice 4</h2>
<section id="partie-a-étude-graphique" class="level4">
<h4 class="anchored" data-anchor-id="partie-a-étude-graphique">Partie A : Étude graphique</h4>
<p><em>Dans cette partie, aucune justification n’est attendue.</em></p>
<ol type="1">
<li><p>Par lecture graphique, on cherche l’abscisse <img src="https://latex.codecogs.com/png.latex?t"> du point de la courbe <img src="https://latex.codecogs.com/png.latex?C_d"> ayant pour ordonnée 15. On trouve que le chariot aura parcouru 15 m au bout d’environ <strong>2 secondes</strong>.</p></li>
<li><p>La longueur totale de la zone de freinage correspond à la distance maximale parcourue par le chariot, c’est-à-dire à la limite de la fonction <img src="https://latex.codecogs.com/png.latex?d"> en <img src="https://latex.codecogs.com/png.latex?+%5Cinfty">. Graphiquement, cela correspond à l’ordonnée de l’asymptote horizontale <img src="https://latex.codecogs.com/png.latex?%5CDelta"> à la courbe <img src="https://latex.codecogs.com/png.latex?C_d">.</p>
<p>On lit que l’équation de l’asymptote <img src="https://latex.codecogs.com/png.latex?%5CDelta"> est <img src="https://latex.codecogs.com/png.latex?y=22,8">.</p>
<p>La longueur minimale à prévoir pour la zone de freinage est donc de <strong>22,8 mètres</strong>.</p></li>
<li><p>La valeur <img src="https://latex.codecogs.com/png.latex?d'(4,7)"> correspond au coefficient directeur de la tangente à la courbe <img src="https://latex.codecogs.com/png.latex?C_d"> au point <img src="https://latex.codecogs.com/png.latex?A"> d’abscisse <img src="https://latex.codecogs.com/png.latex?t=4,7">. Cette tangente est la droite <img src="https://latex.codecogs.com/png.latex?T"> tracée sur le graphique.</p>
<p>Pour estimer ce coefficient directeur, on choisit deux points sur la droite <img src="https://latex.codecogs.com/png.latex?T">. Prenons le point <img src="https://latex.codecogs.com/png.latex?A(4,7%20%5C,;%5C,%2021)"> et un autre point, par exemple le point de coordonnées approximatives <img src="https://latex.codecogs.com/png.latex?(0%20%5C,;%5C,%2016,3)">.</p>
<p>Le coefficient directeur est : <img src="https://latex.codecogs.com/png.latex?m%20=%20%5Cfrac%7By_B%20-%20y_A%7D%7Bx_B%20-%20x_A%7D%20%5Capprox%20%5Cfrac%7B21%20-%2016,3%7D%7B4,7%20-%200%7D%20=%20%5Cfrac%7B4,7%7D%7B4,7%7D%20=%201"> On peut arrondir la valeur à <strong><img src="https://latex.codecogs.com/png.latex?d'(4,7)%20%5Capprox%201"></strong>.</p>
<p><strong>Interprétation :</strong> La fonction dérivée <img src="https://latex.codecogs.com/png.latex?d'(t)"> représente la vitesse instantanée du chariot, notée <img src="https://latex.codecogs.com/png.latex?v(t)">. Ainsi, à l’instant <img src="https://latex.codecogs.com/png.latex?t=4,7"> secondes, la vitesse du chariot est d’environ <strong>1 m/s</strong>.</p></li>
</ol>
</section>
<section id="partie-b-étude-de-la-vitesse" class="level4">
<h4 class="anchored" data-anchor-id="partie-b-étude-de-la-vitesse">Partie B : Étude de la vitesse</h4>
<ol type="1">
<li><ol type="a">
<li><p><strong>Résolution de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?(E')%20:%20y'%20+%200,6y%20=%200">.</strong></p>
<p>Cette équation est de la forme <img src="https://latex.codecogs.com/png.latex?y'%20=%20ay"> avec <img src="https://latex.codecogs.com/png.latex?a%20=%20-0,6">.</p></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Équation différentielle <img src="https://latex.codecogs.com/png.latex?y'%20=%20ay">
</div>
</div>
<div class="callout-body-container callout-body">
<p>Les solutions de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?y'%20=%20ay">, où <img src="https://latex.codecogs.com/png.latex?a"> est un réel, sont les fonctions définies sur <img src="https://latex.codecogs.com/png.latex?%5Cmathbb%7BR%7D"> par <img src="https://latex.codecogs.com/png.latex?t%20%5Cmapsto%20Ce%5E%7Bat%7D">, où <img src="https://latex.codecogs.com/png.latex?C"> est une constante réelle quelconque.</p>
</div>
</div>
<p>Les solutions de l’équation <img src="https://latex.codecogs.com/png.latex?(E')"> sur <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B"> sont donc les fonctions de la forme <img src="https://latex.codecogs.com/png.latex?t%20%5Cmapsto%20Ce%5E%7B-0,6t%7D">, avec <img src="https://latex.codecogs.com/png.latex?C%20%5Cin%20%5Cmathbb%7BR%7D">.</p>
<ol start="2" type="a">
<li><p><strong>Vérification d’une solution particulière pour <img src="https://latex.codecogs.com/png.latex?(E)">.</strong></p>
<p>Soit <img src="https://latex.codecogs.com/png.latex?g(t)%20=%20te%5E%7B-0,6t%7D">. La fonction <img src="https://latex.codecogs.com/png.latex?g"> est un produit de fonctions dérivables sur <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B">, elle est donc dérivable.</p>
<p>Pour dériver <img src="https://latex.codecogs.com/png.latex?g(t)">, on utilise la formule <img src="https://latex.codecogs.com/png.latex?(uv)'%20=%20u'v%20+%20uv'"> avec <img src="https://latex.codecogs.com/png.latex?u(t)=t"> et <img src="https://latex.codecogs.com/png.latex?v(t)=e%5E%7B-0,6t%7D">. <img src="https://latex.codecogs.com/png.latex?u'(t)=1"> et <img src="https://latex.codecogs.com/png.latex?v'(t)=-0,6e%5E%7B-0,6t%7D">.</p>
<p><img src="https://latex.codecogs.com/png.latex?g'(t)%20=%201%20%5Ctimes%20e%5E%7B-0,6t%7D%20+%20t%20%5Ctimes%20(-0,6e%5E%7B-0,6t%7D)%20=%20e%5E%7B-0,6t%7D%20-%200,6te%5E%7B-0,6t%7D">.</p>
<p>Vérifions si <img src="https://latex.codecogs.com/png.latex?g"> est solution de <img src="https://latex.codecogs.com/png.latex?(E)%20:%20y'%20+%200,6y%20=%20e%5E%7B-0,6t%7D">.</p>
<p><img src="https://latex.codecogs.com/png.latex?g'(t)%20+%200,6g(t)%20=%20(e%5E%7B-0,6t%7D%20-%200,6te%5E%7B-0,6t%7D)%20+%200,6(te%5E%7B-0,6t%7D)"></p>
<p><img src="https://latex.codecogs.com/png.latex?g'(t)%20+%200,6g(t)%20=%20e%5E%7B-0,6t%7D%20-%200,6te%5E%7B-0,6t%7D%20+%200,6te%5E%7B-0,6t%7D%20=%20e%5E%7B-0,6t%7D">.</p>
<p>L’égalité est vérifiée, donc la fonction <img src="https://latex.codecogs.com/png.latex?g"> est bien une solution de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?(E)">.</p></li>
<li><p><strong>Déduction des solutions de <img src="https://latex.codecogs.com/png.latex?(E)">.</strong></p>
<p>La solution générale de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?(E)"> est la somme de la solution générale de l’équation homogène associée <img src="https://latex.codecogs.com/png.latex?(E')"> et d’une solution particulière de <img src="https://latex.codecogs.com/png.latex?(E)">.</p>
<p>Les solutions de <img src="https://latex.codecogs.com/png.latex?(E)"> sont donc les fonctions de la forme :</p>
<p><img src="https://latex.codecogs.com/png.latex?y(t)%20=%20Ce%5E%7B-0,6t%7D%20+%20te%5E%7B-0,6t%7D%20=%20(C+t)e%5E%7B-0,6t%7D"></p>
<p>où <img src="https://latex.codecogs.com/png.latex?C"> est une constante réelle.</p></li>
<li><p><strong>Détermination de la fonction <img src="https://latex.codecogs.com/png.latex?v(t)">.</strong></p>
<p>La fonction <img src="https://latex.codecogs.com/png.latex?v"> est une solution de <img src="https://latex.codecogs.com/png.latex?(E)">, donc <img src="https://latex.codecogs.com/png.latex?v(t)%20=%20(C+t)e%5E%7B-0,6t%7D">.</p>
<p>On sait que la vitesse initiale est <img src="https://latex.codecogs.com/png.latex?v(0)%20=%2012">. On utilise cette condition pour déterminer la constante <img src="https://latex.codecogs.com/png.latex?C">.</p>
<p><img src="https://latex.codecogs.com/png.latex?v(0)%20=%20(C+0)e%5E%7B-0,6%20%5Ctimes%200%7D%20=%20C%20%5Ctimes%20e%5E0%20=%20C">.</p>
<p>On a donc <img src="https://latex.codecogs.com/png.latex?C%20=%2012">.</p>
<p>La fonction vitesse est donc définie pour tout <img src="https://latex.codecogs.com/png.latex?t%20%5Cin%20%5B0;%20+%5Cinfty%5B"> par :</p>
<p><img src="https://latex.codecogs.com/png.latex?v(t)%20=%20(12+t)e%5E%7B-0,6t%7D"></p></li>
</ol></li>
<li><ol type="a">
<li><p><strong>Calcul de la dérivée <img src="https://latex.codecogs.com/png.latex?v'(t)">.</strong></p>
<p>La fonction <img src="https://latex.codecogs.com/png.latex?v(t)%20=%20(12+t)e%5E%7B-0,6t%7D"> est un produit de fonctions.</p>
<p>En posant <img src="https://latex.codecogs.com/png.latex?u(t)=12+t"> et <img src="https://latex.codecogs.com/png.latex?w(t)=e%5E%7B-0,6t%7D">, on a <img src="https://latex.codecogs.com/png.latex?u'(t)=1"> et <img src="https://latex.codecogs.com/png.latex?w'(t)=-0,6e%5E%7B-0,6t%7D">.</p>
<p><img src="https://latex.codecogs.com/png.latex?v'(t)%20=%20u'(t)w(t)%20+%20u(t)w'(t)%20=%201%20%5Ctimes%20e%5E%7B-0,6t%7D%20+%20(12+t)(-0,6e%5E%7B-0,6t%7D)"></p>
<p><img src="https://latex.codecogs.com/png.latex?v'(t)%20=%20e%5E%7B-0,6t%7D(1%20-%200,6(12+t))%20=%20e%5E%7B-0,6t%7D(1%20-%207,2%20-%200,6t)"></p>
<p><img src="https://latex.codecogs.com/png.latex?v'(t)%20=%20(-6,2%20-%200,6t)e%5E%7B-0,6t%7D">.</p></li>
<li><p><strong>Limite de <img src="https://latex.codecogs.com/png.latex?v"> en <img src="https://latex.codecogs.com/png.latex?+%5Cinfty">.</strong></p>
<p>On utilise l’expression <img src="https://latex.codecogs.com/png.latex?v(t)%20=%2012e%5E%7B-0,6t%7D%20+%20t%20%5Ctimes%20%5Cfrac%7B1%7D%7Be%5E%7B0,6t%7D%7D">.</p>
<p>On sait que <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20-0,6t%20=%20-%5Cinfty">, donc par composition <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20e%5E%7B-0,6t%7D%20=%200">.</p>
<p>Pour le second terme, on peut écrire <img src="https://latex.codecogs.com/png.latex?t%20%5Ctimes%20%5Cfrac%7B1%7D%7Be%5E%7B0,6t%7D%7D%20=%20%5Cfrac%7Bt%7D%7Be%5E%7B0,6t%7D%7D%20=%20%5Cfrac%7B1%7D%7B0,6%7D%20%5Ctimes%20%5Cfrac%7B0,6t%7D%7Be%5E%7B0,6t%7D%7D">.</p>
<p>Par croissance comparée, on sait que <img src="https://latex.codecogs.com/png.latex?%5Clim_%7BX%20%5Cto%20+%5Cinfty%7D%20%5Cfrac%7BX%7D%7Be%5EX%7D%20=%200">.</p>
<p>En posant <img src="https://latex.codecogs.com/png.latex?X=0,6t">, on a <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20%5Cfrac%7B0,6t%7D%7Be%5E%7B0,6t%7D%7D%20=%200">.</p>
<p>Ainsi, <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20t%20e%5E%7B-0,6t%7D%20=%200">.</p>
<p>Par somme des limites, on obtient :</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20v(t)%20=%2012%20%5Ctimes%200%20+%200%20=%200"></p></li>
<li><p><strong>Sens de variation de <img src="https://latex.codecogs.com/png.latex?v">.</strong></p>
<p>On étudie le signe de la dérivée <img src="https://latex.codecogs.com/png.latex?v'(t)%20=%20(-6,2%20-%200,6t)e%5E%7B-0,6t%7D"> sur <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B">.</p>
<p>Pour tout <img src="https://latex.codecogs.com/png.latex?t%20%5Cgeqslant%200">, <img src="https://latex.codecogs.com/png.latex?e%5E%7B-0,6t%7D"> est strictement positif.</p>
<p>Le signe de <img src="https://latex.codecogs.com/png.latex?v'(t)"> est donc celui de <img src="https://latex.codecogs.com/png.latex?(-6,2%20-%200,6t)">.</p>
<p>Pour <img src="https://latex.codecogs.com/png.latex?t%20%5Cgeqslant%200">, on a <img src="https://latex.codecogs.com/png.latex?0,6t%20%5Cgeqslant%200">, donc <img src="https://latex.codecogs.com/png.latex?-0,6t%20%5Cleqslant%200">.</p>
<p>Ainsi, <img src="https://latex.codecogs.com/png.latex?-6,2%20-%200,6t%20%5Cleqslant%20-6,2%20%3C%200">.</p>
<p>La dérivée <img src="https://latex.codecogs.com/png.latex?v'(t)"> est donc strictement négative sur <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B">.</p>
<p>La fonction <img src="https://latex.codecogs.com/png.latex?v"> est strictement décroissante sur <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B">.</p>
<p>On dresse le tableau de variation complet :</p>
<p><img src="https://latex.codecogs.com/png.latex?v(0)%20=%20(12+0)e%5E0%20=%2012">.</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?t"></th>
<th style="text-align: center;">0</th>
<th style="text-align: center;"></th>
<th style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?+%5Cinfty"></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?v'(t)"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;">-</td>
<td style="text-align: center;"></td>
</tr>
<tr class="even">
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?v(t)"></td>
<td style="text-align: center;">12</td>
<td style="text-align: center;">↘</td>
<td style="text-align: center;">0</td>
</tr>
</tbody>
</table></li>
<li><p><strong>Résolution de l’équation <img src="https://latex.codecogs.com/png.latex?v(t)=1">.</strong></p>
<p>La fonction <img src="https://latex.codecogs.com/png.latex?v"> est continue (car dérivable) et strictement décroissante sur l’intervalle <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B">.</p>
<p>De plus, <img src="https://latex.codecogs.com/png.latex?v(0)=12"> et <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20v(t)%20=%200">.</p>
<p>Le nombre 1 est compris dans l’intervalle image <img src="https://latex.codecogs.com/png.latex?%5D0;%2012%5D">.</p>
<p>D’après le corollaire du théorème des valeurs intermédiaires pour les fonctions strictement monotones, l’équation <img src="https://latex.codecogs.com/png.latex?v(t)=1"> admet une solution unique <img src="https://latex.codecogs.com/png.latex?%5Calpha"> sur l’intervalle <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B">.</p>
<p>À l’aide de la calculatrice, on peut trouver une valeur approchée de <img src="https://latex.codecogs.com/png.latex?%5Calpha">.</p>
<p>En utilisant la fonction table ou un solveur, on trouve :</p>
<p><img src="https://latex.codecogs.com/png.latex?v(4,7)%20%5Capprox%201,003"></p>
<p><img src="https://latex.codecogs.com/png.latex?v(4,71)%20%5Capprox%200,996"></p>
<p>Une valeur approchée de <img src="https://latex.codecogs.com/png.latex?%5Calpha"> au dixième est donc <strong><img src="https://latex.codecogs.com/png.latex?%5Calpha%20%5Capprox%204,7"></strong>.</p></li>
</ol></li>
<li><p>Le système mécanique d’arrêt se déclenche lorsque la vitesse est inférieure ou égale à 1 m/s. Comme la fonction <img src="https://latex.codecogs.com/png.latex?v"> est strictement décroissante, la condition <img src="https://latex.codecogs.com/png.latex?v(t)%20%5Cleqslant%201"> est équivalente à <img src="https://latex.codecogs.com/png.latex?v(t)%20%5Cleqslant%20v(%5Calpha)">, ce qui signifie <img src="https://latex.codecogs.com/png.latex?t%20%5Cgeqslant%20%5Calpha">.</p>
<p>Le système entre donc en action à partir de l’instant <img src="https://latex.codecogs.com/png.latex?t=%5Calpha">.</p>
<p>Cela se produit au bout d’environ <strong>4,7 secondes</strong>.</p></li>
</ol>
</section>
<section id="partie-c-calcul-de-la-distance-parcourue" class="level4">
<h4 class="anchored" data-anchor-id="partie-c-calcul-de-la-distance-parcourue">Partie C : Calcul de la distance parcourue</h4>
<ol type="1">
<li><p><strong>Démonstration par intégration par parties.</strong></p>
<p>On doit calculer <img src="https://latex.codecogs.com/png.latex?d(t)%20=%20%5Cint_0%5Et%20v(x)%20dx%20=%20%5Cint_0%5Et%20(12+x)e%5E%7B-0,6x%7D%20dx">.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Intégration par parties
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si <img src="https://latex.codecogs.com/png.latex?u"> et <img src="https://latex.codecogs.com/png.latex?f"> sont deux fonctions dérivables sur un intervalle <img src="https://latex.codecogs.com/png.latex?I">, alors pour tous <img src="https://latex.codecogs.com/png.latex?a,%20b%20%5Cin%20I"> : <img src="https://latex.codecogs.com/png.latex?%5Cint_a%5Eb%20u(x)f'(x)%20dx%20=%20%5Bu(x)f(x)%5D_a%5Eb%20-%20%5Cint_a%5Eb%20u'(x)f(x)%20dx">.</p>
</div>
</div>
<p>On pose :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?u(x)%20=%2012+x%20%5Cquad%20%5Cimplies%20%5Cquad%20u'(x)%20=%201"></li>
<li><img src="https://latex.codecogs.com/png.latex?f'(x)%20=%20e%5E%7B-0,6x%7D%20%5Cquad%20%5Cimplies%20%5Cquad%20f(x)%20=%20%5Cfrac%7B1%7D%7B-0,6%7De%5E%7B-0,6x%7D%20=%20-%5Cfrac%7B5%7D%7B3%7De%5E%7B-0,6x%7D"></li>
</ul>
<p>Appliquons la formule :</p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20%5Cleft%5B%20(12+x)(-%5Cfrac%7B5%7D%7B3%7De%5E%7B-0,6x%7D)%20%5Cright%5D_0%5Et%20-%20%5Cint_0%5Et%201%20%5Ctimes%20(-%5Cfrac%7B5%7D%7B3%7De%5E%7B-0,6x%7D)%20dx"></p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20%5Cleft(%20(12+t)(-%5Cfrac%7B5%7D%7B3%7De%5E%7B-0,6t%7D)%20-%20(12+0)(-%5Cfrac%7B5%7D%7B3%7De%5E0)%20%5Cright)%20+%20%5Cfrac%7B5%7D%7B3%7D%20%5Cint_0%5Et%20e%5E%7B-0,6x%7D%20dx"></p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20(-%5Cfrac%7B5%7D%7B3%7Dt%20-%2020)e%5E%7B-0,6t%7D%20+%2020%20+%20%5Cfrac%7B5%7D%7B3%7D%20%5Cleft%5B%20-%5Cfrac%7B5%7D%7B3%7De%5E%7B-0,6x%7D%20%5Cright%5D_0%5Et"></p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20(-%5Cfrac%7B5%7D%7B3%7Dt%20-%2020)e%5E%7B-0,6t%7D%20+%2020%20+%20%5Cfrac%7B5%7D%7B3%7D%20%5Cleft(%20-%5Cfrac%7B5%7D%7B3%7De%5E%7B-0,6t%7D%20-%20(-%5Cfrac%7B5%7D%7B3%7De%5E0)%20%5Cright)"></p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20(-%5Cfrac%7B5%7D%7B3%7Dt%20-%2020)e%5E%7B-0,6t%7D%20+%2020%20-%20%5Cfrac%7B25%7D%7B9%7De%5E%7B-0,6t%7D%20+%20%5Cfrac%7B25%7D%7B9%7D"></p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20e%5E%7B-0,6t%7D%20(-%5Cfrac%7B5%7D%7B3%7Dt%20-%2020%20-%20%5Cfrac%7B25%7D%7B9%7D)%20+%20(20%20+%20%5Cfrac%7B25%7D%7B9%7D)"></p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20e%5E%7B-0,6t%7D%20(-%5Cfrac%7B15%7D%7B9%7Dt%20-%20%5Cfrac%7B180%7D%7B9%7D%20-%20%5Cfrac%7B25%7D%7B9%7D)%20+%20(%5Cfrac%7B180%7D%7B9%7D%20+%20%5Cfrac%7B25%7D%7B9%7D)"></p>
<p><img src="https://latex.codecogs.com/png.latex?d(t)%20=%20e%5E%7B-0,6t%7D%20(-%5Cfrac%7B5%7D%7B3%7Dt%20-%20%5Cfrac%7B205%7D%7B9%7D)%20+%20%5Cfrac%7B205%7D%7B9%7D"></p>
<p>Ce qui est bien la formule demandée.</p></li>
<li><p>Le dispositif d’arrêt se déclenche à l’instant <img src="https://latex.codecogs.com/png.latex?t=%5Calpha"> où la vitesse atteint 1 m/s. On cherche donc la distance parcourue à cet instant, soit <img src="https://latex.codecogs.com/png.latex?d(%5Calpha)">.</p>
<p>On utilise la valeur approchée <img src="https://latex.codecogs.com/png.latex?%5Calpha%20%5Capprox%204,7"> obtenue précédemment.</p>
<p>On calcule <img src="https://latex.codecogs.com/png.latex?d(4,7)"> : <img src="https://latex.codecogs.com/png.latex?d(4,7)%20=%20e%5E%7B-0,6%20%5Ctimes%204,7%7D%20%5Cleft(-%5Cfrac%7B5%7D%7B3%7D%20%5Ctimes%204,7%20-%20%5Cfrac%7B205%7D%7B9%7D%5Cright)%20+%20%5Cfrac%7B205%7D%7B9%7D%20%5Capprox%2020,95"></p>
<p>Arrondie au centième, la distance parcourue par le chariot avant le déclenchement du dispositif est de <strong>20,95 mètres</strong>.</p></li>
</ol>


</section>
</section>

 ]]></description>
  <category>Mathématiques</category>
  <category>Annales</category>
  <guid>https://mathsinfolycee.fr/posts/2025-06-24-MathsMetropoleJ2/</guid>
  <pubDate>Mon, 23 Jun 2025 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025-06-24-MathsMetropoleJ2/arbre.png" medium="image" type="image/png" height="202" width="144"/>
</item>
<item>
  <title>Corrigé du sujet de NSI du baccalauréat 2025 - Métropole Jour 2</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025-06-23-NSIMetropoleJ2/</link>
  <description><![CDATA[ 





<section id="exercice-1-6-points" class="level2">
<h2 class="anchored" data-anchor-id="exercice-1-6-points">Exercice 1 (6 points)</h2>
<p>Cet exercice porte sur les arbres binaires et la programmation Python dans le contexte du codage de Shannon-Fano.</p>
<section id="partie-a" class="level4">
<h4 class="anchored" data-anchor-id="partie-a">Partie A</h4>
<ol type="1">
<li><p>Pour obtenir le mot binaire qui encode le caractère espace, représenté par le symbole <code>_</code>, il faut parcourir l’arbre de la Figure 1 de la racine jusqu’à la feuille contenant ce symbole.</p>
<ul>
<li>On part de la racine et on prend la branche de droite, étiquetée <code>0</code>.</li>
<li>Du nœud suivant, on prend la branche de gauche, étiquetée <code>1</code>.</li>
<li>Du nœud suivant, on prend la branche de droite, étiquetée <code>0</code>. On arrive à la feuille <code>_</code>.</li>
</ul>
<p>Le mot binaire correspondant est donc <strong><code>010</code></strong>.</p></li>
<li><p>Pour décoder le mot binaire <code>0001110101111110011001</code>, on parcourt l’arbre depuis la racine pour chaque symbole.</p>
<ul>
<li><code>00</code> : racine -&gt; droite (<code>0</code>) -&gt; droite (<code>0</code>) -&gt; feuille <strong><code>e</code></strong>.</li>
<li>Il reste <code>01110101111110011001</code>. On repart de la racine.</li>
<li><code>011</code> : racine -&gt; droite (<code>0</code>) -&gt; gauche (<code>1</code>) -&gt; gauche (<code>1</code>) -&gt; feuille <strong><code>s</code></strong>.</li>
<li>Il reste <code>1010111110011001</code>. On repart de la racine.</li>
<li><code>1010</code> : racine -&gt; gauche (<code>1</code>) -&gt; droite (<code>0</code>) -&gt; gauche (<code>1</code>) -&gt; droite (<code>0</code>) -&gt; feuille <strong><code>p</code></strong>.</li>
<li>Il reste <code>11110011001</code>. On repart de la racine.</li>
<li><code>1111</code> : racine -&gt; gauche (<code>1</code>) -&gt; gauche (<code>1</code>) -&gt; gauche (<code>1</code>) -&gt; gauche (<code>1</code>) -&gt; feuille <strong><code>i</code></strong>.</li>
<li>Il reste <code>110011001</code>. On repart de la racine.</li>
<li><code>11001</code> : racine -&gt; gauche (<code>1</code>) -&gt; gauche (<code>1</code>) -&gt; droite (<code>0</code>) -&gt; droite (<code>0</code>) -&gt; gauche (<code>1</code>) -&gt; feuille <strong><code>o</code></strong>.</li>
<li>Il reste <code>1001</code>. On repart de la racine.</li>
<li><code>1001</code> : racine -&gt; gauche (<code>1</code>) -&gt; droite (<code>0</code>) -&gt; droite (<code>0</code>) -&gt; gauche (<code>1</code>) -&gt; feuille <strong><code>n</code></strong>.</li>
</ul>
<p>Le texte décodé est <strong><code>espion</code></strong>.</p></li>
<li><p>Pour obtenir les symboles classés par taille d’encodage croissante, il faut lister les symboles en fonction de leur profondeur dans l’arbre. Les symboles les plus proches de la racine ont les codes les plus courts. Le parcours qui explore un arbre niveau par niveau est le <strong>parcours en largeur</strong>.</p></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Parcours d'arbre">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Parcours d’arbre
</div>
</div>
<div class="callout-body-container callout-body">
<p>Un <strong>parcours en largeur</strong> (ou <em>Breadth-First Search</em>, BFS) explore un arbre niveau par niveau. On visite d’abord la racine, puis tous ses enfants, puis tous les nœuds du niveau suivant, et ainsi de suite. Ce parcours est souvent mis en œuvre à l’aide d’une file.</p>
</div>
</div>
</section>
<section id="partie-b" class="level4">
<h4 class="anchored" data-anchor-id="partie-b">Partie B</h4>
<ol start="4" type="1">
<li><p>L’étape 2 de l’algorithme de Shannon-Fano consiste à séparer la liste ordonnée des symboles en deux groupes dont les sommes des occurrences sont les plus proches possibles.</p>
<p>Le tableau des symboles triés par nombre d’occurrences est : <code>i(1), u(1), c(1), o(1), d(1), ,(1), p(1), n(2), j(2), s(3), _(4), e(4)</code>. La somme totale des occurrences est : <img src="https://latex.codecogs.com/png.latex?7%20%5Ctimes%201%20+%202%20%5Ctimes%202%20+%201%20%5Ctimes%203%20+%202%20%5Ctimes%204%20=%207%20+%204%20+%203%20+%208%20=%2022">.</p>
<p>Il faut donc chercher une coupure qui sépare ce total en deux sommes aussi proches que possible de <img src="https://latex.codecogs.com/png.latex?22%20/%202%20=%2011">.</p>
<p>La figure 2 propose la coupure suivante :</p>
<ul>
<li><strong>Groupe 1 (gauche)</strong> : <code>i, u, c, o, d, ,, p, n, j</code>. La somme de leurs occurrences est : <img src="https://latex.codecogs.com/png.latex?1+1+1+1+1+1+1+2+2%20=%2011">.</li>
<li><strong>Groupe 2 (droite)</strong> : <code>s, _, e</code>. La somme de leurs occurrences est : <img src="https://latex.codecogs.com/png.latex?3+4+4%20=%2011">.</li>
</ul>
<p>Les deux sommes étant égales à 11, cette séparation est optimale. La justification est donc validée par ce calcul.</p></li>
<li><p>La <strong>hauteur</strong> d’un arbre est la longueur du plus long chemin de la racine à une feuille. Dans la figure 3, les feuilles les plus profondes sont <code>o</code> et <code>d</code>. Le chemin pour atteindre <code>d</code> est <code>1 -&gt; 0 -&gt; 1 -&gt; 1 -&gt; 0</code>. Ce chemin est de longueur 5.</p>
<p>La hauteur de l’arbre est <strong>5</strong>.</p>
<p>Dans le contexte de l’exercice, cette hauteur représente <strong>la longueur du plus long mot de code binaire</strong> utilisé pour encoder un symbole.</p></li>
<li><p>Pour justifier que le codage de Shannon-Fano est plus efficace que l’ASCII pour le texte <code>je pense, donc je suis</code>, nous devons comparer le nombre total de bits nécessaires dans chaque cas.</p>
<ul>
<li><p><strong>Codage ASCII</strong> : Le texte contient 22 caractères (en se basant sur la somme des occurrences du tableau de la page 3). En ASCII, chaque caractère est codé sur un octet, soit 8 bits. Taille totale en ASCII = <img src="https://latex.codecogs.com/png.latex?22%20%5Ctext%7B%20caract%C3%A8res%7D%20%5Ctimes%208%20%5Ctext%7B%20bits/caract%C3%A8re%7D%20=%20176%20%5Ctext%7B%20bits%7D">.</p></li>
<li><p><strong>Codage de Shannon-Fano</strong> : On utilise les longueurs de code données par la profondeur de chaque symbole dans l’arbre de la figure 3 et les fréquences du tableau.</p>
<ul>
<li>Profondeur 2 : <code>e</code> (4), <code>_</code> (4). Coût : <img src="https://latex.codecogs.com/png.latex?(4+4)%20%5Ctimes%202%20=%2016"> bits.</li>
<li>Profondeur 3 : <code>s</code> (3). Coût : <img src="https://latex.codecogs.com/png.latex?3%20%5Ctimes%203%20=%209"> bits.</li>
<li>Profondeur 4 : <code>j</code> (2), <code>n</code> (2), <code>p</code> (1), <code>c</code> (1), <code>u</code> (1), <code>i</code> (1). Coût : <img src="https://latex.codecogs.com/png.latex?(2+2+1+1+1+1)%20%5Ctimes%204%20=%208%20%5Ctimes%204%20=%2032"> bits.</li>
<li>Profondeur 5 : <code>,</code> (1), <code>d</code> (1), <code>o</code> (1). Coût : <img src="https://latex.codecogs.com/png.latex?(1+1+1)%20%5Ctimes%205%20=%203%20%5Ctimes%205%20=%2015"> bits.</li>
</ul>
<p>Taille totale Shannon-Fano = <img src="https://latex.codecogs.com/png.latex?16%20+%209%20+%2032%20+%2015%20=%2072"> bits.</p></li>
</ul>
<p><strong>Comparaison</strong> :</p>
<p>Le rapport des tailles est <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B%5Ctext%7BTaille%20ASCII%7D%7D%7B%5Ctext%7BTaille%20Shannon-Fano%7D%7D%20=%20%5Cfrac%7B176%7D%7B72%7D%20%5Capprox%202,44">. Le codage de Shannon-Fano utilise donc bien environ deux fois moins de bits (et donc d’octets) que le codage ASCII pour ce texte.</p></li>
<li><p>Pour construire l’arbre de codage du mot « chiffrer » :</p>
<ol type="1">
<li><p><strong>Fréquences</strong> : <code>c(1), h(1), i(1), e(1), f(2), r(2)</code>. Total : 8.</p></li>
<li><p><strong>Liste triée</strong> : <code>(c,1), (h,1), (i,1), (e,1), (f,2), (r,2)</code>.</p></li>
<li><p><strong>Construction récursive</strong> :</p>
<ul>
<li><p><strong>Étape 1</strong> : Somme totale = 8. On coupe en deux groupes de somme 4.</p>
<ul>
<li>Groupe 1 (étiquette <code>1</code>): <code>(c,1), (h,1), (i,1), (e,1)</code>. Somme = 4.</li>
<li>Groupe 2 (étiquette <code>0</code>): <code>(f,2), (r,2)</code>. Somme = 4.</li>
</ul></li>
<li><p><strong>Étape 2 (sur Groupe 1)</strong> : Somme = 4. On coupe en deux groupes de somme 2.</p>
<ul>
<li>Groupe 1.1 (<code>1</code>): <code>(c,1), (h,1)</code>.</li>
<li>Groupe 1.2 (<code>0</code>): <code>(i,1), (e,1)</code>.</li>
</ul></li>
<li><p><strong>Étape 3 (sur Groupe 1.1)</strong> :</p>
<ul>
<li>Feuille <code>c</code> (étiquette <code>1</code>). Code: <code>111</code>.</li>
<li>Feuille <code>h</code> (étiquette <code>0</code>). Code: <code>110</code>.</li>
</ul></li>
<li><p><strong>Étape 4 (sur Groupe 1.2)</strong> :</p>
<ul>
<li>Feuille <code>i</code> (étiquette <code>1</code>). Code: <code>101</code>.</li>
<li>Feuille <code>e</code> (étiquette <code>0</code>). Code: <code>100</code>.</li>
</ul></li>
<li><p><strong>Étape 5 (sur Groupe 2)</strong> :</p>
<ul>
<li>Feuille <code>f</code> (étiquette <code>1</code>). Code: <code>01</code>.</li>
<li>Feuille <code>r</code> (étiquette <code>0</code>). Code: <code>00</code>.</li>
</ul></li>
</ul></li>
</ol>
<p>L’arbre de codage obtenu est le suivant :</p></li>
</ol>
<p><a href="arbre.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://mathsinfolycee.fr/posts/2025-06-23-NSIMetropoleJ2/arbre.png" class="img-fluid"></a></p>
</section>
<section id="partie-c" class="level4">
<h4 class="anchored" data-anchor-id="partie-c">Partie C</h4>
<ol start="8" type="1">
<li><p>Voici les lignes 8 et 10 complétées pour la fonction <code>creer_dico_occ</code> :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ...</span></span>
<span id="cb1-2"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">7</span>     <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> symbole <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> dico:</span>
<span id="cb1-3"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>         dico[symbole] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-4"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">9</span>     <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span>:</span>
<span id="cb1-5"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>        dico[symbole] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ...</span></span></code></pre></div></div></li>
<li><p>Voici une proposition pour la fonction <code>somme_occ</code> :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb2-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> somme_occ(tab):</span>
<span id="cb2-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">"""</span></span>
<span id="cb2-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    Renvoie la somme des nombres d'occurrences</span></span>
<span id="cb2-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    contenus dans un tableau de tuples (symbole, nb_occ).</span></span>
<span id="cb2-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    """</span></span>
<span id="cb2-6">    somme <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span></span>
<span id="cb2-7">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> symbole, nb <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> tab:</span>
<span id="cb2-8">        somme <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+=</span> nb</span>
<span id="cb2-9">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> somme</span></code></pre></div></div>
<p>Une écriture plus concise utilisant une compréhension de liste est aussi possible :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb3-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> somme_occ(tab):</span>
<span id="cb3-2">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>([nb <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> symbole, nb <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> tab])</span></code></pre></div></div></li>
<li><p>Voici les lignes 9 et 11 complétées pour la fonction <code>shannon</code> :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb4-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ...</span></span>
<span id="cb4-2"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>     <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> symbole <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> [elt[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>] <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> elt <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> t1]:</span>
<span id="cb4-3"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">9</span>         <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"1"</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> shannon(symbole, t1)</span>
<span id="cb4-4"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span>:</span>
<span id="cb4-5"><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">11</span>        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0"</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> shannon(symbole, t2)</span></code></pre></div></div></li>
<li><p>La terminaison de la fonction récursive <code>shannon</code> est garantie par deux points :</p>
<ul>
<li><strong>Cas de base</strong> : La fonction s’arrête lorsque la condition <code>len(tab) == 1</code> est vraie.</li>
<li><strong>Convergence</strong> : À chaque appel récursif, la fonction <code>separe</code> divise le tableau <code>tab</code> en deux sous-tableaux non vides <code>t1</code> et <code>t2</code>. La taille du tableau passé en paramètre à l’appel suivant (<code>t1</code> ou <code>t2</code>) est donc strictement inférieure à la taille du tableau <code>tab</code> de l’appel courant. La taille de l’argument décroissant strictement à chaque étape, elle atteindra nécessairement la valeur 1, ce qui déclenchera le cas de base et mettra fin à la récursion.</li>
</ul></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Terminaison d'une fonction récursive">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Terminaison d’une fonction récursive
</div>
</div>
<div class="callout-body-container callout-body">
<p>Pour qu’une fonction récursive se termine, elle doit comporter :</p>
<ol type="1">
<li>Un ou plusieurs <strong>cas de base</strong> qui ne génèrent pas d’appel récursif.</li>
<li>Un ou plusieurs <strong>cas récursifs</strong> où la fonction s’appelle elle-même avec des arguments qui la rapprochent systématiquement d’un cas de base. On appelle cela le <strong>variant de boucle</strong> (ou de récursion) : une quantité entière positive qui décroît strictement à chaque appel.</li>
</ol>
</div>
</div>
<ol start="12" type="1">
<li><p>Voici une proposition pour la fonction <code>encode_shannon</code> :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb5-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> encode_shannon(texte):</span>
<span id="cb5-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">"""</span></span>
<span id="cb5-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    Prend un texte en paramètre et renvoie le mot binaire</span></span>
<span id="cb5-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    correspondant après encodage par l'algorithme de Shannon-Fano.</span></span>
<span id="cb5-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    """</span></span>
<span id="cb5-6">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> texte:</span>
<span id="cb5-7">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">""</span></span>
<span id="cb5-8"></span>
<span id="cb5-9">    dico_occurrences <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> creer_dico_occ(texte)</span>
<span id="cb5-10">    tableau_trie <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> creer_tab_trie(dico_occurrences)</span>
<span id="cb5-11"></span>
<span id="cb5-12">    mot_binaire_final <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">""</span></span>
<span id="cb5-13">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> caractere <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> texte:</span>
<span id="cb5-14">        code_caractere <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> shannon(caractere, tableau_trie)</span>
<span id="cb5-15">        mot_binaire_final <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+=</span> code_caractere</span>
<span id="cb5-16"></span>
<span id="cb5-17">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> mot_binaire_final</span></code></pre></div></div></li>
</ol>
</section>
</section>
<section id="exercice-2-6-points" class="level2">
<h2 class="anchored" data-anchor-id="exercice-2-6-points">Exercice 2 (6 points)</h2>
<p>Cet exercice porte sur les bases de données relationnelles, le langage SQL et la programmation Python.</p>
<ol type="1">
<li>L’attribut <code>nom</code> ne peut pas être utilisé comme clé primaire pour la relation <code>adherent</code> car il n’assure pas l’unicité de chaque enregistrement. Plusieurs personnes peuvent avoir le même nom de famille (homonymes). La clé primaire doit être un identifiant unique pour chaque adhérent.</li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Clé primaire">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Clé primaire
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une <strong>clé primaire</strong> (<em>primary key</em>) est un attribut ou un ensemble d’attributs qui permet d’identifier de manière unique chaque enregistrement (ou ligne) dans une table. Sa valeur doit être unique pour chaque ligne et ne peut pas être <code>NULL</code>.</p>
</div>
</div>
<ol start="2" type="1">
<li><p>La requête SQL <code>SELECT nomJeu, editeur FROM jeu ORDER BY nomJeu;</code> a pour effet de :</p>
<ul>
<li>Sélectionner les colonnes <code>nomJeu</code> et <code>editeur</code> de la table <code>jeu</code>.</li>
<li>Trier les résultats obtenus par ordre alphabétique croissant en se basant sur la colonne <code>nomJeu</code>.</li>
</ul>
<p>Cette requête renvoie donc la liste de tous les jeux et de leur éditeur, classée par ordre alphabétique des noms de jeu.</p></li>
<li><p>Pour connaître le nom des jeux en cours d’emprunt, il faut sélectionner les jeux dans la table <code>emprunt</code> dont l’attribut <code>dateRendu</code> a la valeur <code>NULL</code>. Comme un jeu ne peut être emprunté qu’une seule fois à un instant donné (un seul exemplaire), l’utilisation de <code>DISTINCT</code> est facultative mais reste une bonne pratique.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb6-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> nomJeu</span>
<span id="cb6-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> emprunt</span>
<span id="cb6-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> dateRendu <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">IS</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">NULL</span>;</span></code></pre></div></div></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : La valeur NULL">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : La valeur NULL
</div>
</div>
<div class="callout-body-container callout-body">
<p>En SQL, <code>NULL</code> représente une valeur inconnue ou absente. Pour tester si une colonne a la valeur <code>NULL</code>, on doit utiliser les opérateurs <code>IS NULL</code> ou <code>IS NOT NULL</code>, et non l’opérateur d’égalité <code>=</code>.</p>
</div>
</div>
<ol start="4" type="1">
<li><p>Pour afficher le nom et le prénom des adhérents ayant emprunté le jeu “Catan”, il faut lier les tables <code>adherent</code> et <code>emprunt</code> via leur clé commune (<code>idAdherent</code>).</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb7-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> adherent.nom, adherent.prenom</span>
<span id="cb7-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> adherent</span>
<span id="cb7-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">JOIN</span> emprunt <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">ON</span> adherent.idAdherent <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> emprunt.idAdherent</span>
<span id="cb7-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> emprunt.nomJeu <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Catan'</span>;</span></code></pre></div></div></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Les jointures">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Les jointures
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une <strong>jointure</strong> (clause <code>JOIN</code>) permet de combiner des lignes de deux ou plusieurs tables en se basant sur une colonne commune entre elles. La clause <code>ON</code> spécifie la condition de jointure.</p>
</div>
</div>
<ol start="5" type="1">
<li><p>Pour mettre à jour la base de données après le retour du jeu, il faut utiliser une requête <code>UPDATE</code> pour renseigner la <code>dateRendu</code> de l’emprunt concerné, identifié par son <code>idEmprunt</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb8-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">UPDATE</span> emprunt</span>
<span id="cb8-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SET</span> dateRendu <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'2025-06-03'</span></span>
<span id="cb8-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> idEmprunt <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1538</span>;</span></code></pre></div></div></li>
<li><p>Pour trouver le nom et la catégorie des jeux sortis à partir de 2010 et dont l’âge minimum est strictement inférieur à 10 ans, on utilise une clause <code>WHERE</code> avec deux conditions reliées par l’opérateur <code>AND</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb9-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> nomJeu, categorie</span>
<span id="cb9-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> jeu</span>
<span id="cb9-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> anneeSortie <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2010</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">AND</span> ageMinimum <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>;</span></code></pre></div></div></li>
<li><p>La table <code>participation</code> sert à lier les événements aux adhérents. Il s’agit d’une table de jointure pour une relation de type “plusieurs à plusieurs” (un adhérent peut participer à plusieurs événements, un événement accueille plusieurs adhérents). Elle doit donc contenir une clé étrangère vers la table <code>evenement</code> et une clé étrangère vers la table <code>adherent</code>.</p>
<p>La clé primaire de la table <code>evenement</code> est <code>nom</code>, les clés étrangères de la table <code>participation</code> sont :</p>
<ul>
<li><code>#nomEvenement</code> qui fait référence à l’attribut <code>nom</code> de la table <code>evenement</code>.</li>
<li><code>#idAdherent</code> qui fait référence à l’attribut <code>idAdherent</code> de la table <code>adherent</code>.</li>
</ul></li>
<li><p>Le script Python suivant reprend le code fourni, récupère la liste des jeux empruntés et construit le dictionnaire <code>dict_emprunts</code> qui associe à chaque nom de jeu son nombre total d’emprunts.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb10-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> sqlite3</span>
<span id="cb10-2"></span>
<span id="cb10-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Connexion à la base de données</span></span>
<span id="cb10-4">connection <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> sqlite3.<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">connect</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ludotheque.db"</span>)</span>
<span id="cb10-5">curseur <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> connection.cursor()</span>
<span id="cb10-6"></span>
<span id="cb10-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Exécution de la requête</span></span>
<span id="cb10-8">curseur.execute(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SELECT nomJeu FROM emprunt"</span>)</span>
<span id="cb10-9"></span>
<span id="cb10-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Récupération des résultats</span></span>
<span id="cb10-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># curseur.fetchall() renvoie une liste de tuples, ex: [('Catan',), ('Agricola',)]</span></span>
<span id="cb10-12">jeux_empruntes_tuples <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> curseur.fetchall()</span>
<span id="cb10-13"></span>
<span id="cb10-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Création de la liste des noms de jeux</span></span>
<span id="cb10-15">liste_jeux <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb10-16"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> jeu_tuple <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> jeux_empruntes_tuples:</span>
<span id="cb10-17">    liste_jeux.append(jeu_tuple[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>])</span>
<span id="cb10-18"></span>
<span id="cb10-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Création du dictionnaire des occurrences</span></span>
<span id="cb10-20">dict_emprunts <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> {}</span>
<span id="cb10-21"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> nom_jeu <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> liste_jeux:</span>
<span id="cb10-22">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> nom_jeu <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> dict_emprunts:</span>
<span id="cb10-23">        dict_emprunts[nom_jeu] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb10-24">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span>:</span>
<span id="cb10-25">        dict_emprunts[nom_jeu] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb10-26"></span>
<span id="cb10-27"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Affichage du dictionnaire (pour vérification)</span></span>
<span id="cb10-28"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(dict_emprunts)</span>
<span id="cb10-29"></span>
<span id="cb10-30"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Fermeture de la connexion</span></span>
<span id="cb10-31">curseur.close()</span>
<span id="cb10-32">connection.close()</span></code></pre></div></div></li>
<li></li>
</ol>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb11-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On suppose que dict_emprunts est déjà créé.</span></span>
<span id="cb11-2">dict_emprunts <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> {</span>
<span id="cb11-3">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Terraforming Mars"</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>,</span>
<span id="cb11-4">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Codenames"</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">22</span>,</span>
<span id="cb11-5">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Agricola"</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>,</span>
<span id="cb11-6">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Puerto Rico"</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>,</span>
<span id="cb11-7">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Caylus"</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>,</span>
<span id="cb11-8">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Dominion"</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">22</span>,</span>
<span id="cb11-9">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Dixit"</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span></span>
<span id="cb11-10">}</span>
<span id="cb11-11"></span>
<span id="cb11-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># --- Étape 1 : Regrouper les jeux par score dans un dictionnaire ---</span></span>
<span id="cb11-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># (Cette étape reste identique et très utile)</span></span>
<span id="cb11-14">scores_podium <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> {}</span>
<span id="cb11-15"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> jeu, score <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> dict_emprunts.items():</span>
<span id="cb11-16">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> score <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> scores_podium:</span>
<span id="cb11-17">        scores_podium[score] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb11-18">    scores_podium[score].append(jeu)</span>
<span id="cb11-19"></span>
<span id="cb11-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># --- Étape 2 : Trouver les 3 meilleurs scores en cherchant le maximum 3 fois ---</span></span>
<span id="cb11-21"></span>
<span id="cb11-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On récupère la liste des scores uniques à traiter.</span></span>
<span id="cb11-23">scores_a_traiter <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">list</span>(scores_podium.keys())</span>
<span id="cb11-24"></span>
<span id="cb11-25"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On va stocker les listes du podium dans l'ordre où on les trouve (du meilleur au moins bon).</span></span>
<span id="cb11-26">podium_ordre_inverse <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb11-27"></span>
<span id="cb11-28"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On répète l'opération 3 fois pour les 3 places du podium.</span></span>
<span id="cb11-29"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On vérifie aussi qu'il reste des scores à traiter.</span></span>
<span id="cb11-30"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> i <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>):</span>
<span id="cb11-31">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(scores_a_traiter) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>:</span>
<span id="cb11-32">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">break</span> <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Arrête la boucle s'il y a moins de 3 scores uniques.</span></span>
<span id="cb11-33"></span>
<span id="cb11-34">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On cherche le score le plus élevé parmi ceux qui restent.</span></span>
<span id="cb11-35">    score_maximum <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span> <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On initialise avec une valeur très basse</span></span>
<span id="cb11-36">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> score <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> scores_a_traiter:</span>
<span id="cb11-37">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> score <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> score_maximum:</span>
<span id="cb11-38">            score_maximum <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> score</span>
<span id="cb11-39">    </span>
<span id="cb11-40">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On ajoute la liste des jeux correspondants à notre podium temporaire.</span></span>
<span id="cb11-41">    podium_ordre_inverse.append(scores_podium[score_maximum])</span>
<span id="cb11-42">    </span>
<span id="cb11-43">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On retire ce score de la liste pour ne pas le retrouver au tour suivant.</span></span>
<span id="cb11-44">    scores_a_traiter.remove(score_maximum)</span>
<span id="cb11-45"></span>
<span id="cb11-46"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># --- Étape 3 : Inverser la liste pour avoir le podium dans l'ordre croissant des scores ---</span></span>
<span id="cb11-47"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># podium_ordre_inverse contient [liste_score_25, liste_score_22, liste_score_18]</span></span>
<span id="cb11-48"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># L'énoncé veut [liste_score_18, liste_score_22, liste_score_25]</span></span>
<span id="cb11-49"></span>
<span id="cb11-50">podium_final <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb11-51"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On parcourt la liste temporaire de la fin vers le début.</span></span>
<span id="cb11-52"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> i <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(podium_ordre_inverse) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>):</span>
<span id="cb11-53">    podium_final.append(podium_ordre_inverse[i])</span>
<span id="cb11-54"></span>
<span id="cb11-55"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Affichage du podium final</span></span>
<span id="cb11-56"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(podium_final)</span>
<span id="cb11-57"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Affiche : [['Agricola', 'Puerto Rico', 'Caylus'], ['Codenames', 'Dominion'], ['Terraforming Mars']]</span></span></code></pre></div></div>
</section>
<section id="exercice-3-8-points" class="level2">
<h2 class="anchored" data-anchor-id="exercice-3-8-points">Exercice 3 (8 points)</h2>
<p>Cet exercice porte sur la programmation Python, la sécurisation des communications et les réseaux.</p>
<section id="partie-a---la-méthode-du-masque-jetable" class="level4">
<h4 class="anchored" data-anchor-id="partie-a---la-méthode-du-masque-jetable">Partie A - La méthode du masque jetable</h4>
<ol type="1">
<li><p>Pour chiffrer le message <code>LIBRE</code> avec la clé <code>EYQMT</code>, on suit la méthode décrite :</p>
<ol type="1">
<li>Convertir les lettres en rangs (de 0 à 25).</li>
<li>Additionner les rangs du message et de la clé.</li>
<li>Appliquer le modulo 26 au résultat.</li>
<li>Reconvertir les rangs obtenus en lettres.</li>
</ol></li>
</ol>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: left;">Opération</th>
<th style="text-align: center;">L</th>
<th style="text-align: center;">I</th>
<th style="text-align: center;">B</th>
<th style="text-align: center;">R</th>
<th style="text-align: center;">E</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Rang du message</td>
<td style="text-align: center;">11</td>
<td style="text-align: center;">8</td>
<td style="text-align: center;">1</td>
<td style="text-align: center;">17</td>
<td style="text-align: center;">4</td>
</tr>
<tr class="even">
<td style="text-align: left;">Clé</td>
<td style="text-align: center;">E</td>
<td style="text-align: center;">Y</td>
<td style="text-align: center;">Q</td>
<td style="text-align: center;">M</td>
<td style="text-align: center;">T</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Rang de la clé</td>
<td style="text-align: center;">4</td>
<td style="text-align: center;">24</td>
<td style="text-align: center;">16</td>
<td style="text-align: center;">12</td>
<td style="text-align: center;">19</td>
</tr>
<tr class="even">
<td style="text-align: left;">Somme</td>
<td style="text-align: center;">15</td>
<td style="text-align: center;">32</td>
<td style="text-align: center;">17</td>
<td style="text-align: center;">29</td>
<td style="text-align: center;">23</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Somme mod 26</td>
<td style="text-align: center;">15</td>
<td style="text-align: center;">6</td>
<td style="text-align: center;">17</td>
<td style="text-align: center;">3</td>
<td style="text-align: center;">23</td>
</tr>
<tr class="even">
<td style="text-align: left;">Lettre chiffrée</td>
<td style="text-align: center;"><strong>P</strong></td>
<td style="text-align: center;"><strong>G</strong></td>
<td style="text-align: center;"><strong>R</strong></td>
<td style="text-align: center;"><strong>D</strong></td>
<td style="text-align: center;"><strong>X</strong></td>
</tr>
</tbody>
</table>
<p>Le message chiffré est <strong><code>PGRDX</code></strong>.</p>
<ol start="2" type="1">
<li><p>La fonction <code>indice</code> peut être écrite en utilisant la méthode <code>.index()</code> des listes en Python.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb12" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb12-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> indice(element, L):</span>
<span id="cb12-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">"""</span></span>
<span id="cb12-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    Renvoie l'indice de element dans la liste L.</span></span>
<span id="cb12-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    """</span></span>
<span id="cb12-5">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> L.index(element)</span></code></pre></div></div>
<p>Autre solution possible, plus simple :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb13-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> indice(element, L):</span>
<span id="cb13-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">"""</span></span>
<span id="cb13-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    Renvoie l'indice de element dans la liste L.</span></span>
<span id="cb13-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    """</span></span>
<span id="cb13-5">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> i <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(L)):</span>
<span id="cb13-6">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> L[i] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> element:</span>
<span id="cb13-7">            <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> i</span>
<span id="cb13-8">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Si l'élément n'est pas trouvé, on renvoie -1.</span></span></code></pre></div></div></li>
<li><p>La fonction <code>lettres_vers_indices</code> parcourt la chaîne de caractères et utilise la liste globale <code>alphabet</code> pour trouver l’indice de chaque lettre.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb14" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb14-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On suppose que la variable 'alphabet' est définie globalement.</span></span>
<span id="cb14-2">alphabet <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> [<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'A'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'B'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'C'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'D'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'E'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'F'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'G'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'H'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'I'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'J'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'K'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'L'</span>, </span>
<span id="cb14-3">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'M'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'N'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'O'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'P'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Q'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'R'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'S'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'T'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'U'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'V'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'W'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'X'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Y'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Z'</span>]</span>
<span id="cb14-4"></span>
<span id="cb14-5"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> lettres_vers_indices(chaine):</span>
<span id="cb14-6">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">"""</span></span>
<span id="cb14-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    Renvoie la liste des indices des caractères de la chaîne.</span></span>
<span id="cb14-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    """</span></span>
<span id="cb14-9">    indices <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb14-10">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> caractere <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> chaine:</span>
<span id="cb14-11">        indices.append(indice(caractere, alphabet))</span>
<span id="cb14-12">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> indices</span>
<span id="cb14-13"></span>
<span id="cb14-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Une version plus concise avec une liste en compréhension :</span></span>
<span id="cb14-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># def lettres_vers_indices(chaine):</span></span>
<span id="cb14-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#     return [indice(c, alphabet) for c in chaine]</span></span></code></pre></div></div></li>
<li><p>Voici le code complété de la fonction <code>chiffrement</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb15" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb15-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> chiffrement(msg, cle):</span>
<span id="cb15-2">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">assert</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(cle) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(msg), <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'impossible'</span></span>
<span id="cb15-3">    indices_msg <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> lettres_vers_indices(msg)</span>
<span id="cb15-4">    indices_cle <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> lettres_vers_indices(cle)</span>
<span id="cb15-5">    n <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(msg)</span>
<span id="cb15-6">    indices_msg_chiffre <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb15-7">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> k <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(n):</span>
<span id="cb15-8">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 8 : Addition des indices du message et de la clé</span></span>
<span id="cb15-9">        ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> indices_msg[k] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> indices_cle[k]</span>
<span id="cb15-10">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 9 : Application du modulo 26 si nécessaire</span></span>
<span id="cb15-11">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">26</span>:</span>
<span id="cb15-12">            <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 10 : L'opération est une soustraction de 26</span></span>
<span id="cb15-13">            ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">26</span></span>
<span id="cb15-14">        indices_msg_chiffre.append(ind)</span>
<span id="cb15-15">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 12 : Conversion de la liste d'indices en chaîne de caractères</span></span>
<span id="cb15-16">    msg_chiffre <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> indices_vers_lettres(indices_msg_chiffre)</span>
<span id="cb15-17">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 13</span></span>
<span id="cb15-18">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> msg_chiffre</span></code></pre></div></div></li>
<li><p>Lors de l’appel <code>chiffrement('RESEAU', 'GFTZ')</code>, la condition de l’instruction <code>assert</code> est évaluée. <code>len('RESEAU')</code> vaut 6 et <code>len('GFTZ')</code> vaut 4. La condition <code>len(cle) &gt;= len(msg)</code> (soit <code>4 &gt;= 6</code>) est fausse.</p>
<p>L’exécution du programme s’arrête et une erreur de type <code>AssertionError</code> est levée, affichant le message <code>'impossible'</code>.</p></li>
<li><p>Pour déchiffrer <code>GMEDH</code> avec la clé <code>FVEIT</code>, on effectue l’opération inverse : la soustraction modulo 26. <img src="https://latex.codecogs.com/png.latex?C_%7Bdechiffr%C3%A9%7D%20=%20(C_%7Bchiffr%C3%A9%7D%20-%20C_%7Bcl%C3%A9%7D)%20%5Cpmod%7B26%7D">.</p></li>
</ol>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: left;">Opération</th>
<th style="text-align: center;">G</th>
<th style="text-align: center;">M</th>
<th style="text-align: center;">E</th>
<th style="text-align: center;">D</th>
<th style="text-align: center;">H</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Rang chiffré</td>
<td style="text-align: center;">6</td>
<td style="text-align: center;">12</td>
<td style="text-align: center;">4</td>
<td style="text-align: center;">3</td>
<td style="text-align: center;">7</td>
</tr>
<tr class="even">
<td style="text-align: left;">Clé</td>
<td style="text-align: center;">F</td>
<td style="text-align: center;">V</td>
<td style="text-align: center;">E</td>
<td style="text-align: center;">I</td>
<td style="text-align: center;">T</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Rang de la clé</td>
<td style="text-align: center;">5</td>
<td style="text-align: center;">21</td>
<td style="text-align: center;">4</td>
<td style="text-align: center;">8</td>
<td style="text-align: center;">19</td>
</tr>
<tr class="even">
<td style="text-align: left;">Différence</td>
<td style="text-align: center;">1</td>
<td style="text-align: center;">-9</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">-5</td>
<td style="text-align: center;">-12</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Différence mod 26</td>
<td style="text-align: center;">1</td>
<td style="text-align: center;">17</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">21</td>
<td style="text-align: center;">14</td>
</tr>
<tr class="even">
<td style="text-align: left;">Lettre déchiffrée</td>
<td style="text-align: center;"><strong>B</strong></td>
<td style="text-align: center;"><strong>R</strong></td>
<td style="text-align: center;"><strong>A</strong></td>
<td style="text-align: center;"><strong>V</strong></td>
<td style="text-align: center;"><strong>O</strong></td>
</tr>
</tbody>
</table>
<p>Le message déchiffré est <strong><code>BRAVO</code></strong>.</p>
<ol start="7" type="1">
<li><p>Pour déchiffrer un message, il faut effectuer l’opération mathématique inverse de celle du chiffrement. Le chiffrement est une addition modulo 26. Son inverse est donc une <strong>soustraction modulo 26</strong>.</p>
<p>Pour chaque caractère, on soustrait le rang de la lettre de la clé au rang de la lettre du message chiffré, et on prend le résultat modulo 26.</p>
<p>Mathématiquement : si <img src="https://latex.codecogs.com/png.latex?Chiffr%C3%A9%20=%20(Message%20+%20Cl%C3%A9)%20%5Cpmod%7B26%7D">, alors <img src="https://latex.codecogs.com/png.latex?Message%20=%20(Chiffr%C3%A9%20-%20Cl%C3%A9)%20%5Cpmod%7B26%7D">.</p></li>
<li><p>Pour obtenir la fonction <code>dechiffrement</code>, on adapte la fonction <code>chiffrement</code> en remplaçant l’addition par une soustraction.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb16" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb16-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> dechiffrement(msg_chiffre, cle):</span>
<span id="cb16-2">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">assert</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(cle) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(msg_chiffre), <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'impossible'</span></span>
<span id="cb16-3">    indices_msg <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> lettres_vers_indices(msg_chiffre)</span>
<span id="cb16-4">    indices_cle <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> lettres_vers_indices(cle)</span>
<span id="cb16-5">    n <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(msg_chiffre)</span>
<span id="cb16-6">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 6 adaptée</span></span>
<span id="cb16-7">    indices_msg_dechiffre <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb16-8">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> k <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(n):</span>
<span id="cb16-9">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 8 adaptée : Soustraction des indices</span></span>
<span id="cb16-10">        ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> indices_msg[k] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> indices_cle[k]</span>
<span id="cb16-11">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 9 adaptée : Gestion des résultats négatifs</span></span>
<span id="cb16-12">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>:</span>
<span id="cb16-13">            <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 10 adaptée : Ajout de 26</span></span>
<span id="cb16-14">            ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> ind <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">26</span></span>
<span id="cb16-15">        indices_msg_dechiffre.append(ind)</span>
<span id="cb16-16">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 12 adaptée</span></span>
<span id="cb16-17">    msg_dechiffre <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> indices_vers_lettres(indices_msg_dechiffre)</span>
<span id="cb16-18">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ligne 13 adaptée</span></span>
<span id="cb16-19">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> msg_dechiffre</span></code></pre></div></div></li>
</ol>
</section>
<section id="partie-b---sécurisation-des-communications" class="level4">
<h4 class="anchored" data-anchor-id="partie-b---sécurisation-des-communications">Partie B - Sécurisation des communications</h4>
<ol start="9" type="1">
<li><p>La différence fondamentale entre un algorithme de chiffrement symétrique et asymétrique réside dans la gestion des clés :</p>
<ul>
<li><strong>Chiffrement symétrique</strong> : utilise <strong>une seule et même clé secrète</strong> pour chiffrer et déchiffrer le message. Cette clé doit être partagée de manière sécurisée entre l’émetteur et le destinataire avant la communication.</li>
<li><strong>Chiffrement asymétrique</strong> : utilise une <strong>paire de clés</strong> pour chaque utilisateur : une <strong>clé publique</strong>, que l’on peut distribuer librement, et une <strong>clé privée</strong>, qui doit rester secrète. Ce qui est chiffré avec la clé publique ne peut être déchiffré qu’avec la clé privée correspondante.</li>
</ul></li>
<li><p>Alice chiffre son message avec la clé publique de Bob. Pour déchiffrer le message reçu, Bob utilise sa <strong>clé privée</strong>, qui est la seule capable d’inverser l’opération de chiffrement effectuée par sa clé publique.</p></li>
<li><p>Dans le scénario décrit, n’importe qui (une tierce personne, Eve par exemple) peut obtenir la clé publique de Bob. Eve peut alors chiffrer un message avec cette clé et l’envoyer à Bob en se faisant passer pour Alice. Bob pourra déchiffrer le message, mais n’aura aucun moyen de vérifier que l’expéditeur est bien Alice. Ce protocole simple ne garantit pas <strong>l’authentification</strong> de l’émetteur.</p></li>
<li><p><strong>HTTPS</strong> (HyperText Transfer Protocol Secure) est la version sécurisée du protocole HTTP. Il combine HTTP avec un protocole de sécurité comme TLS (Transport Layer Security). HTTPS assure trois garanties de sécurité principales :</p>
<ul>
<li><strong>Confidentialité</strong> : Les données échangées sont chiffrées, les rendant illisibles pour un attaquant qui les intercepterait.</li>
<li><strong>Intégrité</strong> : Les données ne peuvent pas être modifiées durant leur transit sans que la modification soit détectée.</li>
<li><strong>Authentification</strong> : Il permet de vérifier l’identité du serveur web auquel on se connecte, grâce à un système de certificats numériques.</li>
</ul></li>
<li><p>On utilise le protocole HTTPS (qui est un système hybride) plutôt qu’un chiffrement purement asymétrique pour des raisons de <strong>performance</strong>. Le chiffrement asymétrique est beaucoup plus lent et gourmand en ressources de calcul que le chiffrement symétrique. Il est donc mal adapté pour chiffrer de grandes quantités de données. HTTPS utilise le chiffrement asymétrique uniquement au début de la connexion pour authentifier le serveur et négocier une clé de session secrète. Ensuite, toute la communication est chiffrée avec un algorithme symétrique, beaucoup plus rapide, utilisant cette clé de session.</p></li>
</ol>
</section>
<section id="partie-c---réseaux" class="level4">
<h4 class="anchored" data-anchor-id="partie-c---réseaux">Partie C - Réseaux</h4>
<ol start="14" type="1">
<li><p>L’affichage <code>100% packet loss</code> indique que la machine de Marc a envoyé 4 paquets <code>ping</code> à l’adresse IP <code>192.168.100.115</code>, mais n’a reçu aucune réponse. L’erreur de Marc est une faute de frappe dans l’adresse IP du poste de Bob. L’adresse correcte est <code>192.168.110.115</code>. Marc a tapé <code>100</code> au lieu de <code>110</code> dans le troisième octet. Il a donc tenté de contacter une machine sur un autre réseau (<code>192.168.100.0/24</code>), qui est probablement inaccessible depuis son poste.</p></li>
<li><p>Pour obtenir la représentation décimale du masque <code>11111111.11111111.11111111.11100000</code>, on convertit chaque octet binaire en décimal :</p>
<ul>
<li><code>11111111</code> en binaire correspond à <img src="https://latex.codecogs.com/png.latex?2%5E8-1%20=%20255"> en décimal.</li>
<li><code>11100000</code> en binaire correspond à <img src="https://latex.codecogs.com/png.latex?1%20%5Ctimes%202%5E7%20+%201%20%5Ctimes%202%5E6%20+%201%20%5Ctimes%202%5E5%20=%20128%20+%2064%20+%2032%20=%20224"> en décimal.</li>
</ul>
<p>Le masque de sous-réseau en décimal est <strong><code>255.255.255.224</code></strong>.</p></li>
<li><p>Le masque <code>255.255.255.224</code> a 27 bits à 1 pour la partie réseau (<img src="https://latex.codecogs.com/png.latex?8+8+8+3=27">). La partie hôte est donc sur les <img src="https://latex.codecogs.com/png.latex?32%20-%2027%20=%205"> bits restants. Le nombre total d’adresses IPv4 sur ce sous-réseau est <img src="https://latex.codecogs.com/png.latex?2%5E5%20=%20%5Ctextbf%7B32%7D">.</p>
<p>(Note : parmi ces 32 adresses, 2 sont réservées : l’adresse du sous-réseau lui-même et l’adresse de diffusion. Il y a donc <img src="https://latex.codecogs.com/png.latex?32%20-%202%20=%2030"> adresses attribuables à des hôtes).</p></li>
<li><p>Pour convertir le nombre 134 en binaire, on utilise la méthode des divisions successives par 2 ou par décomposition en puissances de 2. <img src="https://latex.codecogs.com/png.latex?134%20=%20128%20+%206%20=%20128%20+%204%20+%202%20=%201%20%5Ccdot%202%5E7%20+%200%20%5Ccdot%202%5E6%20+%200%20%5Ccdot%202%5E5%20+%200%20%5Ccdot%202%5E4%20+%200%20%5Ccdot%202%5E3%20+%201%20%5Ccdot%202%5E2%20+%201%20%5Ccdot%202%5E1%20+%200%20%5Ccdot%202%5E0">.</p>
<p>La représentation binaire de 134 sur un octet est <strong><code>10000110</code></strong>.</p></li>
<li><p>Pour savoir quelle commande a fonctionné, il faut déterminer si les machines cibles sont dans le même sous-réseau que Zoé. Deux machines peuvent communiquer directement si elles sont sur le même sous-réseau.</p>
<ul>
<li><p>Masque : <code>255.255.255.224</code> (<code>11100000</code> pour le dernier octet).</p></li>
<li><p>IP de Zoé : <code>192.168.110.134</code> (<code>10000110</code> pour le dernier octet).</p>
<ul>
<li>Adresse du sous-réseau de Zoé : <code>134 ET 224</code> -&gt; <code>10000110 ET 11100000</code> = <code>10000000</code> (soit 128). Le sous-réseau est <code>192.168.110.128</code>.</li>
</ul></li>
<li><p><strong>Commande n°1</strong> : <code>ping 192.168.110.115</code> (Bob)</p>
<ul>
<li>Le dernier octet de l’IP de Bob est 115 (<code>01110011</code>).</li>
<li>Adresse du sous-réseau de Bob : <code>115 ET 224</code> -&gt; <code>01110011 ET 11100000</code> = <code>01100000</code> (soit 96). Le sous-réseau est <code>192.168.110.96</code>.</li>
</ul></li>
<li><p><strong>Commande n°2</strong> : <code>ping 192.168.110.153</code> (Marc)</p>
<ul>
<li>Le dernier octet de l’IP de Marc est 153 (<code>10011001</code>).</li>
<li>Adresse du sous-réseau de Marc : <code>153 ET 224</code> -&gt; <code>10011001 ET 11100000</code> = <code>10000000</code> (soit 128). Le sous-réseau est <code>192.168.110.128</code>.</li>
</ul></li>
</ul>
<p><strong>Conclusion</strong> : Zoé et Marc sont sur le même sous-réseau (<code>192.168.110.128</code>), alors que Bob est sur un sous-réseau différent (<code>192.168.110.96</code>). La communication directe est possible entre Zoé et Marc.</p>
<p>C’est donc la <strong>commande n°2</strong> qui a produit l’affichage indiquant une réussite de la communication.</p></li>
</ol>


</section>
</section>

 ]]></description>
  <category>NSI</category>
  <category>Annales</category>
  <guid>https://mathsinfolycee.fr/posts/2025-06-23-NSIMetropoleJ2/</guid>
  <pubDate>Sun, 22 Jun 2025 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025-06-23-NSIMetropoleJ2/arbre.png" medium="image" type="image/png" height="67" width="144"/>
</item>
<item>
  <title>Corrigé du sujet de NSI du baccalauréat 2025 - Métropole Jour 1</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025-06-18-NSIMetropoleJ1/</link>
  <description><![CDATA[ 





<section id="corrigé-de-lexercice-1-6-points" class="level1">
<h1>Corrigé de l’Exercice 1 (6 points)</h1>
<p>Cet exercice évalue les compétences sur les bases de données relationnelles et le langage SQL.</p>
<section id="partie-a" class="level2">
<h2 class="anchored" data-anchor-id="partie-a">Partie A</h2>
<p>Dans cette partie, nous travaillons avec une unique table <code>inventaire</code>.</p>
<section id="question-1" class="level3">
<h3 class="anchored" data-anchor-id="question-1">Question 1</h3>
<p>Expliquer pourquoi l’attribut <code>num_ser</code> ne peut pas être une clé primaire de la relation <code>inventaire</code>.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Clé primaire
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une clé primaire est un attribut (ou un ensemble d’attributs) qui permet d’identifier de manière <strong>unique</strong> chaque enregistrement (ou tuple) dans une table. Par conséquent, la valeur d’une clé primaire ne peut pas être présente en double dans la table.</p>
</div>
</div>
<p>L’attribut <code>num_ser</code> ne peut pas être une clé primaire car ses valeurs ne sont pas uniques dans la table. On observe que la valeur <code>81757532</code> apparaît deux fois dans la colonne <code>num_ser</code> : pour la guitare avec <code>id=4</code> et pour celle avec <code>id=8</code>. Une clé primaire ne peut pas contenir de doublons.</p>
</section>
<section id="question-2" class="level3">
<h3 class="anchored" data-anchor-id="question-2">Question 2</h3>
<p>Donner, sous forme de tableau, le résultat de la requête suivante appliquée à l’extrait de table précédent.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb1-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> marque, modele</span>
<span id="cb1-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> inventaire</span>
<span id="cb1-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> annee <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1956</span></span></code></pre></div></div>
<p>La requête sélectionne les attributs <code>marque</code> et <code>modele</code> pour tous les enregistrements où l’année est <code>1956</code>. En examinant la table <code>inventaire</code>, deux lignes correspondent à ce critère : celle avec <code>id=1</code> et celle avec <code>id=7</code>.</p>
<p>Le résultat est donc :</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: left;">marque</th>
<th style="text-align: left;">modele</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Gibson</td>
<td style="text-align: left;">Les Paul Goldtop</td>
</tr>
<tr class="even">
<td style="text-align: left;">Fender</td>
<td style="text-align: left;">Stratocaster</td>
</tr>
</tbody>
</table>
</section>
<section id="question-3" class="level3">
<h3 class="anchored" data-anchor-id="question-3">Question 3</h3>
<p>Écrire une requête SQL permettant d’obtenir toutes les années du modèle Les Paul Standard dans la collection.</p>
<p>Pour sélectionner les années, on utilise <code>SELECT annee</code>. Pour ne garder que celles correspondant au modèle ‘Les Paul Standard’, on utilise une clause <code>WHERE</code>. Il est judicieux d’utiliser <code>DISTINCT</code> pour éviter d’afficher des doublons si plusieurs guitares de ce modèle ont été fabriquées la même année.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Clause <code>DISTINCT</code>
</div>
</div>
<div class="callout-body-container callout-body">
<p>La clause <code>DISTINCT</code> s’utilise avec <code>SELECT</code> pour éliminer les lignes en double dans le résultat d’une requête.</p>
</div>
</div>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb2-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">DISTINCT</span> annee</span>
<span id="cb2-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> inventaire</span>
<span id="cb2-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> modele <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Les Paul Standard'</span>;</span></code></pre></div></div>
</section>
<section id="question-4" class="level3">
<h3 class="anchored" data-anchor-id="question-4">Question 4</h3>
<p>Écrire une requête SQL permettant d’obtenir tous les modèles de guitares de la marque Gibson par ordre croissant de l’année dans la collection.</p>
<p>Il faut filtrer les guitares de marque ‘Gibson’ avec <code>WHERE</code> et trier le résultat par année croissante avec <code>ORDER BY</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb3-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> modele</span>
<span id="cb3-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> inventaire</span>
<span id="cb3-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> marque <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Gibson'</span></span>
<span id="cb3-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">ORDER</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">BY</span> annee <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">ASC</span>;</span></code></pre></div></div>
<p><em>Note : <code>ASC</code> (pour ascendant) est l’ordre de tri par défaut et peut être omis.</em></p>
</section>
<section id="question-5" class="level3">
<h3 class="anchored" data-anchor-id="question-5">Question 5</h3>
<p>Maud a fait une erreur de saisie pour la guitare d’identifiant <code>id=1</code>. L’année est en réalité 1957. Écrire une requête SQL permettant de corriger cette erreur de saisie.</p>
<p>La modification d’un enregistrement existant se fait avec la commande <code>UPDATE</code>. On spécifie la table à modifier, les colonnes et leurs nouvelles valeurs avec <code>SET</code>, et l’enregistrement à modifier avec <code>WHERE</code>.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Syntaxe <code>UPDATE</code>
</div>
</div>
<div class="callout-body-container callout-body">
<p><code>UPDATE nom_de_la_table SET colonne1 = valeur1, colonne2 = valeur2, ... WHERE condition;</code> La clause <code>WHERE</code> est importante pour ne pas modifier toutes les lignes de la table.</p>
</div>
</div>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb4-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">UPDATE</span> inventaire</span>
<span id="cb4-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SET</span> annee <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1957</span></span>
<span id="cb4-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">id</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>;</span></code></pre></div></div>
</section>
</section>
<section id="partie-b" class="level2">
<h2 class="anchored" data-anchor-id="partie-b">Partie B</h2>
<p>Dans cette partie, la base de données est normalisée en trois tables : <code>marque</code>, <code>modele</code> et <code>guitare</code>.</p>
<section id="question-6" class="level3">
<h3 class="anchored" data-anchor-id="question-6">Question 6</h3>
<p>Expliquer brièvement, en justifiant, dans quel ordre les trois tables doivent être créées.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Clé étrangère
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une clé étrangère est un attribut dans une table qui fait référence à la clé primaire d’une autre table. Pour pouvoir créer une contrainte de clé étrangère, la table référencée doit déjà exister.</p>
</div>
</div>
<p>L’ordre de création des tables est contraint par les clés étrangères.</p>
<ul>
<li>La table <code>modele</code> contient une clé étrangère <code>id_marque</code> qui référence la clé primaire de la table <code>marque</code>. La table <code>marque</code> doit donc être créée avant la table <code>modele</code>.</li>
<li>La table <code>guitare</code> contient une clé étrangère <code>id_modele</code> qui référence la clé primaire de la table <code>modele</code>. La table <code>modele</code> doit donc être créée avant la table <code>guitare</code>.</li>
</ul>
<p>L’ordre de création est donc : 1. <code>marque</code> 2. <code>modele</code> 3. <code>guitare</code></p>
</section>
<section id="question-7" class="level3">
<h3 class="anchored" data-anchor-id="question-7">Question 7</h3>
<p>Écrire une requête SQL permettant d’obtenir le numéro de série et l’année de toutes les guitares Les Paul Standard de la collection.</p>
<p>Les informations <code>num_ser</code> et <code>annee</code> sont dans la table <code>guitare</code>, mais le nom du modèle ‘Les Paul Standard’ est dans la table <code>modele</code>. Il faut donc effectuer une jointure entre ces deux tables.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb5-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> G.num_ser, G.annee</span>
<span id="cb5-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> guitare <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">AS</span> G</span>
<span id="cb5-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">JOIN</span> modele <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">AS</span> M <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">ON</span> G.id_modele <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> M.<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">id</span></span>
<span id="cb5-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> M.nom <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Les Paul Standard'</span>;</span></code></pre></div></div>
<p><em>Note : l’utilisation d’alias (<code>AS G</code>, <code>AS M</code>) rend la requête plus lisible.</em></p>
</section>
<section id="question-8" class="level3">
<h3 class="anchored" data-anchor-id="question-8">Question 8</h3>
<p>Écrire une requête SQL permettant de retirer de la collection la guitare d’identifiant <code>id=3</code>.</p>
<p>La suppression d’un enregistrement se fait avec la commande <code>DELETE FROM</code>. Il est essentiel de spécifier la ligne à supprimer avec une clause <code>WHERE</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb6-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">DELETE</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> guitare</span>
<span id="cb6-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">id</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;</span></code></pre></div></div>
</section>
<section id="question-9" class="level3">
<h3 class="anchored" data-anchor-id="question-9">Question 9</h3>
<p>Écrire l’ensemble des requêtes SQL permettant d’ajouter la guitare suivante :</p>
<ul>
<li>marque : BC Rich</li>
<li>modèle : Mockingbird</li>
<li>année : 1992</li>
<li>numéro de série : 92R</li>
<li>prix : 5000.</li>
</ul>
<p>L’ajout doit se faire en respectant les contraintes de clés étrangères. On doit d’abord insérer la nouvelle marque, puis le nouveau modèle (en le liant à la marque), et enfin la nouvelle guitare (en la liant au modèle). Les identifiants à utiliser sont fournis.</p>
<ol type="1">
<li><p><strong>Insertion de la marque :</strong></p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb7-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">INSERT</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">INTO</span> marque (<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">id</span>, nom) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">VALUES</span> (<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'BC Rich'</span>);</span></code></pre></div></div></li>
<li><p><strong>Insertion du modèle :</strong></p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb8-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">INSERT</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">INTO</span> modele (<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">id</span>, nom, id_marque) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">VALUES</span> (<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Mockingbird'</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>);</span></code></pre></div></div></li>
<li><p><strong>Insertion de la guitare :</strong></p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb9-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">INSERT</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">INTO</span> guitare (<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">id</span>, id_modele, annee, num_ser, prix) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">VALUES</span> (<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">9</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1992</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'92R'</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5000</span>);</span></code></pre></div></div></li>
</ol>
</section>
<section id="question-10" class="level3">
<h3 class="anchored" data-anchor-id="question-10">Question 10</h3>
<p>Écrire une requête SQL permettant de calculer la valeur totale des modèles Stratocaster de la collection de Slash.</p>
<p>Il faut utiliser la fonction d’agrégation <code>SUM()</code> sur la colonne <code>prix</code> de la table <code>guitare</code>. Comme pour la question 7, une jointure avec la table <code>modele</code> est nécessaire pour filtrer sur le nom du modèle ‘Stratocaster’.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode sql code-with-copy"><code class="sourceCode sql"><span id="cb10-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">SELECT</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">SUM</span>(G.prix)</span>
<span id="cb10-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">FROM</span> guitare <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">AS</span> G</span>
<span id="cb10-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">JOIN</span> modele <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">AS</span> M <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">ON</span> G.id_modele <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> M.<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">id</span></span>
<span id="cb10-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">WHERE</span> M.nom <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Stratocaster'</span>;</span></code></pre></div></div>
</section>
</section>
</section>
<section id="corrigé-de-lexercice-2-6-points" class="level1">
<h1>Corrigé de l’Exercice 2 (6 points)</h1>
<p>Cet exercice porte sur l’algorithmique, la programmation orientée objet, l’utilisation de structures de données comme la file, et la simulation d’un ordonnanceur de tâches.</p>
<section id="question-1-1" class="level3">
<h3 class="anchored" data-anchor-id="question-1-1">Question 1</h3>
<p>Donner le code Python qui permet d’instancier deux variables <code>tache1</code> et <code>tache2</code> représentant les tâches.</p>
<p>Le constructeur de la classe <code>Tache</code> est <code>__init__(self, numero, nom, duree)</code>. Il suffit de l’appeler avec les bonnes valeurs pour chaque tâche.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb11-1">tache1 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> Tache(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Répondre aux e-mails"</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">45</span>)</span>
<span id="cb11-2">tache2 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> Tache(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Ranger ma chambre"</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">60</span>)</span></code></pre></div></div>
</section>
<section id="question-2-1" class="level3">
<h3 class="anchored" data-anchor-id="question-2-1">Question 2</h3>
<p>Recopier et compléter le code de la méthode <code>avancer</code> de la classe <code>Tache</code>.</p>
<p>La méthode <code>avancer</code> doit diminuer l’attribut <code>duree_restante</code> de la valeur <code>n</code> passée en paramètre.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb12" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb12-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> avancer(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>, n):</span>
<span id="cb12-2">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.duree_restante <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-=</span> n</span></code></pre></div></div>
</section>
<section id="question-3-1" class="level3">
<h3 class="anchored" data-anchor-id="question-3-1">Question 3</h3>
<p>Recopier et compléter le code de la méthode <code>est_terminee</code> de la classe <code>Tache</code>.</p>
<p>Une tâche est terminée si sa durée restante est négative ou nulle. La méthode doit donc renvoyer le résultat de la comparaison <code>self.duree_restante &lt;= 0</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb13-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> est_terminee(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):</span>
<span id="cb13-2">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.duree_restante <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span></span></code></pre></div></div>
</section>
<section id="question-4-1" class="level3">
<h3 class="anchored" data-anchor-id="question-4-1">Question 4</h3>
<p>Représenter l’état de la file <code>f</code> lorsqu’on lui ajoute successivement la tâche numéro 6 avec la priorité 2, puis la tâche numéro 7 avec la priorité 4.</p>
<p>La file initiale est : <code>[début] (&lt;t3&gt;, 4) (&lt;t1&gt;, 3) (&lt;t2&gt;, 3) (&lt;t4&gt;, 1) (&lt;t5&gt;, 1) [fin]</code></p>
<ol type="1">
<li><p><strong>Ajout de <code>(&lt;t6&gt;, 2)</code> :</strong> La priorité 2 est inférieure à 3 et supérieure à 1. L’élément s’insère donc après tous les éléments de priorité 3 et avant tous ceux de priorité 1. État intermédiaire : <code>[début] (&lt;t3&gt;, 4) (&lt;t1&gt;, 3) (&lt;t2&gt;, 3) (&lt;t6&gt;, 2) (&lt;t4&gt;, 1) (&lt;t5&gt;, 1) [fin]</code></p></li>
<li><p><strong>Ajout de <code>(&lt;t7&gt;, 4)</code> :</strong> La priorité 4 est la même que celle de <code>&lt;t3&gt;</code>. Selon la condition 2, les éléments de même priorité sont rangés par ordre d’insertion. <code>&lt;t7&gt;</code> est inséré après <code>&lt;t3&gt;</code>, qui était déjà dans la file. État final : <code>[début] (&lt;t3&gt;, 4) (&lt;t7&gt;, 4) (&lt;t1&gt;, 3) (&lt;t2&gt;, 3) (&lt;t6&gt;, 2) (&lt;t4&gt;, 1) (&lt;t5&gt;, 1) [fin]</code></p></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : File (Queue)
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une file est une structure de données de type FIFO (First-In, First-Out, ou “premier entré, premier sorti”). Les nouveaux éléments sont ajoutés à la fin (enfiler) et les éléments sont retirés depuis le début (défiler). Dans cet exercice, la file est utilisée pour implémenter une file de priorité, où l’ordre est maintenu par une fonction d’ajout spécifique.</p>
</div>
</div>
</section>
<section id="question-5-1" class="level3">
<h3 class="anchored" data-anchor-id="question-5-1">Question 5</h3>
<p>En repartant de la file <code>f</code> suivante : <code>[début](&lt;t3&gt;, 4)(&lt;t1&gt;, 3)(&lt;t2&gt;, 3)(&lt;t4&gt;, 1)(&lt;t5&gt;, 1)[fin]</code> donner la valeur de <code>f.defiler()[0]</code> et représenter le contenu de la file <code>f</code> après l’exécution de cette instruction.</p>
<ul>
<li><code>f.defiler()</code> retire et renvoie le premier élément de la file, qui est le tuple <code>(&lt;t3&gt;, 4)</code>.</li>
<li>L’opérateur <code>[0]</code> sélectionne le premier élément de ce tuple, soit <code>&lt;t3&gt;</code>.</li>
<li>Après cette opération, la file ne contient plus cet élément.</li>
</ul>
<p><strong>Valeur renvoyée :</strong> <code>&lt;t3&gt;</code></p>
<p><strong>Contenu de la file <code>f</code> après :</strong> <code>[début] (&lt;t1&gt;, 3) (&lt;t2&gt;, 3) (&lt;t4&gt;, 1) (&lt;t5&gt;, 1) [fin]</code></p>
</section>
<section id="question-6-1" class="level3">
<h3 class="anchored" data-anchor-id="question-6-1">Question 6</h3>
<p>En repartant de la file <code>f</code> suivante : <code>[début](&lt;t3&gt;, 4)(&lt;t1&gt;, 3)(&lt;t2&gt;, 3)(&lt;t4&gt;, 1)(&lt;t5&gt;, 1)[fin]</code> donner la valeur de <code>f.examiner()[1]</code> et représenter le contenu de la file <code>f</code> après l’exécution de cette instruction.</p>
<ul>
<li><code>f.examiner()</code> renvoie le premier élément de la file sans le retirer. Cet élément est le tuple <code>(&lt;t3&gt;, 4)</code>.</li>
<li>L’opérateur <code>[1]</code> sélectionne le deuxième élément de ce tuple, soit <code>4</code>.</li>
<li>La file reste inchangée.</li>
</ul>
<p><strong>Valeur renvoyée :</strong> <code>4</code></p>
<p><strong>Contenu de la file <code>f</code> après :</strong> <code>[début] (&lt;t3&gt;, 4) (&lt;t1&gt;, 3) (&lt;t2&gt;, 3) (&lt;t4&gt;, 1) (&lt;t5&gt;, 1) [fin]</code></p>
</section>
<section id="question-7-1" class="level3">
<h3 class="anchored" data-anchor-id="question-7-1">Question 7</h3>
<p>Recopier et compléter le code de la fonction <code>ajouter_file_prio</code>.</p>
<p>L’algorithme consiste à transférer les éléments de <code>f</code> vers <code>f_aux</code> jusqu’à trouver le bon emplacement pour <code>(t, p)</code>, insérer <code>(t, p)</code>, transférer le reste de <code>f</code>, puis tout retransférer dans <code>f</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb14" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb14-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> ajouter_file_prio(f, t, p):</span>
<span id="cb14-2">    f_aux <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> File()</span>
<span id="cb14-3">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 1. Défiler les éléments de f de priorité &gt;= p vers f_aux</span></span>
<span id="cb14-4">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">while</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> f.est_vide() <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">and</span> f.examiner()[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> p:</span>
<span id="cb14-5">        f_aux.enfiler(f.defiler())</span>
<span id="cb14-6">    </span>
<span id="cb14-7">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 2. Enfiler le nouvel élément dans f_aux</span></span>
<span id="cb14-8">    f_aux.enfiler((t, p))</span>
<span id="cb14-9"></span>
<span id="cb14-10">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 3. Défiler le reste de f vers f_aux</span></span>
<span id="cb14-11">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">while</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> f.est_vide():</span>
<span id="cb14-12">        f_aux.enfiler(f.defiler())</span>
<span id="cb14-13"></span>
<span id="cb14-14">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 4. Reconstruire f en défilant f_aux</span></span>
<span id="cb14-15">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">while</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> f_aux.est_vide():</span>
<span id="cb14-16">        f.enfiler(f_aux.defiler())</span></code></pre></div></div>
</section>
<section id="question-8-1" class="level3">
<h3 class="anchored" data-anchor-id="question-8-1">Question 8</h3>
<p>Donner le coût d’exécution temporel dans le pire des cas de la fonction <code>ajouter_file_prio</code>, en fonction du nombre <code>m</code> d’éléments de la file <code>f</code>.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Complexité temporelle
</div>
</div>
<div class="callout-body-container callout-body">
<p>La complexité temporelle mesure l’évolution du temps d’exécution d’un algorithme en fonction de la taille de ses données d’entrée. On l’exprime souvent avec la notation “Grand O”, notée <img src="https://latex.codecogs.com/png.latex?O(...)">. Une complexité <img src="https://latex.codecogs.com/png.latex?O(m)"> signifie que le temps est proportionnel à la taille <img src="https://latex.codecogs.com/png.latex?m"> des données.</p>
</div>
</div>
<p>Dans le pire des cas (par exemple, lors de l’insertion d’un élément de la plus faible priorité), la fonction parcourt la totalité de la file <code>f</code> plusieurs fois :</p>
<ol type="1">
<li>La première boucle <code>while</code> parcourt les <code>m</code> éléments de <code>f</code>.</li>
<li>La deuxième boucle <code>while</code> (qui défile le reste de <code>f</code>) ne s’exécute pas.</li>
<li>La troisième boucle <code>while</code> parcourt les <code>m + 1</code> éléments de <code>f_aux</code> pour les remettre dans <code>f</code>.</li>
</ol>
<p>Chaque élément est donc défilé et enfilé un nombre constant de fois. Le nombre total d’opérations (<code>enfiler</code>, <code>defiler</code>) est proportionnel à <code>m</code>. Le coût d’exécution est donc linéaire par rapport au nombre d’éléments <code>m</code> dans la file.</p>
<p>La complexité temporelle est en <img src="https://latex.codecogs.com/png.latex?O(m)">.</p>
</section>
<section id="question-9-1" class="level3">
<h3 class="anchored" data-anchor-id="question-9-1">Question 9</h3>
<p>Indiquer pour chaque bloc de 25 minutes la tâche qui avance, en suivant le modèle proposé, jusqu’à la fin de toutes les tâches.</p>
<p>Le point important à ne pas oublier est le fonctionnement de la file de priorité et de l’ordonnanceur :</p>
<ol type="1">
<li><strong>Priorité absolue :</strong> L’ordonnanceur choisit <strong>toujours</strong> la tâche qui est en tête de file, c’est-à-dire celle qui a la plus haute priorité. Tant qu’il reste des tâches de priorité 4, aucune tâche de priorité 3 ne sera exécutée.</li>
<li><strong>Règle de ré-insertion (FIFO pour les priorités égales) :</strong> Lorsqu’une tâche non terminée est ré-insérée dans la file, elle est placée <strong>après</strong> toutes les autres tâches ayant la même priorité. C’est la condition 2 de l’énoncé.</li>
</ol>
<p>Cela signifie que les tâches de même priorité seront traitées en mode “tourniquet” (Round-Robin), mais seulement une fois que toutes les tâches de priorité supérieure sont terminées.</p>
<section id="déroulement-détaillé-de-lordonnancement" class="level4">
<h4 class="anchored" data-anchor-id="déroulement-détaillé-de-lordonnancement">Déroulement détaillé de l’ordonnancement</h4>
<p>Recréons la table de suivi de l’état de la file et des tâches, pas à pas.</p>
<p><strong>État initial :</strong></p>
<ul>
<li><strong>Tâches et durées restantes :</strong> t3(90), t7(20), t1(45), t2(60), t6(60), t4(30), t5(30).</li>
<li><strong>File <code>f</code> :</strong> <code>[ (t3, 4), (t7, 4), (t1, 3), (t2, 3), (t6, 2), (t4, 1), (t5, 1) ]</code></li>
<li><strong>Planning :</strong> <code>[]</code></li>
</ul>
<table class="caption-top table">
<colgroup>
<col style="width: 16%">
<col style="width: 16%">
<col style="width: 16%">
<col style="width: 16%">
<col style="width: 16%">
<col style="width: 16%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;">Session</th>
<th style="text-align: left;">Tâche traitée</th>
<th style="text-align: left;">Durée restante avant</th>
<th style="text-align: left;">Opération</th>
<th style="text-align: left;">Durée restante après</th>
<th style="text-align: left;">File après ré-insertion</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;"><strong>1</strong></td>
<td style="text-align: left;"><code>&lt;t3&gt;</code></td>
<td style="text-align: left;">90</td>
<td style="text-align: left;">Avance de 25. Non terminée. Ré-insérée après <code>&lt;t7&gt;</code>.</td>
<td style="text-align: left;">65</td>
<td style="text-align: left;"><code>[ (t7, 4), (t3, 4), (t1, 3), ... ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>2</strong></td>
<td style="text-align: left;"><code>&lt;t7&gt;</code></td>
<td style="text-align: left;">20</td>
<td style="text-align: left;">Avance de 25. <strong>Terminée</strong>.</td>
<td style="text-align: left;">-5</td>
<td style="text-align: left;"><code>[ (t3, 4), (t1, 3), (t2, 3), ... ]</code></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>3</strong></td>
<td style="text-align: left;"><code>&lt;t3&gt;</code></td>
<td style="text-align: left;">65</td>
<td style="text-align: left;">Avance de 25. Non terminée. Seule P4, revient en tête.</td>
<td style="text-align: left;">40</td>
<td style="text-align: left;"><code>[ (t3, 4), (t1, 3), (t2, 3), ... ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>4</strong></td>
<td style="text-align: left;"><code>&lt;t3&gt;</code></td>
<td style="text-align: left;">40</td>
<td style="text-align: left;">Avance de 25. Non terminée. Seule P4, revient en tête.</td>
<td style="text-align: left;">15</td>
<td style="text-align: left;"><code>[ (t3, 4), (t1, 3), (t2, 3), ... ]</code></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>5</strong></td>
<td style="text-align: left;"><code>&lt;t3&gt;</code></td>
<td style="text-align: left;">15</td>
<td style="text-align: left;">Avance de 25. <strong>Terminée</strong>.</td>
<td style="text-align: left;">-10</td>
<td style="text-align: left;"><code>[ (t1, 3), (t2, 3), (t6, 2), ... ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
<td style="text-align: left;"><em>Toutes les tâches de priorité 4 sont finies.</em></td>
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>6</strong></td>
<td style="text-align: left;"><code>&lt;t1&gt;</code></td>
<td style="text-align: left;">45</td>
<td style="text-align: left;">Avance de 25. Non terminée. Ré-insérée après <code>&lt;t2&gt;</code>.</td>
<td style="text-align: left;">20</td>
<td style="text-align: left;"><code>[ (t2, 3), (t1, 3), (t6, 2), ... ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>7</strong></td>
<td style="text-align: left;"><code>&lt;t2&gt;</code></td>
<td style="text-align: left;">60</td>
<td style="text-align: left;">Avance de 25. Non terminée. Ré-insérée après <code>&lt;t1&gt;</code>.</td>
<td style="text-align: left;">35</td>
<td style="text-align: left;"><code>[ (t1, 3), (t2, 3), (t6, 2), ... ]</code></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>8</strong></td>
<td style="text-align: left;"><code>&lt;t1&gt;</code></td>
<td style="text-align: left;">20</td>
<td style="text-align: left;">Avance de 25. <strong>Terminée</strong>.</td>
<td style="text-align: left;">-5</td>
<td style="text-align: left;"><code>[ (t2, 3), (t6, 2), (t4, 1), ... ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>9</strong></td>
<td style="text-align: left;"><code>&lt;t2&gt;</code></td>
<td style="text-align: left;">35</td>
<td style="text-align: left;">Avance de 25. Non terminée. Seule P3, revient en tête.</td>
<td style="text-align: left;">10</td>
<td style="text-align: left;"><code>[ (t2, 3), (t6, 2), (t4, 1), ... ]</code></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>10</strong></td>
<td style="text-align: left;"><code>&lt;t2&gt;</code></td>
<td style="text-align: left;">10</td>
<td style="text-align: left;">Avance de 25. <strong>Terminée</strong>.</td>
<td style="text-align: left;">-15</td>
<td style="text-align: left;"><code>[ (t6, 2), (t4, 1), (t5, 1) ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
<td style="text-align: left;"><em>Toutes les tâches de priorité 3 sont finies.</em></td>
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>11</strong></td>
<td style="text-align: left;"><code>&lt;t6&gt;</code></td>
<td style="text-align: left;">60</td>
<td style="text-align: left;">Avance de 25. Non terminée. Seule P2, revient en tête.</td>
<td style="text-align: left;">35</td>
<td style="text-align: left;"><code>[ (t6, 2), (t4, 1), (t5, 1) ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>12</strong></td>
<td style="text-align: left;"><code>&lt;t6&gt;</code></td>
<td style="text-align: left;">35</td>
<td style="text-align: left;">Avance de 25. Non terminée. Seule P2, revient en tête.</td>
<td style="text-align: left;">10</td>
<td style="text-align: left;"><code>[ (t6, 2), (t4, 1), (t5, 1) ]</code></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>13</strong></td>
<td style="text-align: left;"><code>&lt;t6&gt;</code></td>
<td style="text-align: left;">10</td>
<td style="text-align: left;">Avance de 25. <strong>Terminée</strong>.</td>
<td style="text-align: left;">-15</td>
<td style="text-align: left;"><code>[ (t4, 1), (t5, 1) ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
<td style="text-align: left;"><em>Toutes les tâches de priorité 2 sont finies.</em></td>
<td style="text-align: left;">—</td>
<td style="text-align: left;">—</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>14</strong></td>
<td style="text-align: left;"><code>&lt;t4&gt;</code></td>
<td style="text-align: left;">30</td>
<td style="text-align: left;">Avance de 25. Non terminée. Ré-insérée après <code>&lt;t5&gt;</code>.</td>
<td style="text-align: left;">5</td>
<td style="text-align: left;"><code>[ (t5, 1), (t4, 1) ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>15</strong></td>
<td style="text-align: left;"><code>&lt;t5&gt;</code></td>
<td style="text-align: left;">30</td>
<td style="text-align: left;">Avance de 25. Non terminée. Ré-insérée après <code>&lt;t4&gt;</code>.</td>
<td style="text-align: left;">5</td>
<td style="text-align: left;"><code>[ (t4, 1), (t5, 1) ]</code></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>16</strong></td>
<td style="text-align: left;"><code>&lt;t4&gt;</code></td>
<td style="text-align: left;">5</td>
<td style="text-align: left;">Avance de 25. <strong>Terminée</strong>.</td>
<td style="text-align: left;">-20</td>
<td style="text-align: left;"><code>[ (t5, 1) ]</code></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>17</strong></td>
<td style="text-align: left;"><code>&lt;t5&gt;</code></td>
<td style="text-align: left;">5</td>
<td style="text-align: left;">Avance de 25. <strong>Terminée</strong>.</td>
<td style="text-align: left;">-20</td>
<td style="text-align: left;"><code>[ ]</code> (File vide)</td>
</tr>
</tbody>
</table>
</section>
<section id="résultat-final" class="level4">
<h4 class="anchored" data-anchor-id="résultat-final">Résultat final</h4>
<p>La séquence correcte des tâches effectuées par tranche de 25 minutes est donc :</p>
<p><code>t3</code>, <code>t7</code>, <code>t3</code>, <code>t3</code>, <code>t3</code>, <code>t1</code>, <code>t2</code>, <code>t1</code>, <code>t2</code>, <code>t2</code>, <code>t6</code>, <code>t6</code>, <code>t6</code>, <code>t4</code>, <code>t5</code>, <code>t4</code>, <code>t5</code>.</p>
</section>
</section>
<section id="question-10-1" class="level3">
<h3 class="anchored" data-anchor-id="question-10-1">Question 10</h3>
<p>Écrire le code d’une fonction <code>planning</code> qui prend en paramètre une file de priorité <code>f</code> et qui renvoie une liste de tâches, dans l’ordre où elles vont être effectuées.</p>
<p>Cette fonction doit implémenter l’algorithme Pomodoro décrit précédemment.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb15" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb15-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> planning(f):</span>
<span id="cb15-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">"""</span></span>
<span id="cb15-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    Simule l'ordonnancement Pomodoro et renvoie la liste des tâches</span></span>
<span id="cb15-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    traitées à chaque session.</span></span>
<span id="cb15-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">    """</span></span>
<span id="cb15-6">    plan <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb15-7">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">while</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> f.est_vide():</span>
<span id="cb15-8">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 1. Défiler la tâche la plus prioritaire</span></span>
<span id="cb15-9">        element <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> f.defiler()</span>
<span id="cb15-10">        tache <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> element[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>]</span>
<span id="cb15-11">        priorite <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> element[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]</span>
<span id="cb15-12"></span>
<span id="cb15-13">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 2. L'ajouter au planning de la session</span></span>
<span id="cb15-14">        plan.append(tache)</span>
<span id="cb15-15"></span>
<span id="cb15-16">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 3. Avancer la tâche</span></span>
<span id="cb15-17">        tache.avancer(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>)</span>
<span id="cb15-18"></span>
<span id="cb15-19">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 4. Si elle n'est pas terminée, la ré-insérer dans la file</span></span>
<span id="cb15-20">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> tache.est_terminee():</span>
<span id="cb15-21">            ajouter_file_prio(f, tache, priorite)</span>
<span id="cb15-22">            </span>
<span id="cb15-23">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> plan </span></code></pre></div></div>
</section>
</section>
<section id="corrigé-de-lexercice-3-8-points" class="level1">
<h1>Corrigé de l’Exercice 3 (8 points)</h1>
<p>Cet exercice aborde l’architecture réseau (adressage IP, routage) et les structures de données (arbres binaires de recherche).</p>
<section id="partie-a-réseau-local" class="level2">
<h2 class="anchored" data-anchor-id="partie-a-réseau-local">Partie A : Réseau local</h2>
<section id="question-1-2" class="level3">
<h3 class="anchored" data-anchor-id="question-1-2">Question 1</h3>
<p>Indiquer les deux seules adresses IP valides pour cette nouvelle borne, parmi les quatre adresses IP proposées.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Adressage IP et Masque de sous-réseau
</div>
</div>
<div class="callout-body-container callout-body">
<p>Le réseau du café 1 est <code>192.168.20.0</code> avec un masque <code>255.255.255.0</code> (ou <code>/24</code>).</p>
<ul>
<li>L’<strong>adresse du réseau</strong> est <code>192.168.20.0</code>. Elle ne peut pas être attribuée à une machine.</li>
<li>L’<strong>adresse de diffusion</strong> (broadcast) est <code>192.168.20.255</code>. Elle ne peut pas être attribuée à une machine.</li>
<li>Les <strong>adresses valides pour les hôtes</strong> vont donc de <code>192.168.20.1</code> à <code>192.168.20.254</code>. Le dernier octet d’une adresse IPv4 doit être compris entre 0 et 255.</li>
</ul>
</div>
</div>
<p>Analysons les propositions :</p>
<ul>
<li><ol type="a">
<li><code>192.168.20.2</code> : Valide. Elle est dans la plage <code>192.168.20.1</code> - <code>192.168.20.254</code>.</li>
</ol></li>
<li><ol start="2" type="a">
<li><code>192.168.20.157</code> : Valide. Elle est dans la plage <code>192.168.20.1</code> - <code>192.168.20.254</code>.</li>
</ol></li>
<li><ol start="3" type="a">
<li><code>192.168.20.261</code> : Invalide. Le dernier octet (261) est supérieur à 255.</li>
</ol></li>
<li><ol start="4" type="a">
<li><code>192.168.24.10</code> : Invalide. Elle n’appartient pas au réseau <code>192.168.20.0</code> car le troisième octet (24) est différent.</li>
</ol></li>
</ul>
<p>Les deux adresses valides sont <strong>(a) <code>192.168.20.2</code></strong> et <strong>(b) <code>192.168.20.157</code></strong>.</p>
</section>
<section id="question-2-2" class="level3">
<h3 class="anchored" data-anchor-id="question-2-2">Question 2</h3>
<p>Déterminer l’adresse de diffusion du réseau du café 1.</p>
<p>Pour un réseau d’adresse <code>192.168.20.0</code> et de masque <code>255.255.255.0</code>, l’adresse de diffusion est celle où tous les bits de la partie hôte (le dernier octet ici) sont à 1. En binaire, <code>11111111</code> correspond à 255 en décimal. L’adresse de diffusion est donc <strong><code>192.168.20.255</code></strong>.</p>
</section>
<section id="question-3-2" class="level3">
<h3 class="anchored" data-anchor-id="question-3-2">Question 3</h3>
<p>Déterminer combien de machines informatiques il est encore possible de connecter au réseau du café 1 après l’installation de la troisième borne de commande.</p>
<p>Un masque <code>/24</code> laisse 8 bits pour la partie hôte, ce qui permet <img src="https://latex.codecogs.com/png.latex?2%5E8%20=%20256"> adresses au total. En retirant l’adresse réseau et l’adresse de diffusion, il y a <img src="https://latex.codecogs.com/png.latex?256%20-%202%20=%20254"> adresses disponibles pour les machines.</p>
<p>Machines déjà connectées sur le réseau <code>192.168.20.0</code> (d’après le schéma) :</p>
<ul>
<li>L’interface du routeur 2 : <code>192.168.20.1</code></li>
<li>Borne de commande 1 : <code>192.168.20.10</code></li>
<li>Borne de commande 2 : <code>192.168.20.11</code></li>
</ul>
<p>Cela fait 3 adresses utilisées. Si on ajoute une troisième borne, il y aura 4 adresses utilisées. Le nombre de machines qu’il est encore possible de connecter est donc : <img src="https://latex.codecogs.com/png.latex?254%20-%204%20=%20250">.</p>
<p>Il est encore possible de connecter <strong>250</strong> machines.</p>
</section>
<section id="question-4-2" class="level3">
<h3 class="anchored" data-anchor-id="question-4-2">Question 4</h3>
<p>Expliquer quelle est la longueur maximale du masque de sous-réseau que l’on pourrait choisir pour le réseau local du café 1.</p>
<p>Le réseau a besoin de 8 adresses IP (ce qui inclut l’adresse de réseau et de diffusion). Il nous faut donc trouver le plus petit nombre de bits <code>n</code> pour la partie hôte tel que <img src="https://latex.codecogs.com/png.latex?2%5En%20%5Cge%208">.</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?2%5E2%20=%204"> (insuffisant)</li>
<li><img src="https://latex.codecogs.com/png.latex?2%5E3%20=%208"> (suffisant)</li>
</ul>
<p>Il faut donc réserver <strong>3 bits</strong> pour la partie hôte. La longueur du masque sera alors <img src="https://latex.codecogs.com/png.latex?32%20-%203%20=%2029"> bits. La longueur maximale du masque est <strong>29 bits</strong>.</p>
</section>
</section>
<section id="partie-b-routage-rip" class="level2">
<h2 class="anchored" data-anchor-id="partie-b-routage-rip">Partie B : Routage RIP</h2>
<section id="question-5-2" class="level3">
<h3 class="anchored" data-anchor-id="question-5-2">Question 5</h3>
<p>Recopier et compléter les deux dernières lignes de la table de routage du routeur 2.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Protocole RIP (Routing Information Protocol)
</div>
</div>
<div class="callout-body-container callout-body">
<p>Le protocole RIP utilise le <strong>nombre de sauts</strong> (hops) comme métrique pour choisir le meilleur chemin. Un saut correspond au passage d’un routeur. Le chemin avec le moins de sauts est privilégié.</p>
</div>
</div>
<ul>
<li><strong>Destination <code>192.168.30.0</code> (Réseau Café 2) :</strong>
<ul>
<li>Chemin : Routeur 2 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> Routeur 3.</li>
<li>Le prochain routeur est le R3. Son interface sur le lien est <code>172.16.4.2</code>.</li>
<li>L’interface de sortie sur R2 est <code>172.16.4.1</code>.</li>
<li>Nombre de sauts pour atteindre un réseau directement connecté au routeur suivant : 1.</li>
</ul></li>
<li><strong>Destination <code>172.16.1.0</code> (lien entre R1 et R4) :</strong>
<ul>
<li>Chemin : Routeur 2 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> Routeur 1.</li>
<li>Le prochain routeur est le R1. Son interface sur le lien est <code>172.16.3.2</code>.</li>
<li>L’interface de sortie sur R2 est <code>172.16.3.1</code>.</li>
<li>Nombre de sauts : 1.</li>
</ul></li>
</ul>
<p>Table complétée :</p>
<table class="caption-top table">
<colgroup>
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;">Réseau destination</th>
<th style="text-align: left;">Interface de sortie</th>
<th style="text-align: left;">Prochain routeur</th>
<th style="text-align: left;">Nombre de sauts</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;"><strong><code>192.168.30.0</code></strong></td>
<td style="text-align: left;"><code>172.16.4.1</code></td>
<td style="text-align: left;"><code>172.16.4.2</code></td>
<td style="text-align: left;">1</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong><code>172.16.1.0</code></strong></td>
<td style="text-align: left;"><code>172.16.3.1</code></td>
<td style="text-align: left;"><code>172.16.3.2</code></td>
<td style="text-align: left;">1</td>
</tr>
</tbody>
</table>
</section>
<section id="question-6-2" class="level3">
<h3 class="anchored" data-anchor-id="question-6-2">Question 6</h3>
<p>Identifier, dans la table de routage du routeur 2, le réseau de destination que l’on peut atteindre d’une autre façon et indiquer comment cette ligne pourrait être modifiée.</p>
<p>Le réseau <code>192.168.10.0</code> (Siège Social) est atteint en 2 sauts via le chemin R2 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R1 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R4. Il existe un chemin alternatif : R2 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R3 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R4. Ce chemin a également 2 sauts. Le protocole RIP considère ces deux chemins comme équivalents en coût. La ligne pourrait donc être modifiée pour utiliser cette seconde route.</p>
<ul>
<li><p><strong>Réseau de destination :</strong> <code>192.168.10.0</code></p></li>
<li><p><strong>Modification possible :</strong></p>
<ul>
<li>Interface de sortie : <code>172.16.4.1</code> (vers le routeur 3)</li>
<li>Prochain routeur : <code>172.16.4.2</code> (l’adresse du routeur 3)</li>
<li>Nombre de sauts : 2 (inchangé)</li>
</ul></li>
</ul>
</section>
<section id="question-7-2" class="level3">
<h3 class="anchored" data-anchor-id="question-7-2">Question 7</h3>
<p>Recopier et compléter la ligne à ajouter à la table de routage du routeur 2.</p>
<p>Une adresse non référencée doit être routée par défaut vers Internet. Le routeur connecté à Internet est le R1. Le routeur 2 doit donc envoyer ces paquets au routeur 1. La destination “autre” correspond à la route par défaut <code>0.0.0.0</code>.</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: left;">Réseau destination</th>
<th style="text-align: left;">Interface de sortie</th>
<th style="text-align: left;">Prochain routeur</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">autre (<code>0.0.0.0/0</code>)</td>
<td style="text-align: left;"><code>172.16.3.1</code></td>
<td style="text-align: left;"><code>172.16.3.2</code></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="partie-c-routage-ospf" class="level2">
<h2 class="anchored" data-anchor-id="partie-c-routage-ospf">Partie C : Routage OSPF</h2>
<section id="question-8-2" class="level3">
<h3 class="anchored" data-anchor-id="question-8-2">Question 8</h3>
<p>Recopier et compléter la dernière colonne du tableau ci-dessous.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Protocole OSPF (Open Shortest Path First)
</div>
</div>
<div class="callout-body-container callout-body">
<p>Le protocole OSPF utilise un <strong>coût</strong> comme métrique, qui est généralement inversement proportionnel au débit de la liaison. Le chemin avec le coût total le plus faible est choisi. La formule donnée est : <img src="https://latex.codecogs.com/png.latex?%5Ctext%7Bco%C3%BBt%7D%20=%20%5Cfrac%7B10%5E9%7D%7B%5Ctext%7Bd%C3%A9bit%7D%7D">.</p>
</div>
</div>
<ul>
<li><strong>Fast Ethernet (100 Mbit/s = <img src="https://latex.codecogs.com/png.latex?10%5E8"> bit/s) :</strong> <img src="https://latex.codecogs.com/png.latex?%5Ctext%7Bco%C3%BBt%7D%20=%20%5Cfrac%7B10%5E9%7D%7B10%5E8%7D%20=%2010"></li>
<li><strong>Fibre optique (1 Gbit/s = <img src="https://latex.codecogs.com/png.latex?10%5E9"> bit/s) :</strong> <img src="https://latex.codecogs.com/png.latex?%5Ctext%7Bco%C3%BBt%7D%20=%20%5Cfrac%7B10%5E9%7D%7B10%5E9%7D%20=%201"></li>
</ul>
<p>Tableau complété :</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: left;">Type de connexion</th>
<th style="text-align: left;">Débit en bit.s⁻¹</th>
<th style="text-align: left;">coût</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Ethernet</td>
<td style="text-align: left;">10 Mbit.s⁻¹ = <img src="https://latex.codecogs.com/png.latex?10%5E7"> bit.s⁻¹</td>
<td style="text-align: left;">100</td>
</tr>
<tr class="even">
<td style="text-align: left;">Fast Ethernet</td>
<td style="text-align: left;">100 Mbit.s⁻¹ = <img src="https://latex.codecogs.com/png.latex?10%5E8"> bit.s⁻¹</td>
<td style="text-align: left;"><strong>10</strong></td>
</tr>
<tr class="odd">
<td style="text-align: left;">Fibre optique</td>
<td style="text-align: left;">1 Gbit.s⁻¹ = <img src="https://latex.codecogs.com/png.latex?10%5E9"> bit.s⁻¹</td>
<td style="text-align: left;"><strong>1</strong></td>
</tr>
</tbody>
</table>
</section>
<section id="question-9-2" class="level3">
<h3 class="anchored" data-anchor-id="question-9-2">Question 9</h3>
<p>Déterminer la route dont le coût est minimal pour aller du routeur 1 jusqu’au routeur 4 et calculer son coût au sens du protocole OSPF.</p>
<p>Calculons le coût des routes possibles de R1 à R4 en utilisant le schéma de la Figure 2 et les coûts de la question 8 :</p>
<ul>
<li><p><strong>Route 1 (directe) :</strong> R1 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R4.</p>
<ul>
<li>Liaison : Ethernet.</li>
<li>Coût = 100.</li>
</ul></li>
<li><p><strong>Route 2 (indirecte) :</strong> R1 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R2 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R3 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R4.</p>
<ul>
<li>Liaisons : R1-R2 (Fast Ethernet) + R2-R3 (Fast Ethernet) + R3-R4 (Fibre).</li>
<li>Coût = <img src="https://latex.codecogs.com/png.latex?10%20+%2010%20+%201%20=%2021">.</li>
</ul></li>
</ul>
<p>La route au coût minimal est <strong>R1 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R2 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R3 <img src="https://latex.codecogs.com/png.latex?%5Crightarrow"> R4</strong>, avec un coût total de <strong>21</strong>.</p>
</section>
</section>
<section id="partie-d-arbres-binaires-de-recherche" class="level2">
<h2 class="anchored" data-anchor-id="partie-d-arbres-binaires-de-recherche">Partie D : Arbres binaires de recherche</h2>
<section id="question-10-2" class="level3">
<h3 class="anchored" data-anchor-id="question-10-2">Question 10</h3>
<p>Donner la chaîne de caractères renvoyée par <code>ip_bin('192.168.20.12')</code>.</p>
<p>Il faut convertir chaque octet en binaire sur 8 bits :</p>
<ul>
<li><code>192</code> = <code>11000000</code></li>
<li><code>168</code> = <code>10101000</code></li>
<li><code>20</code> = <code>00010100</code></li>
<li><code>12</code> = <code>00001100</code></li>
</ul>
<p>La chaîne renvoyée est : <strong><code>'11000000.10101000.00010100.00001100'</code></strong></p>
</section>
<section id="question-11" class="level3">
<h3 class="anchored" data-anchor-id="question-11">Question 11</h3>
<p>Expliquer dans quel cas la fonction <code>precede</code> exécutera la dernière instruction <code>return</code> de la ligne 7.</p>
<p>L’instruction <code>return</code> de la ligne 7 est exécutée uniquement si la boucle <code>for</code> se termine sans qu’aucune des conditions <code>if</code> ou <code>elif</code> ne soit jamais vraie. Cela signifie que pour tous les indices <code>i</code> de 0 à 34, <code>ip_1[i]</code> est égal à <code>ip_2[i]</code>.</p>
<p>Ce cas se produit donc lorsque les deux chaînes de caractères <code>ip_1</code> et <code>ip_2</code> sont <strong>strictement identiques</strong>.</p>
</section>
<section id="question-12" class="level3">
<h3 class="anchored" data-anchor-id="question-12">Question 12</h3>
<p>Recopier et compléter les lignes 4, 6 et 7 du code de la fonction <code>precede</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb16" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb16-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> precede(ip_1, ip_2):</span>
<span id="cb16-2">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> i <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">35</span>):</span>
<span id="cb16-3">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> ip_1[i] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> ip_2[i]:</span>
<span id="cb16-4">            <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ligne 4</span></span>
<span id="cb16-5">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">elif</span> ip_1[i] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> ip_2[i]:</span>
<span id="cb16-6">            <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ligne 6</span></span>
<span id="cb16-7">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>          <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ligne 7 (si les IPs sont égales)</span></span></code></pre></div></div>
</section>
<section id="question-13" class="level3">
<h3 class="anchored" data-anchor-id="question-13">Question 13</h3>
<p>Citer un attribut et citer une méthode de la classe <code>Abr</code>.</p>
<ul>
<li><strong>Attribut :</strong> <code>adresse_ip</code> (ou <code>interface</code>, <code>passerelle</code>, <code>cout</code>, <code>gauche</code>, <code>droite</code>).</li>
<li><strong>Méthode :</strong> <code>est_vide</code> (ou <code>__init__</code>, <code>modifie</code>).</li>
</ul>
</section>
<section id="question-14" class="level3">
<h3 class="anchored" data-anchor-id="question-14">Question 14</h3>
<p>Recopier et compléter la ligne 14 du code de la classe <code>Abr</code>.</p>
<p>Par convention, un arbre vide est une instance où <code>adresse_ip</code> est une chaîne vide.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb17" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb17-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> est_vide(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):</span>
<span id="cb17-2">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.adresse_ip <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">''</span> <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ligne 14</span></span></code></pre></div></div>
</section>
<section id="question-15" class="level3">
<h3 class="anchored" data-anchor-id="question-15">Question 15</h3>
<p>Justifier, en mobilisant des connaissances de cours, l’intérêt qu’il peut y avoir à représenter la table de routage par un arbre binaire de recherche.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel : Arbre binaire de recherche (ABR)
</div>
</div>
<div class="callout-body-container callout-body">
<p>Un ABR est une structure de données qui permet des opérations de recherche, d’insertion et de suppression efficaces. Dans un ABR équilibré contenant <img src="https://latex.codecogs.com/png.latex?n"> éléments, la complexité de ces opérations est en moyenne de <img src="https://latex.codecogs.com/png.latex?O(%5Clog%20n)">.</p>
</div>
</div>
<p>L’intérêt principal d’utiliser un arbre binaire de recherche (ABR) pour une table de routage est la <strong>rapidité de la recherche</strong>. Un routeur doit consulter sa table de routage pour chaque paquet qu’il traite, une opération qui doit être extrêmement rapide. Dans un ABR équilibré, la recherche d’une adresse de destination a une complexité temporelle de <img src="https://latex.codecogs.com/png.latex?O(%5Clog%20n)">, où <img src="https://latex.codecogs.com/png.latex?n"> est le nombre de routes dans la table. C’est beaucoup plus efficace qu’une recherche dans une liste non triée, qui aurait une complexité de <img src="https://latex.codecogs.com/png.latex?O(n)">. Pour les grands routeurs d’Internet qui gèrent des centaines de milliers de routes, cette différence est importante pour les performances.</p>
</section>
<section id="question-16" class="level3">
<h3 class="anchored" data-anchor-id="question-16">Question 16</h3>
<p>Réécrire le code de la fonction <code>modifie</code> en évitant cette répétition.</p>
<p>Les lignes d’affectation des attributs sont exécutées que le nœud soit vide ou non. On peut donc les factoriser.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb18" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb18-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> modifie(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>, adresse_ip, interface, passerelle, cout):</span>
<span id="cb18-2">    </span>
<span id="cb18-3">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># On mémorise si le nœud était vide avant la modification.</span></span>
<span id="cb18-4">    etait_vide <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.est_vide()</span>
<span id="cb18-5"></span>
<span id="cb18-6">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Opérations de mise à jour des données, qui ont lieu dans tous les cas.</span></span>
<span id="cb18-7">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.adresse_ip <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> adresse_ip</span>
<span id="cb18-8">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.interface <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> interface</span>
<span id="cb18-9">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.passerelle <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> passerelle</span>
<span id="cb18-10">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cout <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> cout</span>
<span id="cb18-11">    </span>
<span id="cb18-12">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Opération de création des enfants, qui n'a lieu QUE si le nœud</span></span>
<span id="cb18-13">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># était initialement vide.</span></span>
<span id="cb18-14">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> etait_vide:</span>
<span id="cb18-15">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.gauche <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> Abr(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">''</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">''</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">''</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)</span>
<span id="cb18-16">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.droite <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> Abr(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">''</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">''</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">''</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)</span></code></pre></div></div>
</section>
<section id="question-17" class="level3">
<h3 class="anchored" data-anchor-id="question-17">Question 17</h3>
<p>Recopier et compléter la ligne 35 du code de la fonction <code>rechercher</code>.</p>
<p>La fonction <code>rechercher</code> navigue dans l’ABR. Si l’adresse cherchée (<code>adresse_ip</code>) précède l’adresse du nœud courant (<code>self.adresse_ip</code>), il faut chercher dans le sous-arbre gauche.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb19" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb19-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> rechercher(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>, adresse_ip):</span>
<span id="cb19-2">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.est_vide() <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">or</span> adresse_ip <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.adresse_ip:</span>
<span id="cb19-3">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span></span>
<span id="cb19-4">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">elif</span> precede(adresse_ip, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.adresse_ip): <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ligne 35</span></span>
<span id="cb19-5">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.gauche.rechercher(adresse_ip)</span>
<span id="cb19-6">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span>:</span>
<span id="cb19-7">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.droite.rechercher(adresse_ip)</span></code></pre></div></div>


</section>
</section>
</section>

 ]]></description>
  <category>NSI</category>
  <category>Annales</category>
  <guid>https://mathsinfolycee.fr/posts/2025-06-18-NSIMetropoleJ1/</guid>
  <pubDate>Tue, 17 Jun 2025 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025-06-18-NSIMetropoleJ1/img1.png" medium="image" type="image/png" height="85" width="144"/>
</item>
<item>
  <title>Corrigé du sujet de mathématiques du baccalauréat 2025 - Métropole Jour 1</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025-06-16-MathsMétropoleJ1/</link>
  <description><![CDATA[ 





<section id="lénoncé" class="level2">
<h2 class="anchored" data-anchor-id="lénoncé">L’énoncé</h2>
<p>Le sujet de mathématiques du baccalauréat 2025 pour la Métropole, Jour 1, est désormais disponible. Vous pouvez le télécharger en cliquant sur le lien ci-dessous :</p>
<p><a href="25-MATJ1ME1.pdf" target="_blank"><strong>Télécharger le sujet de mathématiques - Bac 2025 Métropole Jour 1</strong></a></p>
<section id="exercice-1-probabilités" class="level4">
<h4 class="anchored" data-anchor-id="exercice-1-probabilités"><strong>Exercice 1 : Probabilités</strong></h4>
<p>Cet exercice aborde plusieurs notions du chapitre sur les probabilités à partir d’une situation basée sur les groupes sanguins.</p>
<ul>
<li><strong>Contenu de l’exercice :</strong> L’exercice débute par la construction d’un <strong>arbre pondéré</strong> et l’application de la <strong>formule des probabilités totales</strong>. La suite de l’exercice porte sur l’échantillonnage, la <strong>loi binomiale</strong>, son espérance, sa variance, et se termine par une application de l’<strong>inégalité de Bienaymé-Tchebychev</strong>.</li>
</ul>
<hr>
</section>
<section id="exercice-2-analyse-de-fonction" class="level4">
<h4 class="anchored" data-anchor-id="exercice-2-analyse-de-fonction"><strong>Exercice 2 : Analyse de fonction</strong></h4>
<p>Cet exercice est une étude de fonction composée d’un polynôme et d’un <strong>logarithme népérien</strong>. Il est structuré en trois parties.</p>
<ul>
<li><strong>Contenu de l’exercice :</strong>
<ol type="1">
<li><strong>Partie A (Lecture graphique) :</strong> Interprétation graphique du <strong>nombre dérivé</strong>, du signe de la dérivée et du nombre de solutions d’une équation.</li>
<li><strong>Partie B (Étude analytique) :</strong> Calcul de <strong>limites</strong>, de <strong>dérivées première et seconde</strong>, étude de la <strong>convexité</strong> et de la position relative d’une courbe par rapport à sa tangente.</li>
<li><strong>Partie C (Calcul d’aire) :</strong> Calcul d’une <strong>intégrale</strong> à l’aide d’une <strong>intégration par parties</strong>.</li>
</ol></li>
</ul>
<hr>
</section>
<section id="exercice-3-géométrie-dans-lespace" class="level4">
<h4 class="anchored" data-anchor-id="exercice-3-géométrie-dans-lespace"><strong>Exercice 3 : Géométrie dans l’espace</strong></h4>
<p>Cet exercice est un “Vrai ou Faux” où chaque affirmation nécessite une <strong>justification mathématique</strong>.</p>
<ul>
<li><strong>Contenu de l’exercice :</strong> Les notions abordées sont les <strong>représentations paramétriques</strong> de droites, la colinéarité de vecteurs, le <strong>vecteur normal</strong> à un plan, la position relative de deux droites et le calcul de la <strong>distance d’un point à un plan</strong>.</li>
</ul>
<hr>
</section>
<section id="exercice-4-modélisation-suites-et-équations-différentielles" class="level4">
<h4 class="anchored" data-anchor-id="exercice-4-modélisation-suites-et-équations-différentielles"><strong>Exercice 4 : Modélisation (Suites et Équations Différentielles)</strong></h4>
<p>Cet exercice de modélisation compare deux approches pour décrire l’évolution d’une population d’algues.</p>
<ul>
<li><strong>Contenu de l’exercice :</strong>
<ol type="1">
<li><strong>Partie A (Modèle discret) :</strong> Étude d’une <strong>suite définie par récurrence</strong> (<img src="https://latex.codecogs.com/png.latex?u_%7Bn+1%7D%20=%20h(u_n)">), incluant la démonstration de sa monotonie et de sa convergence par <strong>récurrence</strong>, la recherche de sa limite et la complétion d’un <strong>algorithme</strong>.</li>
<li><strong>Partie B (Modèle continu) :</strong> Résolution d’une <strong>équation différentielle</strong> non linéaire via un <strong>changement de variable</strong>.</li>
</ol></li>
</ul>
<p>Voilà pour ce tour d’horizon ! Un sujet riche et bien équilibré.</p>
</section>
</section>
<section id="corrigé-de-lexercice-1" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-1">Corrigé de l’exercice 1</h2>
<p>Cet exercice porte sur les probabilités conditionnelles, la formule des probabilités totales, la loi binomiale et se termine par une application de l’inégalité de Bienaymé-Tchebychev.</p>
<section id="arbre-de-probabilités" class="level4">
<h4 class="anchored" data-anchor-id="arbre-de-probabilités">1. Arbre de probabilités</h4>
<p>Pour compléter l’arbre, nous devons d’abord déterminer la probabilité de l’événement O. Les événements A, B, AB et O forment une <strong>partition</strong> de l’univers, c’est-à-dire que ce sont des événements incompatibles deux à deux et dont la réunion est l’univers. La somme de leurs probabilités est donc égale à 1.</p>
<p><img src="https://latex.codecogs.com/png.latex?%20P(A)%20+%20P(B)%20+%20P(AB)%20+%20P(O)%20=%201%20"></p>
<p>On en déduit <img src="https://latex.codecogs.com/png.latex?P(O)"> : <img src="https://latex.codecogs.com/png.latex?%20P(O)%20=%201%20-%20P(A)%20-%20P(B)%20-%20P(AB)%20"> <img src="https://latex.codecogs.com/png.latex?%20P(O)%20=%201%20-%200,45%20-%200,10%20-%200,03%20=%200,42%20"></p>
<p>Ensuite, pour chaque branche, la somme des probabilités des événements conditionnels doit valoir 1. Par exemple, <img src="https://latex.codecogs.com/png.latex?P_A(R)%20+%20P_A(%5Coverline%7BR%7D)%20=%201">.</p>
<p>L’énoncé nous donne :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?P_A(R)%20=%200,85">, donc <img src="https://latex.codecogs.com/png.latex?P_A(%5Coverline%7BR%7D)%20=%201%20-%200,85%20=%200,15">.</li>
<li><img src="https://latex.codecogs.com/png.latex?P_B(R)%20=%200,84">, donc <img src="https://latex.codecogs.com/png.latex?P_B(%5Coverline%7BR%7D)%20=%201%20-%200,84%20=%200,16">.</li>
<li><img src="https://latex.codecogs.com/png.latex?P_%7BAB%7D(R)%20=%200,82">, donc <img src="https://latex.codecogs.com/png.latex?P_%7BAB%7D(%5Coverline%7BR%7D)%20=%201%20-%200,82%20=%200,18">.</li>
</ul>
<p>La probabilité <img src="https://latex.codecogs.com/png.latex?P_O(R)"> sera calculée à la question 3.</p>
<p>L’arbre complété est le suivant :</p>
<p><a href="arbre.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://mathsinfolycee.fr/posts/2025-06-16-MathsMétropoleJ1/arbre.png" class="img-fluid" style="width:50.0%"></a></p>
</section>
<section id="calcul-de-pb-cap-r-et-interprétation" class="level4">
<h4 class="anchored" data-anchor-id="calcul-de-pb-cap-r-et-interprétation">2. Calcul de <img src="https://latex.codecogs.com/png.latex?P(B%20%5Ccap%20R)"> et interprétation</h4>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Probabilité d'une intersection">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Probabilité d’une intersection
</div>
</div>
<div class="callout-body-container callout-body">
<p>Pour deux événements A et B, la probabilité de leur intersection est donnée par la formule : <img src="https://latex.codecogs.com/png.latex?%20P(A%20%5Ccap%20B)%20=%20P(A)%20%5Ctimes%20P_A(B)%20"> Cette formule se lit directement sur un arbre pondéré en multipliant les probabilités le long du chemin correspondant.</p>
</div>
</div>
<p>En appliquant cette formule, on a : <img src="https://latex.codecogs.com/png.latex?%20P(B%20%5Ccap%20R)%20=%20P(B)%20%5Ctimes%20P_B(R)%20"> <img src="https://latex.codecogs.com/png.latex?%20P(B%20%5Ccap%20R)%20=%200,10%20%5Ctimes%200,84%20=%200,084%20"></p>
<p><strong>Interprétation :</strong> La probabilité que la personne choisie au hasard dans la population française soit du groupe sanguin B et de rhésus positif est de 0,084 (soit 8,4 %).</p>
</section>
<section id="calcul-de-p_or" class="level4">
<h4 class="anchored" data-anchor-id="calcul-de-p_or">3. Calcul de <img src="https://latex.codecogs.com/png.latex?P_O(R)"></h4>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Formule des probabilités totales">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Formule des probabilités totales
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si les événements <img src="https://latex.codecogs.com/png.latex?E_1,%20E_2,%20%5Cdots,%20E_n"> forment une partition de l’univers, alors pour tout événement F, on a : <img src="https://latex.codecogs.com/png.latex?%20P(F)%20=%20P(E_1%20%5Ccap%20F)%20+%20P(E_2%20%5Ccap%20F)%20+%20%5Cdots%20+%20P(E_n%20%5Ccap%20F)%20"> <img src="https://latex.codecogs.com/png.latex?%20P(F)%20=%20P(E_1)P_%7BE_1%7D(F)%20+%20P(E_2)P_%7BE_2%7D(F)%20+%20%5Cdots%20+%20P(E_n)P_%7BE_n%7D(F)%20"></p>
</div>
</div>
<p>Ici, les événements A, B, AB et O forment une partition de l’univers. On peut donc appliquer la formule des probabilités totales pour calculer <img src="https://latex.codecogs.com/png.latex?P(R)"> : <img src="https://latex.codecogs.com/png.latex?%20P(R)%20=%20P(A%20%5Ccap%20R)%20+%20P(B%20%5Ccap%20R)%20+%20P(AB%20%5Ccap%20R)%20+%20P(O%20%5Ccap%20R)%20"> <img src="https://latex.codecogs.com/png.latex?%20P(R)%20=%20P(A)P_A(R)%20+%20P(B)P_B(R)%20+%20P(AB)P_%7BAB%7D(R)%20+%20P(O)P_O(R)%20"></p>
<p>L’énoncé nous donne <img src="https://latex.codecogs.com/png.latex?P(R)=0,8397">. On peut donc isoler l’inconnue <img src="https://latex.codecogs.com/png.latex?P_O(R)"> : <img src="https://latex.codecogs.com/png.latex?%200,8397%20=%20(0,45%20%5Ctimes%200,85)%20+%20(0,10%20%5Ctimes%200,84)%20+%20(0,03%20%5Ctimes%200,82)%20+%20(0,42%20%5Ctimes%20P_O(R))%20"> <img src="https://latex.codecogs.com/png.latex?%200,8397%20=%200,3825%20+%200,084%20+%200,0246%20+%200,42%20%5Ctimes%20P_O(R)%20"> <img src="https://latex.codecogs.com/png.latex?%200,8397%20=%200,4911%20+%200,42%20%5Ctimes%20P_O(R)%20"> <img src="https://latex.codecogs.com/png.latex?%200,42%20%5Ctimes%20P_O(R)%20=%200,8397%20-%200,4911%20"> <img src="https://latex.codecogs.com/png.latex?%200,42%20%5Ctimes%20P_O(R)%20=%200,3486%20"> <img src="https://latex.codecogs.com/png.latex?%20P_O(R)%20=%20%5Cfrac%7B0,3486%7D%7B0,42%7D%20=%200,83%20"> On a bien montré que <img src="https://latex.codecogs.com/png.latex?P_O(R)%20=%200,83">.</p>
</section>
<section id="probabilité-dêtre-donneur-universel" class="level4">
<h4 class="anchored" data-anchor-id="probabilité-dêtre-donneur-universel">4. Probabilité d’être donneur universel</h4>
<p>Un “donneur universel” est un individu du groupe O et de rhésus négatif. On cherche donc à calculer la probabilité de l’événement <img src="https://latex.codecogs.com/png.latex?O%20%5Ccap%20%5Coverline%7BR%7D">. En utilisant la règle de l’intersection : <img src="https://latex.codecogs.com/png.latex?%20P(O%20%5Ccap%20%5Coverline%7BR%7D)%20=%20P(O)%20%5Ctimes%20P_O(%5Coverline%7BR%7D)%20"> Nous savons que <img src="https://latex.codecogs.com/png.latex?P(O)%20=%200,42">. De plus, comme <img src="https://latex.codecogs.com/png.latex?P_O(R)%20=%200,83">, on en déduit : <img src="https://latex.codecogs.com/png.latex?%20P_O(%5Coverline%7BR%7D)%20=%201%20-%20P_O(R)%20=%201%20-%200,83%20=%200,17%20"> Donc : <img src="https://latex.codecogs.com/png.latex?%20P(O%20%5Ccap%20%5Coverline%7BR%7D)%20=%200,42%20%5Ctimes%200,17%20=%200,0714%20"> La probabilité qu’un individu choisi au hasard soit donneur universel est bien de 0,0714.</p>
<hr>
</section>
<section id="étude-dun-échantillon-de-100-personnes" class="level4">
<h4 class="anchored" data-anchor-id="étude-dun-échantillon-de-100-personnes">5. Étude d’un échantillon de 100 personnes</h4>
<p><strong>a. Justification de la loi binomiale</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Loi binomiale">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Loi binomiale
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une variable aléatoire <img src="https://latex.codecogs.com/png.latex?X"> suit une loi binomiale <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BB%7D(n,%20p)"> si elle compte le nombre de succès dans une série de <img src="https://latex.codecogs.com/png.latex?n"> épreuves de Bernoulli identiques et indépendantes, où <img src="https://latex.codecogs.com/png.latex?p"> est la probabilité de succès à chaque épreuve.</p>
</div>
</div>
<p>Considérons l’épreuve de Bernoulli suivante : “on choisit une personne au hasard dans la population et on regarde si elle est donneur universel”.</p>
<ul>
<li>Le <strong>succès</strong> est l’événement “la personne est un donneur universel”. La probabilité de succès est <img src="https://latex.codecogs.com/png.latex?p%20=%20P(O%20%5Ccap%20%5Coverline%7BR%7D)%20=%200,0714"> (calculée en 4.).</li>
<li>L’<strong>échec</strong> est l’événement contraire, de probabilité <img src="https://latex.codecogs.com/png.latex?1-p">.</li>
</ul>
<p>On répète cette épreuve <img src="https://latex.codecogs.com/png.latex?n=100"> fois. L’énoncé précise que “la population est suffisamment grande pour assimiler ce choix à un tirage avec remise”. Cette condition garantit que les tirages sont <strong>identiques et indépendants</strong>.</p>
<p>La variable aléatoire <img src="https://latex.codecogs.com/png.latex?X">, qui compte le nombre de donneurs universels (nombre de succès) dans l’échantillon de 100 personnes, suit donc une <strong>loi binomiale de paramètres <img src="https://latex.codecogs.com/png.latex?n=100"> et <img src="https://latex.codecogs.com/png.latex?p=0,0714"></strong>. On note <img src="https://latex.codecogs.com/png.latex?X%20%5Csim%20%5Cmathcal%7BB%7D(100;%200,0714)">.</p>
<p><strong>b. Probabilité d’avoir au plus 7 donneurs universels</strong></p>
<p>On cherche à calculer <img src="https://latex.codecogs.com/png.latex?P(X%20%5Cleqslant%207)">. <img src="https://latex.codecogs.com/png.latex?%20P(X%20%5Cleqslant%207)%20=%20%5Csum_%7Bk=0%7D%5E%7B7%7D%20P(X=k)%20=%20%5Csum_%7Bk=0%7D%5E%7B7%7D%20%5Cbinom%7B100%7D%7Bk%7D%20(0,0714)%5Ek%20(1-0,0714)%5E%7B100-k%7D%20"> À l’aide de la fonction de répartition de la loi binomiale de la calculatrice (<code>binomFRep</code> ou <code>BinomialCD</code>), on obtient : <img src="https://latex.codecogs.com/png.latex?%20P(X%20%5Cleqslant%207)%20%5Capprox%200,5735%20"> Arrondie à <img src="https://latex.codecogs.com/png.latex?10%5E%7B-3%7D"> près, la probabilité est de <strong>0,574</strong>.</p>
<p><strong>c.&nbsp;Espérance et variance de X</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Formules : Espérance et Variance de la loi binomiale">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Formules : Espérance et Variance de la loi binomiale
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si <img src="https://latex.codecogs.com/png.latex?X%20%5Csim%20%5Cmathcal%7BB%7D(n,%20p)">, alors : * Espérance : <img src="https://latex.codecogs.com/png.latex?E(X)%20=%20n%20%5Ctimes%20p"> * Variance : <img src="https://latex.codecogs.com/png.latex?V(X)%20=%20n%20%5Ctimes%20p%20%5Ctimes%20(1-p)"></p>
</div>
</div>
<p>Appliquons ces formules :</p>
<ul>
<li><strong>Espérance :</strong> <img src="https://latex.codecogs.com/png.latex?%20E(X)%20=%20100%20%5Ctimes%200,0714%20=%207,14%20"></li>
<li><strong>Variance :</strong> <img src="https://latex.codecogs.com/png.latex?%20V(X)%20=%20100%20%5Ctimes%200,0714%20%5Ctimes%20(1%20-%200,0714)%20=%207,14%20%5Ctimes%200,9286%20=%206,630444%20"> Arrondie à <img src="https://latex.codecogs.com/png.latex?10%5E%7B-2%7D"> près, la variance est bien <img src="https://latex.codecogs.com/png.latex?V(X)%20%5Capprox%206,63">.</li>
</ul>
</section>
<section id="étude-sur-n-villes" class="level4">
<h4 class="anchored" data-anchor-id="étude-sur-n-villes">6. Étude sur N villes</h4>
<p><strong>a. Représentation de la variable aléatoire <img src="https://latex.codecogs.com/png.latex?M_N"></strong></p>
<p><img src="https://latex.codecogs.com/png.latex?X_i"> est le nombre de donneurs universels dans un échantillon de 100 personnes de la ville <img src="https://latex.codecogs.com/png.latex?i">. La variable aléatoire <img src="https://latex.codecogs.com/png.latex?M_N%20=%20%5Cfrac%7BX_1%20+%20X_2%20+%20%5Cdots%20+%20X_N%7D%7BN%7D"> est la <strong>moyenne arithmétique</strong> des nombres de donneurs universels observés dans les échantillons des <img src="https://latex.codecogs.com/png.latex?N"> villes. Elle représente donc le <strong>nombre moyen de donneurs universels par échantillon de 100 personnes</strong> sur l’ensemble des <img src="https://latex.codecogs.com/png.latex?N"> collectes.</p>
<p><strong>b. Espérance de <img src="https://latex.codecogs.com/png.latex?M_N"></strong></p>
<p>Par linéarité de l’espérance, on a : <img src="https://latex.codecogs.com/png.latex?%20E(M_N)%20=%20E%5Cleft(%5Cfrac%7B1%7D%7BN%7D%5Csum_%7Bi=1%7D%5E%7BN%7D%20X_i%5Cright)%20=%20%5Cfrac%7B1%7D%7BN%7D%20%5Csum_%7Bi=1%7D%5E%7BN%7D%20E(X_i)%20"> On nous dit que pour tout <img src="https://latex.codecogs.com/png.latex?i">, <img src="https://latex.codecogs.com/png.latex?E(X_i)%20=%207,14">. Donc : <img src="https://latex.codecogs.com/png.latex?%20E(M_N)%20=%20%5Cfrac%7B1%7D%7BN%7D%20%5Csum_%7Bi=1%7D%5E%7BN%7D%207,14%20=%20%5Cfrac%7B1%7D%7BN%7D%20%5Ctimes%20(N%20%5Ctimes%207,14)%20=%207,14%20"> L’espérance de la moyenne est égale à l’espérance de la variable de départ.</p>
<p><strong>c.&nbsp;Variance de <img src="https://latex.codecogs.com/png.latex?M_N"></strong></p>
<p>Les variables <img src="https://latex.codecogs.com/png.latex?X_i"> sont supposées indépendantes. Pour la variance, on a <img src="https://latex.codecogs.com/png.latex?V(aY)%20=%20a%5E2%20V(Y)"> et la variance d’une somme de variables indépendantes est la somme de leurs variances. <img src="https://latex.codecogs.com/png.latex?%20V(M_N)%20=%20V%5Cleft(%5Cfrac%7B1%7D%7BN%7D%5Csum_%7Bi=1%7D%5E%7BN%7D%20X_i%5Cright)%20=%20%5Cleft(%5Cfrac%7B1%7D%7BN%7D%5Cright)%5E2%20V%5Cleft(%5Csum_%7Bi=1%7D%5E%7BN%7D%20X_i%5Cright)%20"> <img src="https://latex.codecogs.com/png.latex?%20V(M_N)%20=%20%5Cfrac%7B1%7D%7BN%5E2%7D%20%5Csum_%7Bi=1%7D%5E%7BN%7D%20V(X_i)%20%5Cquad%20%5Ctext%7B(car%20les%20%7D%20X_i%20%5Ctext%7B%20sont%20ind%C3%A9pendantes)%7D%20"> On nous dit que pour tout <img src="https://latex.codecogs.com/png.latex?i">, <img src="https://latex.codecogs.com/png.latex?V(X_i)%20=%206,63">. Donc : <img src="https://latex.codecogs.com/png.latex?%20V(M_N)%20=%20%5Cfrac%7B1%7D%7BN%5E2%7D%20%5Csum_%7Bi=1%7D%5E%7BN%7D%206,63%20=%20%5Cfrac%7B1%7D%7BN%5E2%7D%20%5Ctimes%20(N%20%5Ctimes%206,63)%20=%20%5Cfrac%7B6,63%7D%7BN%7D%20"></p>
<p><strong>d.&nbsp;Inégalité de Bienaymé-Tchebychev</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Inégalité de Bienaymé-Tchebychev">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Inégalité de Bienaymé-Tchebychev
</div>
</div>
<div class="callout-body-container callout-body">
<p>Pour une variable aléatoire <img src="https://latex.codecogs.com/png.latex?Y"> d’espérance <img src="https://latex.codecogs.com/png.latex?E(Y)"> et de variance <img src="https://latex.codecogs.com/png.latex?V(Y)">, et pour tout réel <img src="https://latex.codecogs.com/png.latex?%5Cepsilon%20%3E%200">, on a : <img src="https://latex.codecogs.com/png.latex?%20P(%7CY%20-%20E(Y)%7C%20%5Cgeqslant%20%5Cepsilon)%20%5Cleqslant%20%5Cfrac%7BV(Y)%7D%7B%5Cepsilon%5E2%7D%20"> Ou, sous sa forme complémentaire souvent plus utile : <img src="https://latex.codecogs.com/png.latex?%20P(%7CY%20-%20E(Y)%7C%20%3C%20%5Cepsilon)%20%5Cgeqslant%201%20-%20%5Cfrac%7BV(Y)%7D%7B%5Cepsilon%5E2%7D%20"> Cette inégalité donne une borne inférieure pour la probabilité que la variable aléatoire se trouve dans un intervalle centré sur son espérance.</p>
</div>
</div>
<p>On cherche la plus petite valeur de <img src="https://latex.codecogs.com/png.latex?N"> telle que <img src="https://latex.codecogs.com/png.latex?P(7%20%3C%20M_N%20%3C%207,28)%20%5Cgeqslant%200,95">. L’espérance de <img src="https://latex.codecogs.com/png.latex?M_N"> est <img src="https://latex.codecogs.com/png.latex?E(M_N)%20=%207,14">. Réécrivons l’inégalité autour de cette espérance : <img src="https://latex.codecogs.com/png.latex?%207%20%3C%20M_N%20%3C%207,28%20%5Ciff%207,14%20-%200,14%20%3C%20M_N%20%3C%207,14%20+%200,14%20"> Ceci est équivalent à : <img src="https://latex.codecogs.com/png.latex?%20%7CM_N%20-%207,14%7C%20%3C%200,14%20%5Cquad%20%5Ctext%7Bou%7D%20%5Cquad%20%7CM_N%20-%20E(M_N)%7C%20%3C%200,14%20"> On peut donc appliquer l’inégalité de Bienaymé-Tchebychev avec <img src="https://latex.codecogs.com/png.latex?Y=M_N"> et <img src="https://latex.codecogs.com/png.latex?%5Cepsilon%20=%200,14">. <img src="https://latex.codecogs.com/png.latex?%20P(%7CM_N%20-%20E(M_N)%7C%20%3C%200,14)%20%5Cgeqslant%201%20-%20%5Cfrac%7BV(M_N)%7D%7B0,14%5E2%7D%20"> On sait que <img src="https://latex.codecogs.com/png.latex?V(M_N)%20=%20%5Cfrac%7B6,63%7D%7BN%7D">. Donc : <img src="https://latex.codecogs.com/png.latex?%20P(7%20%3C%20M_N%20%3C%207,28)%20%5Cgeqslant%201%20-%20%5Cfrac%7B6,63/N%7D%7B0,14%5E2%7D%20=%201%20-%20%5Cfrac%7B6,63%7D%7BN%20%5Ctimes%200,0196%7D%20"> Pour que la condition <img src="https://latex.codecogs.com/png.latex?P(7%20%3C%20M_N%20%3C%207,28)%20%5Cgeqslant%200,95"> soit vérifiée, il suffit que la borne inférieure que nous avons trouvée soit supérieure ou égale à 0,95. On cherche donc <img src="https://latex.codecogs.com/png.latex?N"> tel que : <img src="https://latex.codecogs.com/png.latex?%201%20-%20%5Cfrac%7B6,63%7D%7B0,0196%20%5Ctimes%20N%7D%20%5Cgeqslant%200,95%20"> <img src="https://latex.codecogs.com/png.latex?%200,05%20%5Cgeqslant%20%5Cfrac%7B6,63%7D%7B0,0196%20%5Ctimes%20N%7D%20"> Comme <img src="https://latex.codecogs.com/png.latex?N"> est un entier positif, on peut multiplier les deux côtés par <img src="https://latex.codecogs.com/png.latex?0,0196%20%5Ctimes%20N"> sans changer le sens de l’inégalité : <img src="https://latex.codecogs.com/png.latex?%200,05%20%5Ctimes%200,0196%20%5Ctimes%20N%20%5Cgeqslant%206,63%20"> <img src="https://latex.codecogs.com/png.latex?%200,00098%20%5Ctimes%20N%20%5Cgeqslant%206,63%20"> <img src="https://latex.codecogs.com/png.latex?%20N%20%5Cgeqslant%20%5Cfrac%7B6,63%7D%7B0,00098%7D%20"> <img src="https://latex.codecogs.com/png.latex?%20N%20%5Cgeqslant%206765,306...%20"> Puisque <img src="https://latex.codecogs.com/png.latex?N"> doit être un entier, la plus petite valeur de <img src="https://latex.codecogs.com/png.latex?N"> qui satisfait cette condition est <img src="https://latex.codecogs.com/png.latex?N%20=%206766">.</p>
<p>La plus petite valeur de <img src="https://latex.codecogs.com/png.latex?N"> est <strong>6766</strong>.</p>
</section>
</section>
<section id="corrigé-de-lexercice-2" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-2">Corrigé de l’exercice 2</h2>
<section id="partie-a-lectures-graphiques" class="level3">
<h3 class="anchored" data-anchor-id="partie-a-lectures-graphiques">Partie A : Lectures graphiques</h3>
<p>On répond aux questions en s’appuyant sur les informations visuelles fournies par le graphique.</p>
<p><strong>1. Déterminer le nombre dérivé <img src="https://latex.codecogs.com/png.latex?f'(1)">.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Interprétation graphique du nombre dérivé">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Interprétation graphique du nombre dérivé
</div>
</div>
<div class="callout-body-container callout-body">
<p>Le nombre dérivé <img src="https://latex.codecogs.com/png.latex?f'(a)"> d’une fonction <img src="https://latex.codecogs.com/png.latex?f"> en un point d’abscisse <img src="https://latex.codecogs.com/png.latex?a"> est égal au coefficient directeur (la pente) de la tangente à la courbe de <img src="https://latex.codecogs.com/png.latex?f"> en ce point.</p>
</div>
</div>
<p>Le nombre <img src="https://latex.codecogs.com/png.latex?f'(1)"> est le coefficient directeur de la tangente <img src="https://latex.codecogs.com/png.latex?T_A"> à la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> au point <img src="https://latex.codecogs.com/png.latex?A(1;%202)">. Pour calculer ce coefficient directeur, on utilise les coordonnées de deux points par lesquels passe la droite <img src="https://latex.codecogs.com/png.latex?T_A">. Le graphique nous indique que <img src="https://latex.codecogs.com/png.latex?T_A"> passe par les points <img src="https://latex.codecogs.com/png.latex?A(1;%202)"> et <img src="https://latex.codecogs.com/png.latex?C(3;%200)">. Le coefficient directeur est donc : <img src="https://latex.codecogs.com/png.latex?%20m%20=%20%5Cfrac%7By_C%20-%20y_A%7D%7Bx_C%20-%20x_A%7D%20=%20%5Cfrac%7B0%20-%202%7D%7B3%20-%201%7D%20=%20%5Cfrac%7B-2%7D%7B2%7D%20=%20-1%20"></p>
<p>Ainsi, <strong><img src="https://latex.codecogs.com/png.latex?f'(1)%20=%20-1"></strong>.</p>
<p><strong>2. Combien de solutions l’équation <img src="https://latex.codecogs.com/png.latex?f'(x)%20=%200"> admet-elle dans l’intervalle <img src="https://latex.codecogs.com/png.latex?%5D0;%203%5D"> ?</strong></p>
<p>L’équation <img src="https://latex.codecogs.com/png.latex?f'(x)%20=%200"> a pour solutions les abscisses des points de la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> où la tangente est horizontale.</p>
<p>En observant le graphique sur l’intervalle <img src="https://latex.codecogs.com/png.latex?%5D0;%203%5D">, on voit que la fonction <img src="https://latex.codecogs.com/png.latex?f"> est d’abord croissante, puis décroissante. Elle admet donc un maximum local entre <img src="https://latex.codecogs.com/png.latex?x=0,2"> et <img src="https://latex.codecogs.com/png.latex?x=1">. En ce point, la tangente à la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> est horizontale.</p>
<p>De plus, la fonction est à nouveau croissante ensuite. Elle admet donc un minimum local entre <img src="https://latex.codecogs.com/png.latex?x=1"> et <img src="https://latex.codecogs.com/png.latex?x=e">. En ce point, la tangente est également horizontale.</p>
<p>L’équation <img src="https://latex.codecogs.com/png.latex?f'(x)%20=%200"> admet donc <strong>deux solutions</strong> dans l’intervalle <img src="https://latex.codecogs.com/png.latex?%5D0;%203%5D">.</p>
<p><strong>3. Quel est le signe de <img src="https://latex.codecogs.com/png.latex?f''(0,2)"> ?</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Lien entre signe de $f''$ et convexité">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Lien entre signe de <img src="https://latex.codecogs.com/png.latex?f''"> et convexité
</div>
</div>
<div class="callout-body-container callout-body">
<ul>
<li>Si <img src="https://latex.codecogs.com/png.latex?f''(x)%20%3E%200">, la fonction <img src="https://latex.codecogs.com/png.latex?f"> est convexe en <img src="https://latex.codecogs.com/png.latex?x">.</li>
<li>Si <img src="https://latex.codecogs.com/png.latex?f''(x)%20%3C%200">, la fonction <img src="https://latex.codecogs.com/png.latex?f"> est concave en <img src="https://latex.codecogs.com/png.latex?x">.</li>
<li>Si <img src="https://latex.codecogs.com/png.latex?f''"> s’annule en <img src="https://latex.codecogs.com/png.latex?x"> en changeant de signe, il y a un point d’inflexion en <img src="https://latex.codecogs.com/png.latex?x">.</li>
</ul>
</div>
</div>
<p>Sur le graphique, pour <img src="https://latex.codecogs.com/png.latex?x=0,2">, on observe que la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> est concave.</p>
<p>Donc, le signe de la dérivée seconde <img src="https://latex.codecogs.com/png.latex?f''(0,2)"> est négatif.</p>
<hr>
</section>
<section id="partie-b-étude-de-la-fonction-f" class="level3">
<h3 class="anchored" data-anchor-id="partie-b-étude-de-la-fonction-f">Partie B : Étude de la fonction f</h3>
<p>On admet que <img src="https://latex.codecogs.com/png.latex?f(x)%20=%20x(2(%5Cln%20x)%5E2%20-%203%20%5Cln%20x%20+%202)">.</p>
<p><strong>1. Résoudre l’équation <img src="https://latex.codecogs.com/png.latex?2X%5E2%20-%203X%20+%202%20=%200"> et en déduire que <img src="https://latex.codecogs.com/png.latex?C_f"> ne coupe pas l’axe des abscisses.</strong></p>
<p>Pour résoudre l’équation du second degré <img src="https://latex.codecogs.com/png.latex?2X%5E2%20-%203X%20+%202%20=%200">, on calcule le discriminant <img src="https://latex.codecogs.com/png.latex?%5CDelta">. <img src="https://latex.codecogs.com/png.latex?%20%5CDelta%20=%20b%5E2%20-%204ac%20=%20(-3)%5E2%20-%204(2)(2)%20=%209%20-%2016%20=%20-7%20"></p>
<p>Comme <img src="https://latex.codecogs.com/png.latex?%5CDelta%20%3C%200">, l’équation n’a pas de solution réelle. Le polynôme <img src="https://latex.codecogs.com/png.latex?P(X)%20=%202X%5E2%20-%203X%20+%202"> est donc de signe constant. Son signe est celui de son coefficient dominant <img src="https://latex.codecogs.com/png.latex?a=2">, qui est positif.</p>
<p>Ainsi, pour tout réel <img src="https://latex.codecogs.com/png.latex?X">, <img src="https://latex.codecogs.com/png.latex?2X%5E2%20-%203X%20+%202%20%3E%200">.</p>
<p>Pour déduire que <img src="https://latex.codecogs.com/png.latex?C_f"> ne coupe pas l’axe des abscisses, on étudie le signe de <img src="https://latex.codecogs.com/png.latex?f(x)">. <img src="https://latex.codecogs.com/png.latex?%20f(x)%20=%20x(2(%5Cln%20x)%5E2%20-%203%20%5Cln%20x%20+%202)%20"></p>
<p>La fonction est définie sur <img src="https://latex.codecogs.com/png.latex?%5D0;%20+%5Cinfty%5B">, donc <img src="https://latex.codecogs.com/png.latex?x%20%3E%200">.</p>
<p>Le second facteur, <img src="https://latex.codecogs.com/png.latex?2(%5Cln%20x)%5E2%20-%203%20%5Cln%20x%20+%202">, peut s’écrire <img src="https://latex.codecogs.com/png.latex?P(%5Cln%20x)">. Comme nous avons montré que <img src="https://latex.codecogs.com/png.latex?P(X)%20%3E%200"> pour tout <img src="https://latex.codecogs.com/png.latex?X">, on a <img src="https://latex.codecogs.com/png.latex?2(%5Cln%20x)%5E2%20-%203%20%5Cln%20x%20+%202%20%3E%200"> pour tout <img src="https://latex.codecogs.com/png.latex?x%20%5Cin%20%5D0;%20+%5Cinfty%5B">.</p>
<p><img src="https://latex.codecogs.com/png.latex?f(x)"> est le produit de deux termes strictement positifs, donc <img src="https://latex.codecogs.com/png.latex?f(x)%20%3E%200"> pour tout <img src="https://latex.codecogs.com/png.latex?x%20%5Cin%20%5D0;%20+%5Cinfty%5B">.</p>
<p>Puisque <img src="https://latex.codecogs.com/png.latex?f(x)"> ne s’annule jamais et est toujours positive, <strong>la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> ne coupe pas l’axe des abscisses</strong>.</p>
<p><strong>2. Déterminer la limite de <img src="https://latex.codecogs.com/png.latex?f"> en <img src="https://latex.codecogs.com/png.latex?+%5Cinfty">.</strong></p>
<p>On cherche <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bx%20%5Cto%20+%5Cinfty%7D%20x(2(%5Cln%20x)%5E2%20-%203%20%5Cln%20x%20+%202)">.</p>
<p>On a :</p>
<ul>
<li><p><img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bx%20%5Cto%20+%5Cinfty%7D%20x%20=%20+%5Cinfty"></p></li>
<li><p>Pour le second facteur, on pose <img src="https://latex.codecogs.com/png.latex?X%20=%20%5Cln%20x">. Quand <img src="https://latex.codecogs.com/png.latex?x%20%5Cto%20+%5Cinfty">, <img src="https://latex.codecogs.com/png.latex?X%20%5Cto%20+%5Cinfty">.</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bx%20%5Cto%20+%5Cinfty%7D%20(2(%5Cln%20x)%5E2%20-%203%20%5Cln%20x%20+%202)%20=%20%5Clim_%7BX%20%5Cto%20+%5Cinfty%7D%20(2X%5E2%20-%203X%20+%202)">.</p>
<p>La limite d’un polynôme en l’infini est celle de son terme de plus haut degré.</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Clim_%7BX%20%5Cto%20+%5Cinfty%7D%20(2X%5E2)%20=%20+%5Cinfty">.</p></li>
</ul>
<p>Par produit des limites, on obtient : <img src="https://latex.codecogs.com/png.latex?%20%5Clim_%7Bx%20%5Cto%20+%5Cinfty%7D%20f(x)%20=%20(+%5Cinfty)%20%5Ctimes%20(+%5Cinfty)%20=%20+%5Cinfty%20"></p>
<p><strong>3. On admet que <img src="https://latex.codecogs.com/png.latex?f'(x)%20=%202(%5Cln%20x)%5E2%20+%20%5Cln%20x%20-%201">.</strong></p>
<p><strong>a. Montrer que <img src="https://latex.codecogs.com/png.latex?f''(x)%20=%20%5Cfrac%7B1%7D%7Bx%7D(4%20%5Cln%20x%20+%201)">.</strong></p>
<p>Pour trouver <img src="https://latex.codecogs.com/png.latex?f''(x)">, on dérive <img src="https://latex.codecogs.com/png.latex?f'(x)">.</p>
<p>En utilisant la dérivée de <img src="https://latex.codecogs.com/png.latex?u%5E2"> qui est <img src="https://latex.codecogs.com/png.latex?2uu'"> et la dérivée de <img src="https://latex.codecogs.com/png.latex?%5Cln%20x"> qui est <img src="https://latex.codecogs.com/png.latex?1/x"> : <img src="https://latex.codecogs.com/png.latex?%20f''(x)%20=%202%20%5Ctimes%20(2(%5Cln%20x)%20%5Ctimes%20%5Cfrac%7B1%7D%7Bx%7D)%20+%20%5Cfrac%7B1%7D%7Bx%7D%20-%200%20"> <img src="https://latex.codecogs.com/png.latex?%20f''(x)%20=%20%5Cfrac%7B4%20%5Cln%20x%7D%7Bx%7D%20+%20%5Cfrac%7B1%7D%7Bx%7D%20=%20%5Cfrac%7B4%20%5Cln%20x%20+%201%7D%7Bx%7D%20"></p>
<p>Ce qui est bien l’expression attendue.</p>
<p><strong>b. Étudier la convexité de <img src="https://latex.codecogs.com/png.latex?f"> et préciser l’abscisse du point d’inflexion.</strong></p>
<p>On étudie le signe de <img src="https://latex.codecogs.com/png.latex?f''(x)%20=%20%5Cfrac%7B4%20%5Cln%20x%20+%201%7D%7Bx%7D"> sur <img src="https://latex.codecogs.com/png.latex?%5D0;%20+%5Cinfty%5B">.</p>
<p>Sur cet intervalle, le dénominateur <img src="https://latex.codecogs.com/png.latex?x"> est toujours positif. Le signe de <img src="https://latex.codecogs.com/png.latex?f''(x)"> est donc le même que celui de son numérateur <img src="https://latex.codecogs.com/png.latex?4%20%5Cln%20x%20+%201">.</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?4%20%5Cln%20x%20+%201%20=%200%20%5Ciff%20%5Cln%20x%20=%20-%5Cfrac%7B1%7D%7B4%7D%20%5Ciff%20x%20=%20e%5E%7B-1/4%7D"></li>
<li><img src="https://latex.codecogs.com/png.latex?4%20%5Cln%20x%20+%201%20%3E%200%20%5Ciff%20%5Cln%20x%20%3E%20-%5Cfrac%7B1%7D%7B4%7D%20%5Ciff%20x%20%3E%20e%5E%7B-1/4%7D"></li>
</ul>
<p>On peut dresser un tableau de signes :</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th style="text-align: left;"><img src="https://latex.codecogs.com/png.latex?x"></th>
<th style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?0"></th>
<th style="text-align: center;"></th>
<th style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?e%5E%7B-1/4%7D"></th>
<th style="text-align: center;"></th>
<th style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?+%5Cinfty"></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Signe de <img src="https://latex.codecogs.com/png.latex?f''(x)"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?-"></td>
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?0"></td>
<td style="text-align: center;"><img src="https://latex.codecogs.com/png.latex?+"></td>
<td style="text-align: center;"></td>
</tr>
<tr class="even">
<td style="text-align: left;">Convexité de <img src="https://latex.codecogs.com/png.latex?f"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;">Concave</td>
<td style="text-align: center;">Point d’inflexion</td>
<td style="text-align: center;">Convexe</td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
<ul>
<li>La fonction <img src="https://latex.codecogs.com/png.latex?f"> est <strong>concave</strong> sur <img src="https://latex.codecogs.com/png.latex?%5D0,%20e%5E%7B-1/4%7D%5D">.</li>
<li>La fonction <img src="https://latex.codecogs.com/png.latex?f"> est <strong>convexe</strong> sur <img src="https://latex.codecogs.com/png.latex?%5Be%5E%7B-1/4%7D,%20+%5Cinfty%5B">.</li>
<li>La dérivée seconde s’annule et change de signe en <img src="https://latex.codecogs.com/png.latex?x%20=%20e%5E%7B-1/4%7D">. La courbe <img src="https://latex.codecogs.com/png.latex?C_f"> admet donc un <strong>point d’inflexion d’abscisse <img src="https://latex.codecogs.com/png.latex?e%5E%7B-1/4%7D"></strong>.</li>
</ul>
<p><strong>c.&nbsp;Montrer que <img src="https://latex.codecogs.com/png.latex?C_f"> est au-dessus de <img src="https://latex.codecogs.com/png.latex?T_B"> sur <img src="https://latex.codecogs.com/png.latex?%5B1;%20+%5Cinfty%5B">.</strong></p>
<p>Une propriété des fonctions convexes est que leur courbe représentative est située au-dessus de chacune de leurs tangentes.</p>
<p>D’après la question précédente, la fonction <img src="https://latex.codecogs.com/png.latex?f"> est convexe sur l’intervalle <img src="https://latex.codecogs.com/png.latex?%5Be%5E%7B-1/4%7D,%20+%5Cinfty%5B">.</p>
<p>On a <img src="https://latex.codecogs.com/png.latex?e%20%5Capprox%202,718">, donc <img src="https://latex.codecogs.com/png.latex?e%5E%7B-1/4%7D%20%3C%201">.</p>
<p>L’intervalle <img src="https://latex.codecogs.com/png.latex?%5B1,%20+%5Cinfty%5B"> est donc inclus dans l’intervalle de convexité <img src="https://latex.codecogs.com/png.latex?%5Be%5E%7B-1/4%7D,%20+%5Cinfty%5B">.</p>
<p>Puisque <img src="https://latex.codecogs.com/png.latex?f"> est convexe sur <img src="https://latex.codecogs.com/png.latex?%5B1,%20+%5Cinfty%5B">, sa courbe <img src="https://latex.codecogs.com/png.latex?C_f"> est au-dessus de toutes ses tangentes sur cet intervalle. La droite <img src="https://latex.codecogs.com/png.latex?T_B"> est la tangente au point d’abscisse <img src="https://latex.codecogs.com/png.latex?e">, et <img src="https://latex.codecogs.com/png.latex?e%20%5Cin%20%5B1,%20+%5Cinfty%5B">.</p>
<p>Par conséquent, <strong>la courbe <img src="https://latex.codecogs.com/png.latex?C_f"> est au-dessus de la tangente <img src="https://latex.codecogs.com/png.latex?T_B"> sur l’intervalle <img src="https://latex.codecogs.com/png.latex?%5B1;%20+%5Cinfty%5B"></strong>.</p>
<hr>
</section>
<section id="partie-c-calcul-daire" class="level3">
<h3 class="anchored" data-anchor-id="partie-c-calcul-daire">Partie C : Calcul d’aire</h3>
<p><strong>1. Justifier que la tangente <img src="https://latex.codecogs.com/png.latex?T_B"> a pour équation réduite <img src="https://latex.codecogs.com/png.latex?y%20=%202x%20-%20e">.</strong></p>
<p>L’équation de la tangente à <img src="https://latex.codecogs.com/png.latex?C_f"> au point d’abscisse <img src="https://latex.codecogs.com/png.latex?a"> est <img src="https://latex.codecogs.com/png.latex?y%20=%20f'(a)(x-a)%20+%20f(a)">.</p>
<p>Ici, le point est <img src="https://latex.codecogs.com/png.latex?B(e;%20e)">, donc <img src="https://latex.codecogs.com/png.latex?a=e">.</p>
<ul>
<li>Calculons <img src="https://latex.codecogs.com/png.latex?f(e)">: <img src="https://latex.codecogs.com/png.latex?f(e)%20=%20e(2(%5Cln%20e)%5E2%20-%203%20%5Cln%20e%20+%202)%20=%20e(2(1)%5E2%20-%203(1)%20+%202)%20=%20e(2-3+2)%20=%20e">.</li>
<li>Calculons <img src="https://latex.codecogs.com/png.latex?f'(e)">: <img src="https://latex.codecogs.com/png.latex?f'(e)%20=%202(%5Cln%20e)%5E2%20+%20%5Cln%20e%20-%201%20=%202(1)%5E2%20+%201%20-%201%20=%202">.</li>
</ul>
<p>L’équation de la tangente <img src="https://latex.codecogs.com/png.latex?T_B"> est donc : <img src="https://latex.codecogs.com/png.latex?%20y%20=%202(x%20-%20e)%20+%20e%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20y%20=%202x%20-%202e%20+%20e%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20y%20=%202x%20-%20e%20"> Ceci justifie l’équation donnée.</p>
<p><strong>2. Montrer que <img src="https://latex.codecogs.com/png.latex?%5Cint_1%5Ee%20x%20%5Cln%20x%20%5C,%20dx%20=%20%5Cfrac%7Be%5E2+1%7D%7B4%7D">.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Formule : Intégration par parties">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Formule : Intégration par parties
</div>
</div>
<div class="callout-body-container callout-body">
<p>Soient <img src="https://latex.codecogs.com/png.latex?u"> et <img src="https://latex.codecogs.com/png.latex?v"> deux fonctions dérivables et de dérivée continue sur un intervalle <img src="https://latex.codecogs.com/png.latex?%5Ba,%20b%5D">.</p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cint_a%5Eb%20u(x)v'(x)%20%5C,%20dx%20=%20%5Bu(x)v(x)%5D_a%5Eb%20-%20%5Cint_a%5Eb%20u'(x)v(x)%20%5C,%20dx%20"></p>
</div>
</div>
<p>On pose :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?u(x)%20=%20%5Cln%20x%20%5Cimplies%20u'(x)%20=%20%5Cfrac%7B1%7D%7Bx%7D"></li>
<li><img src="https://latex.codecogs.com/png.latex?v'(x)%20=%20x%20%5Cimplies%20v(x)%20=%20%5Cfrac%7Bx%5E2%7D%7B2%7D"></li>
</ul>
<p>Les fonctions <img src="https://latex.codecogs.com/png.latex?u"> et <img src="https://latex.codecogs.com/png.latex?v"> sont bien dérivables sur <img src="https://latex.codecogs.com/png.latex?%5B1,%20e%5D">. En appliquant la formule :</p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cint_1%5Ee%20x%20%5Cln%20x%20%5C,%20dx%20=%20%5Cleft%5B%20(%5Cln%20x)%20%5Cfrac%7Bx%5E2%7D%7B2%7D%20%5Cright%5D_1%5Ee%20-%20%5Cint_1%5Ee%20%5Cfrac%7B1%7D%7Bx%7D%20%5Cfrac%7Bx%5E2%7D%7B2%7D%20%5C,%20dx%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20=%20%5Cleft(%20(%5Cln%20e)%20%5Cfrac%7Be%5E2%7D%7B2%7D%20-%20(%5Cln%201)%20%5Cfrac%7B1%5E2%7D%7B2%7D%20%5Cright)%20-%20%5Cint_1%5Ee%20%5Cfrac%7Bx%7D%7B2%7D%20%5C,%20dx%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20=%20%5Cleft(%201%20%5Ctimes%20%5Cfrac%7Be%5E2%7D%7B2%7D%20-%200%20%5Ctimes%20%5Cfrac%7B1%7D%7B2%7D%20%5Cright)%20-%20%5Cleft%5B%20%5Cfrac%7B1%7D%7B2%7D%20%5Cfrac%7Bx%5E2%7D%7B2%7D%20%5Cright%5D_1%5Ee%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20=%20%5Cfrac%7Be%5E2%7D%7B2%7D%20-%20%5Cleft%5B%20%5Cfrac%7Bx%5E2%7D%7B4%7D%20%5Cright%5D_1%5Ee%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20=%20%5Cfrac%7Be%5E2%7D%7B2%7D%20-%20%5Cleft(%20%5Cfrac%7Be%5E2%7D%7B4%7D%20-%20%5Cfrac%7B1%5E2%7D%7B4%7D%20%5Cright)%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20=%20%5Cfrac%7Be%5E2%7D%7B2%7D%20-%20%5Cfrac%7Be%5E2%7D%7B4%7D%20+%20%5Cfrac%7B1%7D%7B4%7D%20=%20%5Cfrac%7B2e%5E2%20-%20e%5E2%20+%201%7D%7B4%7D%20=%20%5Cfrac%7Be%5E2+1%7D%7B4%7D%20"></p>
<p><strong>3. En déduire la valeur exacte de <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BA%7D"> en unité d’aire.</strong></p>
<p>L’aire <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BA%7D"> est celle du domaine délimité par <img src="https://latex.codecogs.com/png.latex?C_f">, <img src="https://latex.codecogs.com/png.latex?T_B">, et les droites <img src="https://latex.codecogs.com/png.latex?x=1"> et <img src="https://latex.codecogs.com/png.latex?x=e">.</p>
<p>Comme <img src="https://latex.codecogs.com/png.latex?C_f"> est au-dessus de <img src="https://latex.codecogs.com/png.latex?T_B"> sur <img src="https://latex.codecogs.com/png.latex?%5B1,%20e%5D">, l’aire est donnée par l’intégrale :</p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cint_1%5Ee%20(f(x)%20-%20y_%7BT_B%7D)%20%5C,%20dx%20=%20%5Cint_1%5Ee%20(f(x)%20-%20(2x-e))%20%5C,%20dx%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cint_1%5Ee%20(x(2(%5Cln%20x)%5E2%20-%203%5Cln%20x%20+%202)%20-%202x%20+%20e)%20%5C,%20dx%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cint_1%5Ee%20(2x(%5Cln%20x)%5E2%20-%203x%5Cln%20x%20+%202x%20-%202x%20+%20e)%20%5C,%20dx%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cint_1%5Ee%20(2x(%5Cln%20x)%5E2%20-%203x%5Cln%20x%20+%20e)%20%5C,%20dx%20"></p>
<p>Par linéarité de l’intégrale :</p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%202%20%5Cint_1%5Ee%20x(%5Cln%20x)%5E2%20%5C,%20dx%20-%203%20%5Cint_1%5Ee%20x%5Cln%20x%20%5C,%20dx%20+%20%5Cint_1%5Ee%20e%20%5C,%20dx%20"></p>
<p>On utilise les résultats admis et calculés :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?%5Cint_1%5Ee%20x(%5Cln%20x)%5E2%20%5C,%20dx%20=%20%5Cfrac%7Be%5E2-1%7D%7B4%7D"> (admis)</li>
<li><img src="https://latex.codecogs.com/png.latex?%5Cint_1%5Ee%20x%5Cln%20x%20%5C,%20dx%20=%20%5Cfrac%7Be%5E2+1%7D%7B4%7D"> (calculé en C.2)</li>
<li><img src="https://latex.codecogs.com/png.latex?%5Cint_1%5Ee%20e%20%5C,%20dx%20=%20%5Bex%5D_1%5Ee%20=%20e%20%5Ctimes%20e%20-%20e%20%5Ctimes%201%20=%20e%5E2%20-%20e"></li>
</ul>
<p>On remplace :</p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%202%20%5Cleft(%20%5Cfrac%7Be%5E2-1%7D%7B4%7D%20%5Cright)%20-%203%20%5Cleft(%20%5Cfrac%7Be%5E2+1%7D%7B4%7D%20%5Cright)%20+%20(e%5E2%20-%20e)%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cfrac%7B2e%5E2%20-%202%7D%7B4%7D%20-%20%5Cfrac%7B3e%5E2%20+%203%7D%7B4%7D%20+%20%5Cfrac%7B4(e%5E2%20-%20e)%7D%7B4%7D%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cfrac%7B(2e%5E2%20-%202)%20-%20(3e%5E2%20+%203)%20+%20(4e%5E2%20-%204e)%7D%7B4%7D%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cfrac%7B2e%5E2%20-%202%20-%203e%5E2%20-%203%20+%204e%5E2%20-%204e%7D%7B4%7D%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cfrac%7B(2-3+4)e%5E2%20-%204e%20+%20(-2-3)%7D%7B4%7D%20"></p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cmathcal%7BA%7D%20=%20%5Cfrac%7B3e%5E2%20-%204e%20-%205%7D%7B4%7D%20%5Ctext%7B%20unit%C3%A9s%20d'aire.%7D%20"></p>
</section>
</section>
<section id="corrigé-de-lexercice-3" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-3">Corrigé de l’exercice 3</h2>
<p><strong>1. On considère les points A(−1 ; 0 ; 5) et B(3; 2; −1).</strong></p>
<p><strong>Affirmation 1 : Une représentation paramétrique de la droite (AB) est <img src="https://latex.codecogs.com/png.latex?%5Cbegin%7Bcases%7D%20x%20=%203%20-%202t%20%5C%5C%20y%20=%202%20-%20t%20%5C%5C%20z%20=%20-1%20+%203t%20%5Cend%7Bcases%7D"> avec <img src="https://latex.codecogs.com/png.latex?t%20%5Cin%20%5Cmathbb%7BR%7D">.</strong></p>
<p><strong>Affirmation 1 : VRAIE</strong></p>
<p><strong>Justification :</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Représentation paramétrique d'une droite">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Représentation paramétrique d’une droite
</div>
</div>
<div class="callout-body-container callout-body">
<p>Une représentation paramétrique d’une droite est définie par un point appartenant à cette droite et un vecteur directeur de cette droite. La droite passant par un point <img src="https://latex.codecogs.com/png.latex?P_0(x_0;%20y_0;%20z_0)"> et dirigée par un vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D(a;%20b;%20c)"> a pour représentation <img src="https://latex.codecogs.com/png.latex?%5Cbegin%7Bcases%7D%20x%20=%20x_0%20+%20at%20%5C%5C%20y%20=%20y_0%20+%20bt%20%5C%5C%20z%20=%20z_0%20+%20ct%20%5Cend%7Bcases%7D"> avec <img src="https://latex.codecogs.com/png.latex?t%20%5Cin%20%5Cmathbb%7BR%7D">.</p>
</div>
</div>
<p>La représentation paramétrique donnée est associée au point de coordonnées <img src="https://latex.codecogs.com/png.latex?(3;%202;%20-1)">, qui est le point B, et au vecteur directeur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D(-2;%20-1;%203)">.</p>
<p>Pour vérifier si cette représentation est correcte pour la droite (AB), il suffit de s’assurer que le vecteur directeur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D"> est bien colinéaire au vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D">.</p>
<p>Calculons les coordonnées du vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D"> : <img src="https://latex.codecogs.com/png.latex?%20%5Coverrightarrow%7BAB%7D%20%5Cbegin%7Bpmatrix%7D%20x_B%20-%20x_A%20%5C%5C%20y_B%20-%20y_A%20%5C%5C%20z_B%20-%20z_A%20%5Cend%7Bpmatrix%7D%20=%20%5Cbegin%7Bpmatrix%7D%203%20-%20(-1)%20%5C%5C%202%20-%200%20%5C%5C%20-1%20-%205%20%5Cend%7Bpmatrix%7D%20=%20%5Cbegin%7Bpmatrix%7D%204%20%5C%5C%202%20%5C%5C%20-6%20%5Cend%7Bpmatrix%7D%20"></p>
<p>Comparons les vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D(-2;%20-1;%203)"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D(4;%202;%20-6)">.</p>
<p>On remarque que <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D%20=%20-2%20%5Ctimes%20%5Coverrightarrow%7Bu%7D">, car : <img src="https://latex.codecogs.com/png.latex?%20-2%20%5Ctimes%20(-2)%20=%204%20"> <img src="https://latex.codecogs.com/png.latex?%20-2%20%5Ctimes%20(-1)%20=%202%20"> <img src="https://latex.codecogs.com/png.latex?%20-2%20%5Ctimes%203%20=%20-6%20"> Les vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BAB%7D"> sont donc colinéaires.</p>
<p>La représentation donnée utilise un point de la droite (le point B) et un vecteur directeur de la droite (le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bu%7D">). Elle est donc bien une représentation paramétrique de la droite (AB).</p>
<hr>
<p><strong>Affirmation 2 : Le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D(5;%20-2;%201)"> est normal au plan (OAB).</strong></p>
<p><strong>Affirmation 2 : FAUSSE</strong></p>
<p><strong>Justification :</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Vecteur normal à un plan">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Vecteur normal à un plan
</div>
</div>
<div class="callout-body-container callout-body">
<p>Un vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> est normal à un plan s’il est orthogonal à deux vecteurs non colinéaires de ce plan. On vérifie l’orthogonalité à l’aide du produit scalaire : deux vecteurs sont orthogonaux si leur produit scalaire est nul.</p>
</div>
</div>
<p>Le plan (OAB) est dirigé par les vecteurs <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOA%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOB%7D"> (puisque O, A et B définissent le plan).</p>
<p>Calculons les coordonnées de ces vecteurs :</p>
<ul>
<li>Le point O est l’origine, donc <img src="https://latex.codecogs.com/png.latex?O(0;%200;%200)">.</li>
<li><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOA%7D%20%5Cbegin%7Bpmatrix%7D%20-1%20-%200%20%5C%5C%200%20-%200%20%5C%5C%205%20-%200%20%5Cend%7Bpmatrix%7D%20=%20%5Cbegin%7Bpmatrix%7D%20-1%20%5C%5C%200%20%5C%5C%205%20%5Cend%7Bpmatrix%7D"></li>
<li><img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOB%7D%20%5Cbegin%7Bpmatrix%7D%203%20-%200%20%5C%5C%202%20-%200%20%5C%5C%20-1%20-%200%20%5Cend%7Bpmatrix%7D%20=%20%5Cbegin%7Bpmatrix%7D%203%20%5C%5C%202%20%5C%5C%20-1%20%5Cend%7Bpmatrix%7D"></li>
</ul>
<p>Ces deux vecteurs ne sont pas colinéaires. Vérifions si le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D(5;%20-2;%201)"> est orthogonal à <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOA%7D"> et <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOB%7D"> en calculant les produits scalaires.</p>
<ul>
<li><p>Produit scalaire avec <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOA%7D"> : <img src="https://latex.codecogs.com/png.latex?%20%5Coverrightarrow%7Bn%7D%20%5Ccdot%20%5Coverrightarrow%7BOA%7D%20=%20(5)(-1)%20+%20(-2)(0)%20+%20(1)(5)%20=%20-5%20+%200%20+%205%20=%200%20"> Le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> est bien orthogonal à <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOA%7D">.</p></li>
<li><p>Produit scalaire avec <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOB%7D"> : <img src="https://latex.codecogs.com/png.latex?%20%5Coverrightarrow%7Bn%7D%20%5Ccdot%20%5Coverrightarrow%7BOB%7D%20=%20(5)(3)%20+%20(-2)(2)%20+%20(1)(-1)%20=%2015%20-%204%20-%201%20=%2010%20"> Le produit scalaire <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D%20%5Ccdot%20%5Coverrightarrow%7BOB%7D"> n’est pas nul.</p></li>
</ul>
<p>Puisque le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> n’est pas orthogonal au vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BOB%7D">, il n’est pas normal au plan (OAB).</p>
<hr>
<p><strong>2. On considère les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'">.</strong></p>
<p><strong>Affirmation 3 : Les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'"> ne sont pas coplanaires.</strong></p>
<p><strong>Affirmation 3 : FAUSSE</strong></p>
<p><strong>Justification :</strong> Deux droites sont coplanaires si elles sont parallèles ou sécantes. Elles sont non coplanaires si elles ne sont ni parallèles ni sécantes.</p>
<ul>
<li><p><strong>Étape 1 : Vérifier si les droites sont parallèles.</strong></p>
<p>Un vecteur directeur de la droite <img src="https://latex.codecogs.com/png.latex?d"> est <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bv_d%7D(1;%20-1;%202)">.</p>
<p>Un vecteur directeur de la droite <img src="https://latex.codecogs.com/png.latex?d'"> est <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bv_%7Bd'%7D%7D(4;%204;%20-6)">.</p>
<p>Pour que les droites soient parallèles, leurs vecteurs directeurs doivent être colinéaires. Vérifions s’il existe un réel <img src="https://latex.codecogs.com/png.latex?%5Clambda"> tel que <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bv_%7Bd'%7D%7D%20=%20%5Clambda%20%5Coverrightarrow%7Bv_d%7D">. <img src="https://latex.codecogs.com/png.latex?%20%5Cbegin%7Bcases%7D%204%20=%20%5Clambda%20%5Ctimes%201%20%5C%5C%204%20=%20%5Clambda%20%5Ctimes%20(-1)%20%5C%5C%20-6%20=%20%5Clambda%20%5Ctimes%202%20%5Cend%7Bcases%7D%20%5Cimplies%20%5Cbegin%7Bcases%7D%20%5Clambda%20=%204%20%5C%5C%20%5Clambda%20=%20-4%20%5C%5C%20%5Clambda%20=%20-3%20%5Cend%7Bcases%7D%20"> Le système n’a pas de solution. Les vecteurs ne sont pas colinéaires, donc les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'"> ne sont pas parallèles.</p></li>
<li><p><strong>Étape 2 : Vérifier si les droites sont sécantes.</strong></p>
<p>On cherche s’il existe un point d’intersection, c’est-à-dire un couple de réels <img src="https://latex.codecogs.com/png.latex?(k,%20s)"> tel que :</p>
<p><img src="https://latex.codecogs.com/png.latex?%20%5Cbegin%7Bcases%7D%2015%20+%20k%20=%201%20+%204s%20%5Cquad%20(L_1)%20%5C%5C%208%20-%20k%20=%202%20+%204s%20%5Cquad%20(L_2)%20%5C%5C%20-6%20+%202k%20=%201%20-%206s%20%5Cquad%20(L_3)%20%5Cend%7Bcases%7D%20"> Simplifions les deux premières lignes : <img src="https://latex.codecogs.com/png.latex?%20%5Cbegin%7Bcases%7D%20k%20-%204s%20=%20-14%20%5C%5C%20-k%20-%204s%20=%20-6%20%5Cend%7Bcases%7D%20"> En additionnant ces deux lignes <img src="https://latex.codecogs.com/png.latex?(L_1+L_2)">, on obtient : <img src="https://latex.codecogs.com/png.latex?%20-8s%20=%20-20%20%5Cimplies%20s%20=%20%5Cfrac%7B-20%7D%7B-8%7D%20=%20%5Cfrac%7B5%7D%7B2%7D%20"> En remplaçant <img src="https://latex.codecogs.com/png.latex?s"> dans la première ligne : <img src="https://latex.codecogs.com/png.latex?%20k%20-%204%5Cleft(%5Cfrac%7B5%7D%7B2%7D%5Cright)%20=%20-14%20%5Cimplies%20k%20-%2010%20=%20-14%20%5Cimplies%20k%20=%20-4%20"> Nous avons trouvé un unique couple solution <img src="https://latex.codecogs.com/png.latex?(k,%20s)%20=%20(-4,%205/2)"> pour les deux premières équations. Vérifions s’il satisfait la troisième équation <img src="https://latex.codecogs.com/png.latex?(L_3)"> :</p>
<ul>
<li>Membre de gauche : <img src="https://latex.codecogs.com/png.latex?-6%20+%202k%20=%20-6%20+%202(-4)%20=%20-6%20-%208%20=%20-14">.</li>
<li>Membre de droite : <img src="https://latex.codecogs.com/png.latex?1%20-%206s%20=%201%20-%206%5Cleft(%5Cfrac%7B5%7D%7B2%7D%5Cright)%20=%201%20-%2015%20=%20-14">.</li>
</ul>
<p>Les deux membres sont égaux. Le système a une solution.</p></li>
</ul>
<p>Les droites <img src="https://latex.codecogs.com/png.latex?d"> et <img src="https://latex.codecogs.com/png.latex?d'"> ont un point d’intersection, elles sont donc sécantes. Si elles sont sécantes, elles sont coplanaires. L’affirmation qu’elles ne sont pas coplanaires est donc fausse.</p>
<hr>
<p><strong>Affirmation 4 : La distance du point C(2; -1; 2) au plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> d’équation <img src="https://latex.codecogs.com/png.latex?x%20-%20y%20+%20z%20+%201%20=%200"> est égale à <img src="https://latex.codecogs.com/png.latex?2%5Csqrt%7B3%7D">.</strong></p>
<p><strong>Affirmation 4 : VRAIE</strong></p>
<p>Nous allons déterminer les coordonnées du point H, projeté orthogonal du point C sur le plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">. La distance du point C au plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> est alors la longueur du segment [CH], c’est-à-dire la norme du vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCH%7D">.</p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Projection orthogonale sur un plan">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Projection orthogonale sur un plan
</div>
</div>
<div class="callout-body-container callout-body">
<p>Le projeté orthogonal H d’un point C sur un plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> est le point d’intersection entre le plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> et la droite <img src="https://latex.codecogs.com/png.latex?%5CDelta"> qui est perpendiculaire à <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> et qui passe par C.</p>
<p>Le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCH%7D"> est alors un vecteur normal au plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">.</p>
</div>
</div>
<p>La démarche se décompose en trois étapes :</p>
<ol type="1">
<li>Déterminer une représentation paramétrique de la droite <img src="https://latex.codecogs.com/png.latex?%5CDelta"> passant par C et orthogonale à <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">.</li>
<li>Calculer les coordonnées du point H, intersection de <img src="https://latex.codecogs.com/png.latex?%5CDelta"> et <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">.</li>
<li>Calculer la norme du vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCH%7D">.</li>
</ol>
<p><strong>Étape 1 : Représentation paramétrique de la droite <img src="https://latex.codecogs.com/png.latex?%5CDelta"></strong></p>
<p>La droite <img src="https://latex.codecogs.com/png.latex?%5CDelta"> est orthogonale au plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">. Un vecteur directeur de <img src="https://latex.codecogs.com/png.latex?%5CDelta"> est donc un vecteur normal à <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">.</p>
<p>L’équation du plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> est <img src="https://latex.codecogs.com/png.latex?1x%20-%201y%20+%201z%20+%201%20=%200">. Un vecteur normal à <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> est donc <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D(1;%20-1;%201)">.</p>
<p>Ce vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D"> est un vecteur directeur pour notre droite <img src="https://latex.codecogs.com/png.latex?%5CDelta">.</p>
<p>La droite <img src="https://latex.codecogs.com/png.latex?%5CDelta"> passe par le point <img src="https://latex.codecogs.com/png.latex?C(2;%20-1;%202)"> et est dirigée par le vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7Bn%7D(1;%20-1;%201)">.</p>
<p>Une représentation paramétrique de <img src="https://latex.codecogs.com/png.latex?%5CDelta"> est donc : <img src="https://latex.codecogs.com/png.latex?%20%5Cbegin%7Bcases%7D%20x%20=%202%20+%201%20%5Ccdot%20t%20%5C%5C%20y%20=%20-1%20-%201%20%5Ccdot%20t%20%5C%5C%20z%20=%202%20+%201%20%5Ccdot%20t%20%5Cend%7Bcases%7D%20%5Cquad%20%5Ctext%7Bavec%20%7D%20t%20%5Cin%20%5Cmathbb%7BR%7D%20%5Cquad%20%5Ciff%20%5Cquad%20%5Cbegin%7Bcases%7D%20x%20=%202%20+%20t%20%5C%5C%20y%20=%20-1%20-%20t%20%5C%5C%20z%20=%202%20+%20t%20%5Cend%7Bcases%7D%20"></p>
<p><strong>Étape 2 : Coordonnées du point d’intersection H</strong></p>
<p>Le point <img src="https://latex.codecogs.com/png.latex?H(x_H;%20y_H;%20z_H)"> appartient à la fois à la droite <img src="https://latex.codecogs.com/png.latex?%5CDelta"> et au plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">. Ses coordonnées vérifient donc le système d’équations composé de la représentation paramétrique de <img src="https://latex.codecogs.com/png.latex?%5CDelta"> et de l’équation cartésienne de <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D">.</p>
<p>Il existe un réel <img src="https://latex.codecogs.com/png.latex?t"> tel que : <img src="https://latex.codecogs.com/png.latex?%20%5Cbegin%7Bcases%7D%20x_H%20=%202%20+%20t%20%5C%5C%20y_H%20=%20-1%20-%20t%20%5C%5C%20z_H%20=%202%20+%20t%20%5C%5C%20x_H%20-%20y_H%20+%20z_H%20+%201%20=%200%20%5Cend%7Bcases%7D%20"> On substitue les expressions de <img src="https://latex.codecogs.com/png.latex?x_H,%20y_H,%20z_H"> en fonction de <img src="https://latex.codecogs.com/png.latex?t"> dans l’équation du plan : <img src="https://latex.codecogs.com/png.latex?%20(2+t)%20-%20(-1-t)%20+%20(2+t)%20+%201%20=%200%20"> <img src="https://latex.codecogs.com/png.latex?%202%20+%20t%20+%201%20+%20t%20+%202%20+%20t%20+%201%20=%200%20"> <img src="https://latex.codecogs.com/png.latex?%203t%20+%206%20=%200%20"> <img src="https://latex.codecogs.com/png.latex?%203t%20=%20-6%20"> <img src="https://latex.codecogs.com/png.latex?%20t%20=%20-2%20"> Maintenant que nous avons la valeur du paramètre <img src="https://latex.codecogs.com/png.latex?t"> correspondant au point H, nous pouvons calculer ses coordonnées en remplaçant <img src="https://latex.codecogs.com/png.latex?t"> par <img src="https://latex.codecogs.com/png.latex?-2"> dans la représentation paramétrique de <img src="https://latex.codecogs.com/png.latex?%5CDelta"> : <img src="https://latex.codecogs.com/png.latex?%20%5Cbegin%7Bcases%7D%20x_H%20=%202%20+%20(-2)%20=%200%20%5C%5C%20y_H%20=%20-1%20-%20(-2)%20=%201%20%5C%5C%20z_H%20=%202%20+%20(-2)%20=%200%20%5Cend%7Bcases%7D%20"> Le projeté orthogonal de C sur le plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> est le point <img src="https://latex.codecogs.com/png.latex?H(0;%201;%200)">.</p>
<p><strong>Étape 3 : Calcul de la distance CH</strong></p>
<p>La distance du point C au plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> est la norme du vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCH%7D">.</p>
<p>Calculons d’abord les coordonnées du vecteur <img src="https://latex.codecogs.com/png.latex?%5Coverrightarrow%7BCH%7D"> : <img src="https://latex.codecogs.com/png.latex?%20%5Coverrightarrow%7BCH%7D%20%5Cbegin%7Bpmatrix%7D%20x_H%20-%20x_C%20%5C%5C%20y_H%20-%20y_C%20%5C%5C%20z_H%20-%20z_C%20%5Cend%7Bpmatrix%7D%20=%20%5Cbegin%7Bpmatrix%7D%200%20-%202%20%5C%5C%201%20-%20(-1)%20%5C%5C%200%20-%202%20%5Cend%7Bpmatrix%7D%20=%20%5Cbegin%7Bpmatrix%7D%20-2%20%5C%5C%202%20%5C%5C%20-2%20%5Cend%7Bpmatrix%7D%20"> Calculons maintenant sa norme : <img src="https://latex.codecogs.com/png.latex?%20%5Ctext%7Bdist%7D(C,%20%5Cmathcal%7BP%7D)%20=%20%7C%7C%5Coverrightarrow%7BCH%7D%7C%7C%20=%20%5Csqrt%7B(-2)%5E2%20+%202%5E2%20+%20(-2)%5E2%7D%20"> <img src="https://latex.codecogs.com/png.latex?%20=%20%5Csqrt%7B4%20+%204%20+%204%7D%20=%20%5Csqrt%7B12%7D%20"> On simplifie la racine carrée : <img src="https://latex.codecogs.com/png.latex?%20%5Csqrt%7B12%7D%20=%20%5Csqrt%7B4%20%5Ctimes%203%7D%20=%20%5Csqrt%7B4%7D%20%5Ctimes%20%5Csqrt%7B3%7D%20=%202%5Csqrt%7B3%7D%20"> La distance du point C au plan <img src="https://latex.codecogs.com/png.latex?%5Cmathcal%7BP%7D"> est bien égale à <img src="https://latex.codecogs.com/png.latex?2%5Csqrt%7B3%7D">.</p>
</section>
<section id="corrigé-de-lexercice-4" class="level2">
<h2 class="anchored" data-anchor-id="corrigé-de-lexercice-4">Corrigé de l’exercice 4</h2>
<p>Cet exercice propose d’étudier l’évolution d’une population biologique par deux approches complémentaires : un modèle discret basé sur une suite récurrente, et un modèle continu régi par une équation différentielle.</p>
<section id="partie-a-étude-dun-modèle-discret" class="level3">
<h3 class="anchored" data-anchor-id="partie-a-étude-dun-modèle-discret">Partie A : Étude d’un modèle discret</h3>
<p>On étudie la suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> définie par <img src="https://latex.codecogs.com/png.latex?u_0%20=%201"> et, pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n">, <img src="https://latex.codecogs.com/png.latex?u_%7Bn+1%7D%20=%20-0,02u_n%5E2%20+%201,3u_n">.</p>
<p><strong>1. Calculer la superficie au premier juillet 2025.</strong></p>
<p>Le premier juillet 2024 correspond à l’année de départ, soit <img src="https://latex.codecogs.com/png.latex?n=0">, avec <img src="https://latex.codecogs.com/png.latex?u_0=1"> ha. Le premier juillet 2025 correspond à <img src="https://latex.codecogs.com/png.latex?n=1">. On calcule donc <img src="https://latex.codecogs.com/png.latex?u_1"> : <img src="https://latex.codecogs.com/png.latex?%20u_1%20=%20-0,02u_0%5E2%20+%201,3u_0%20"> <img src="https://latex.codecogs.com/png.latex?%20u_1%20=%20-0,02(1)%5E2%20+%201,3(1)%20=%20-0,02%20+%201,3%20=%201,28%20"> D’après ce modèle, la superficie recouverte au premier juillet 2025 sera de <strong>1,28 hectare</strong>.</p>
<p><strong>2. On note <img src="https://latex.codecogs.com/png.latex?h"> la fonction définie sur <img src="https://latex.codecogs.com/png.latex?%5B0;%2020%5D"> par <img src="https://latex.codecogs.com/png.latex?h(x)%20=%20-0,02x%5E2%20+%201,3x">.</strong></p>
<p><strong>a. Démontrer que pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n">, <img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%20u_n%20%5Cleqslant%20u_%7Bn+1%7D%20%5Cleqslant%2020">.</strong></p>
<p>Nous allons procéder par récurrence. Soit <img src="https://latex.codecogs.com/png.latex?P(n)"> la propriété : “<img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%20u_n%20%5Cleqslant%20u_%7Bn+1%7D%20%5Cleqslant%2020">”.</p>
<p><strong>Initialisation (pour n=0) :</strong> - <img src="https://latex.codecogs.com/png.latex?u_0%20=%201"> - <img src="https://latex.codecogs.com/png.latex?u_1%20=%201,28"> On a bien <img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%201%20%5Cleqslant%201,28%20%5Cleqslant%2020">, c’est-à-dire <img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%20u_0%20%5Cleqslant%20u_1%20%5Cleqslant%2020">. La propriété <img src="https://latex.codecogs.com/png.latex?P(0)"> est vraie.</p>
<p><strong>Hérédité :</strong> Supposons que la propriété <img src="https://latex.codecogs.com/png.latex?P(k)"> est vraie pour un certain entier naturel <img src="https://latex.codecogs.com/png.latex?k%20%5Cgeqslant%200">. C’est notre hypothèse de récurrence : <img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%20u_k%20%5Cleqslant%20u_%7Bk+1%7D%20%5Cleqslant%2020">. Nous voulons montrer que <img src="https://latex.codecogs.com/png.latex?P(k+1)"> est vraie, c’est-à-dire : <img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%20u_%7Bk+1%7D%20%5Cleqslant%20u_%7Bk+2%7D%20%5Cleqslant%2020">.</p>
<p>D’après l’hypothèse de récurrence, nous avons <img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%20u_k%20%5Cleqslant%20u_%7Bk+1%7D%20%5Cleqslant%2020">. On nous admet que la fonction <img src="https://latex.codecogs.com/png.latex?h"> est croissante sur l’intervalle <img src="https://latex.codecogs.com/png.latex?%5B0;%2020%5D">. Puisque les termes <img src="https://latex.codecogs.com/png.latex?u_k"> et <img src="https://latex.codecogs.com/png.latex?u_%7Bk+1%7D"> appartiennent à cet intervalle, on peut appliquer la fonction <img src="https://latex.codecogs.com/png.latex?h"> à l’inégalité en conservant l’ordre : <img src="https://latex.codecogs.com/png.latex?%20h(1)%20%5Cleqslant%20h(u_k)%20%5Cleqslant%20h(u_%7Bk+1%7D)%20%5Cleqslant%20h(20)%20"> On a <img src="https://latex.codecogs.com/png.latex?u_%7Bn+1%7D%20=%20h(u_n)">. L’inégalité devient : <img src="https://latex.codecogs.com/png.latex?%20h(1)%20%5Cleqslant%20u_%7Bk+1%7D%20%5Cleqslant%20u_%7Bk+2%7D%20%5Cleqslant%20h(20)%20"> Calculons les valeurs des bornes : - <img src="https://latex.codecogs.com/png.latex?h(1)%20=%20-0,02(1)%5E2%20+%201,3(1)%20=%201,28">. - <img src="https://latex.codecogs.com/png.latex?h(20)%20=%20-0,02(20)%5E2%20+%201,3(20)%20=%20-0,02(400)%20+%2026%20=%20-8%20+%2026%20=%2018">. L’inégalité devient donc : <img src="https://latex.codecogs.com/png.latex?%201,28%20%5Cleqslant%20u_%7Bk+1%7D%20%5Cleqslant%20u_%7Bk+2%7D%20%5Cleqslant%2018%20"> Puisque <img src="https://latex.codecogs.com/png.latex?1%20%5Cleqslant%201,28"> et <img src="https://latex.codecogs.com/png.latex?18%20%5Cleqslant%2020">, on peut en conclure que : <img src="https://latex.codecogs.com/png.latex?%201%20%5Cleqslant%20u_%7Bk+1%7D%20%5Cleqslant%20u_%7Bk+2%7D%20%5Cleqslant%2020%20"> La propriété <img src="https://latex.codecogs.com/png.latex?P(k+1)"> est donc vraie.</p>
<p><strong>Conclusion :</strong> Par le principe de récurrence, la propriété <img src="https://latex.codecogs.com/png.latex?P(n)"> est vraie pour tout entier naturel <img src="https://latex.codecogs.com/png.latex?n">.</p>
<p><strong>b. En déduire que la suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> converge.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Rappel de cours : Théorème de la convergence monotone">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Rappel de cours : Théorème de la convergence monotone
</div>
</div>
<div class="callout-body-container callout-body">
<ul>
<li>Toute suite croissante et majorée est convergente.</li>
<li>Toute suite décroissante et minorée est convergente.</li>
</ul>
</div>
</div>
<p>D’après la question précédente, nous avons montré que <img src="https://latex.codecogs.com/png.latex?u_n%20%5Cleqslant%20u_%7Bn+1%7D"> pour tout <img src="https://latex.codecogs.com/png.latex?n">. La suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> est donc <strong>croissante</strong>. Nous avons également montré que <img src="https://latex.codecogs.com/png.latex?u_n%20%5Cleqslant%2020"> pour tout <img src="https://latex.codecogs.com/png.latex?n">. La suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> est donc <strong>majorée</strong> par 20. Étant croissante et majorée, la suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> est convergente. On note <img src="https://latex.codecogs.com/png.latex?L"> sa limite.</p>
<p><strong>c.&nbsp;Justifier que <img src="https://latex.codecogs.com/png.latex?L=15">.</strong></p>
<p>La suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> est définie par la relation de récurrence <img src="https://latex.codecogs.com/png.latex?u_%7Bn+1%7D%20=%20h(u_n)">, où <img src="https://latex.codecogs.com/png.latex?h"> est une fonction continue sur <img src="https://latex.codecogs.com/png.latex?%5B0;%2020%5D">. Comme la suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> converge vers une limite <img src="https://latex.codecogs.com/png.latex?L">, cette limite doit être un point fixe de la fonction <img src="https://latex.codecogs.com/png.latex?h">, c’est-à-dire qu’elle doit vérifier l’équation <img src="https://latex.codecogs.com/png.latex?h(L)=L">. Résolvons l’équation <img src="https://latex.codecogs.com/png.latex?h(x)=x"> : <img src="https://latex.codecogs.com/png.latex?%20-0,02x%5E2%20+%201,3x%20=%20x%20"> <img src="https://latex.codecogs.com/png.latex?%20-0,02x%5E2%20+%200,3x%20=%200%20"> On factorise par <img src="https://latex.codecogs.com/png.latex?x"> : <img src="https://latex.codecogs.com/png.latex?%20x(-0,02x%20+%200,3)%20=%200%20"> Cette équation a deux solutions :</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?x%20=%200"></li>
<li><img src="https://latex.codecogs.com/png.latex?-0,02x%20+%200,3%20=%200%20%5Ciff%200,02x%20=%200,3%20%5Ciff%20x%20=%20%5Cfrac%7B0,3%7D%7B0,02%7D%20=%2015"></li>
</ul>
<p>La suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> est croissante et son premier terme est <img src="https://latex.codecogs.com/png.latex?u_0=1">. Tous les termes de la suite sont donc supérieurs ou égaux à 1. Sa limite <img src="https://latex.codecogs.com/png.latex?L"> ne peut donc pas être 0. On en conclut que la limite de la suite est <strong><img src="https://latex.codecogs.com/png.latex?L=15"></strong>.</p>
<p><strong>3. Dépassement d’un seuil.</strong></p>
<p><strong>a. Justifier que la surface recouverte dépassera les 14 hectares.</strong> La suite <img src="https://latex.codecogs.com/png.latex?(u_n)"> est croissante et converge vers 15. Par définition de la convergence, les termes de la suite se rapprochent de 15. Comme la suite est croissante, les termes se rapprochent de 15 par valeurs inférieures. Puisque <img src="https://latex.codecogs.com/png.latex?14%20%3C%2015">, il existera nécessairement un rang <img src="https://latex.codecogs.com/png.latex?N"> à partir duquel tous les termes <img src="https://latex.codecogs.com/png.latex?u_n"> seront dans l’intervalle <img src="https://latex.codecogs.com/png.latex?%5D14;%2015%5D">. La superficie recouverte dépassera donc un jour les 14 hectares.</p>
<p><strong>b. Recopier et compléter l’algorithme.</strong> L’algorithme doit calculer les termes successifs de la suite jusqu’à ce que la valeur de <code>u</code> dépasse (ou soit égale à) 14. À chaque étape, il faut incrémenter le compteur d’années <code>n</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> seuil():</span>
<span id="cb1-2">    n <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span></span>
<span id="cb1-3">    u <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-4">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">while</span> u <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">14</span>:</span>
<span id="cb1-5">        n <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> n <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-6">        u <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.02</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> u <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> u <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.3</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> u</span>
<span id="cb1-7">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> n</span></code></pre></div></div>
<hr>
</section>
<section id="partie-b-étude-dun-modèle-continu" class="level3">
<h3 class="anchored" data-anchor-id="partie-b-étude-dun-modèle-continu">Partie B : Étude d’un modèle continu</h3>
<p>On étudie la fonction <img src="https://latex.codecogs.com/png.latex?f"> solution de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?(E_1)%20:%20y'%20=%200,02y(15-y)">, avec la condition initiale <img src="https://latex.codecogs.com/png.latex?f(0)=1">.</p>
<p><strong>1. Montrer que <img src="https://latex.codecogs.com/png.latex?g%20=%201/f"> est solution de <img src="https://latex.codecogs.com/png.latex?(E_2)%20:%20y'%20=%20-0,3y%20+%200,02">.</strong></p>
<p>La fonction <img src="https://latex.codecogs.com/png.latex?f"> ne s’annule pas, donc la fonction <img src="https://latex.codecogs.com/png.latex?g=1/f"> est bien définie et dérivable. Calculons la dérivée <img src="https://latex.codecogs.com/png.latex?g'(t)"> : <img src="https://latex.codecogs.com/png.latex?%20g'(t)%20=%20%5Cleft(%5Cfrac%7B1%7D%7Bf(t)%7D%5Cright)'%20=%20-%5Cfrac%7Bf'(t)%7D%7B(f(t))%5E2%7D%20"> On sait que <img src="https://latex.codecogs.com/png.latex?f"> est solution de <img src="https://latex.codecogs.com/png.latex?(E_1)">, donc <img src="https://latex.codecogs.com/png.latex?f'(t)%20=%200,02f(t)(15-f(t))">. On substitue cette expression dans celle de <img src="https://latex.codecogs.com/png.latex?g'(t)"> : <img src="https://latex.codecogs.com/png.latex?%20g'(t)%20=%20-%5Cfrac%7B0,02f(t)(15-f(t))%7D%7B(f(t))%5E2%7D%20=%20-0,02%20%5Cfrac%7B15-f(t)%7D%7Bf(t)%7D%20"> On sépare la fraction en deux : <img src="https://latex.codecogs.com/png.latex?%20g'(t)%20=%20-0,02%20%5Cleft(%20%5Cfrac%7B15%7D%7Bf(t)%7D%20-%20%5Cfrac%7Bf(t)%7D%7Bf(t)%7D%20%5Cright)%20=%20-0,02%20%5Cleft(%2015%20%5Ctimes%20%5Cfrac%7B1%7D%7Bf(t)%7D%20-%201%20%5Cright)%20"> Puisque <img src="https://latex.codecogs.com/png.latex?g(t)%20=%201/f(t)">, on obtient : <img src="https://latex.codecogs.com/png.latex?%20g'(t)%20=%20-0,02%20(15g(t)%20-%201)%20=%20-0,3g(t)%20+%200,02%20"> La fonction <img src="https://latex.codecogs.com/png.latex?g"> est donc bien solution de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?(E_2)">.</p>
<p><strong>2. Donner les solutions de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?(E_2)">.</strong></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Formule : Solutions d'une équation différentielle linéaire">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Formule : Solutions d’une équation différentielle linéaire
</div>
</div>
<div class="callout-body-container callout-body">
<p>Les solutions de l’équation différentielle <img src="https://latex.codecogs.com/png.latex?y'%20=%20ay%20+%20b"> (où <img src="https://latex.codecogs.com/png.latex?a%20%5Cneq%200">) sont les fonctions de la forme : <img src="https://latex.codecogs.com/png.latex?%20y(t)%20=%20C%20e%5E%7Bat%7D%20-%20%5Cfrac%7Bb%7D%7Ba%7D%20%5Cquad%20%5Ctext%7Bavec%20%7D%20C%20%5Cin%20%5Cmathbb%7BR%7D%20"></p>
</div>
</div>
<p>L’équation <img src="https://latex.codecogs.com/png.latex?(E_2)"> est <img src="https://latex.codecogs.com/png.latex?y'%20=%20-0,3y%20+%200,02">. C’est une équation de la forme <img src="https://latex.codecogs.com/png.latex?y'=ay+b"> avec <img src="https://latex.codecogs.com/png.latex?a=-0,3"> et <img src="https://latex.codecogs.com/png.latex?b=0,02">. Les solutions sont donc les fonctions <img src="https://latex.codecogs.com/png.latex?g"> définies par : <img src="https://latex.codecogs.com/png.latex?%20g(t)%20=%20C%20e%5E%7B-0,3t%7D%20-%20%5Cfrac%7B0,02%7D%7B-0,3%7D%20=%20C%20e%5E%7B-0,3t%7D%20+%20%5Cfrac%7B2%7D%7B30%7D%20=%20C%20e%5E%7B-0,3t%7D%20+%20%5Cfrac%7B1%7D%7B15%7D%20"> où <img src="https://latex.codecogs.com/png.latex?C"> est une constante réelle.</p>
<p><strong>3. En déduire l’expression de <img src="https://latex.codecogs.com/png.latex?f(t)">.</strong> On utilise la condition initiale <img src="https://latex.codecogs.com/png.latex?f(0)=1"> pour déterminer la constante <img src="https://latex.codecogs.com/png.latex?C">. On sait que <img src="https://latex.codecogs.com/png.latex?g(0)%20=%201/f(0)%20=%201/1%20=%201">. En utilisant l’expression de <img src="https://latex.codecogs.com/png.latex?g(t)"> trouvée à la question précédente : <img src="https://latex.codecogs.com/png.latex?%20g(0)%20=%20C%20e%5E%7B-0,3%20%5Ctimes%200%7D%20+%20%5Cfrac%7B1%7D%7B15%7D%20=%20C%20e%5E0%20+%20%5Cfrac%7B1%7D%7B15%7D%20=%20C%20+%20%5Cfrac%7B1%7D%7B15%7D%20"> On a donc l’équation <img src="https://latex.codecogs.com/png.latex?C%20+%20%5Cfrac%7B1%7D%7B15%7D%20=%201">, ce qui donne <img src="https://latex.codecogs.com/png.latex?C%20=%201%20-%20%5Cfrac%7B1%7D%7B15%7D%20=%20%5Cfrac%7B14%7D%7B15%7D">. L’expression de <img src="https://latex.codecogs.com/png.latex?g(t)"> est : <img src="https://latex.codecogs.com/png.latex?%20g(t)%20=%20%5Cfrac%7B14%7D%7B15%7De%5E%7B-0,3t%7D%20+%20%5Cfrac%7B1%7D%7B15%7D%20"> Maintenant, on trouve <img src="https://latex.codecogs.com/png.latex?f(t)"> en calculant l’inverse de <img src="https://latex.codecogs.com/png.latex?g(t)"> : <img src="https://latex.codecogs.com/png.latex?%20f(t)%20=%20%5Cfrac%7B1%7D%7Bg(t)%7D%20=%20%5Cfrac%7B1%7D%7B%5Cfrac%7B14%7D%7B15%7De%5E%7B-0,3t%7D%20+%20%5Cfrac%7B1%7D%7B15%7D%7D%20"> En multipliant le numérateur et le dénominateur par 15 pour simplifier : <img src="https://latex.codecogs.com/png.latex?%20f(t)%20=%20%5Cfrac%7B15%7D%7B14e%5E%7B-0,3t%7D%20+%201%7D%20"></p>
<p><strong>4. Déterminer la limite de <img src="https://latex.codecogs.com/png.latex?f"> en <img src="https://latex.codecogs.com/png.latex?+%5Cinfty">.</strong> On cherche <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20f(t)">. On a <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20-0,3t%20=%20-%5Cinfty">. Par composition, <img src="https://latex.codecogs.com/png.latex?%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20e%5E%7B-0,3t%7D%20=%200">. Donc, la limite du dénominateur est : <img src="https://latex.codecogs.com/png.latex?%20%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20(14e%5E%7B-0,3t%7D%20+%201)%20=%2014%20%5Ctimes%200%20+%201%20=%201%20"> Par quotient, la limite de <img src="https://latex.codecogs.com/png.latex?f"> est : <img src="https://latex.codecogs.com/png.latex?%20%5Clim_%7Bt%20%5Cto%20+%5Cinfty%7D%20f(t)%20=%20%5Cfrac%7B15%7D%7B1%7D%20=%2015%20"> Le modèle continu prédit que la superficie recouverte tendra vers 15 hectares à long terme, ce qui est cohérent avec le modèle discret.</p>
<p><strong>5. Résoudre l’inéquation <img src="https://latex.codecogs.com/png.latex?f(t)%20%3E%2014"> et interpréter.</strong> On résout dans <img src="https://latex.codecogs.com/png.latex?%5B0;%20+%5Cinfty%5B"> : <img src="https://latex.codecogs.com/png.latex?%20%5Cfrac%7B15%7D%7B14e%5E%7B-0,3t%7D%20+%201%7D%20%3E%2014%20"> Comme le dénominateur <img src="https://latex.codecogs.com/png.latex?14e%5E%7B-0,3t%7D%20+%201"> est strictement positif, on peut multiplier les deux membres par ce terme sans changer le sens de l’inégalité : <img src="https://latex.codecogs.com/png.latex?%2015%20%3E%2014(14e%5E%7B-0,3t%7D%20+%201)%20"> <img src="https://latex.codecogs.com/png.latex?%2015%20%3E%20196e%5E%7B-0,3t%7D%20+%2014%20"> <img src="https://latex.codecogs.com/png.latex?%201%20%3E%20196e%5E%7B-0,3t%7D%20"> <img src="https://latex.codecogs.com/png.latex?%20%5Cfrac%7B1%7D%7B196%7D%20%3E%20e%5E%7B-0,3t%7D%20"> On applique la fonction logarithme népérien, qui est strictement croissante, des deux côtés : <img src="https://latex.codecogs.com/png.latex?%20%5Cln%5Cleft(%5Cfrac%7B1%7D%7B196%7D%5Cright)%20%3E%20%5Cln(e%5E%7B-0,3t%7D)%20"> <img src="https://latex.codecogs.com/png.latex?%20-%5Cln(196)%20%3E%20-0,3t%20"> On divise par <img src="https://latex.codecogs.com/png.latex?-0,3">, qui est un nombre négatif, ce qui inverse le sens de l’inégalité : <img src="https://latex.codecogs.com/png.latex?%20%5Cfrac%7B-%5Cln(196)%7D%7B-0,3%7D%20%3C%20t%20%5Cimplies%20t%20%3E%20%5Cfrac%7B%5Cln(196)%7D%7B0,3%7D%20"> Calculons une valeur approchée : <img src="https://latex.codecogs.com/png.latex?%20t%20%3E%20%5Cfrac%7B5,278...%7D%7B0,3%7D%20%5Capprox%2017,59%20"> <strong>Interprétation :</strong> La superficie recouverte par la posidonie dépassera 14 hectares après environ 17,6 ans à compter du premier juillet 2024. Cela se produira donc au cours de l’année 2042 (<img src="https://latex.codecogs.com/png.latex?2024%20+%2018">).</p>
<p><strong>Remarque :</strong> L’algorithme python de la partie A retourne <img src="https://latex.codecogs.com/png.latex?n=18"> : les résultats sont cohérents.</p>


</section>
</section>

 ]]></description>
  <category>Mathématiques</category>
  <category>Annales</category>
  <guid>https://mathsinfolycee.fr/posts/2025-06-16-MathsMétropoleJ1/</guid>
  <pubDate>Mon, 16 Jun 2025 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025-06-16-MathsMétropoleJ1/img1.png" medium="image" type="image/png" height="89" width="144"/>
</item>
<item>
  <title>Tableaux de variations faciles en LaTeX</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/</link>
  <description><![CDATA[ 





<p>Il existe de nombreux outils pour créer des tableaux de variations et de signes en LaTeX, mais beaucoup sont soit trop complexes, soit peu flexibles. Dans cet article, je vais présenter une solution simple et efficace : le package <strong><code>tablvar</code></strong>, avec des exemples concrets. L’essentiel est issu de la <a href="https://ctan.org/pkg/tablvar" target="_blank">documentation officielle</a>.</p>
<section id="le-package-tablvar" class="level4">
<h4 class="anchored" data-anchor-id="le-package-tablvar">Le package <code>tablvar</code></h4>
<p>Pour commencer, il faut bien sûr appeler le package dans le préambule de votre document. Il est fortement recommandé d’utiliser l’option <code>tikz</code>, qui est le moteur graphique moderne et le plus compatible avec les compilateurs directs en PDF comme <code>pdfLaTeX</code> ou <code>LuaLaTeX</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb1-1"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\usepackage</span>[tikz]{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}</span></code></pre></div></div>
</section>
<section id="tableau-de-variations-simple" class="level4">
<h4 class="anchored" data-anchor-id="tableau-de-variations-simple">Tableau de variations simple</h4>
<p>L’idée fondamentale de tablvar est d’utiliser un environnement qui ressemble beaucoup à array ou tabular, mais avec des commandes spéciales pour placer les valeurs et tracer les flèches.</p>
<p><strong>La Structure de Base</strong></p>
<p>Un tableau de variations se crée à l’intérieur d’un environnement <code>tablvar</code>, qui doit être en mode mathématique (entre <code>$$</code> et <code>$$</code> par exemple).</p>
<p>L’environnement prend un argument obligatoire : le nombre d’intervalles, qui correspond au nombre de flèches que vous souhaitez tracer.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb2-1"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span>
<span id="cb2-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{nombre_de_flèches}</span></span>
<span id="cb2-3"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">  </span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Contenu du tableau</span></span>
<span id="cb2-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}</span>
<span id="cb2-5"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span></code></pre></div></div>
<p><strong>Premier Exemple : Une fonction polynôme</strong></p>
<p>Étudions une fonction <img src="https://latex.codecogs.com/png.latex?f"> dont la dérivée s’annule en <img src="https://latex.codecogs.com/png.latex?-1"> et <img src="https://latex.codecogs.com/png.latex?2">.</p>
<p>Le code LaTeX :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb3-1"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span>
<span id="cb3-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3} </span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Trois intervalles de variation, donc 3 colonnes</span></span>
<span id="cb3-3"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb3-4"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x      &amp; -</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp;&amp; -1 &amp;&amp; 2 &amp;&amp; +</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb3-5"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb3-6"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f'(x)  &amp; &amp; + &amp; 0 &amp; - &amp; 0 &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb3-7"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb3-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% La partie la plus importante : les variations</span></span>
<span id="cb3-9"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\variations</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{ </span></span>
<span id="cb3-10"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">  </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mil</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{f(x)} &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{-</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bas</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{5} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{1} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bas</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{+</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} </span></span>
<span id="cb3-11"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">}</span></span>
<span id="cb3-12"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb3-13"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}</span>
<span id="cb3-14"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span></code></pre></div></div>
<p>Le résultat :</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="fig1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Tableau de variations d’une fonction polynôme"><img src="https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/fig1.png" class="img-fluid figure-img" alt="Tableau de variations d’une fonction polynôme"></a></p>
<figcaption>Tableau de variations d’une fonction polynôme</figcaption>
</figure>
</div>
<p>Décortiquons la commande <code>\variations</code> : C’est le cœur du système.</p>
<ul>
<li><p><code>\mil{f(x)}</code> : Place le texte <img src="https://latex.codecogs.com/png.latex?f(x)"> au “milieu” verticalement, dans la colonne de légende.</p></li>
<li><p><code>\haut{valeur}</code> : Place la valeur en haut de la zone de variation et crée un nœud pour une flèche qui monte.</p></li>
<li><p><code>\bas{valeur}</code> : Place la valeur en bas de la zone de variation et crée un nœud pour une flèche qui descend.</p></li>
</ul>
<p>Les <code>&amp;</code> fonctionnent comme dans un tableau array classique pour séparer les colonnes (valeurs et intervalles).</p>
</section>
<section id="tableau-de-signes" class="level4">
<h4 class="anchored" data-anchor-id="tableau-de-signes">Tableau de signes</h4>
<p>Pour un tableau de signes, la structure est très similaire. tablvar fournit la commande <code>\barre</code> pour tracer une barre de séparation verticale. Si un zéro doit être placé sur cette barre, on le passe en argument optionnel : <code>\barre[0]</code>.</p>
<p><strong>Exemple</strong> : Tableau de signes de <img src="https://latex.codecogs.com/png.latex?f'(x)=(x+1)(-2x+3)"></p>
<p>Le code LaTeX :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb4-1"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span>
<span id="cb4-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3} </span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% On peut utiliser tablvar pour les signes aussi</span></span>
<span id="cb4-3"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb4-4"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x             &amp; -</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp;&amp; -1 &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\frac</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3}{2} &amp;&amp; +</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb4-5"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb4-6"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x+1           &amp; &amp; - &amp; 0 &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb4-7"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb4-8"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">-2x+3         &amp; &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp; + &amp; 0 &amp; - &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb4-9"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb4-10"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mbox</span>{Signe de }<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f'(x) &amp; &amp; - &amp; 0 &amp; + &amp; 0 &amp; - &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb4-11"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb4-12"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}</span>
<span id="cb4-13"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span></code></pre></div></div>
<p>Le résultat :</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="fig2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Tableau de signes de la fonction f’"><img src="https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/fig2.png" class="img-fluid figure-img" alt="Tableau de signes de la fonction f’"></a></p>
<figcaption>Tableau de signes de la fonction f’</figcaption>
</figure>
</div>
</section>
<section id="gérer-les-discontinuités-et-les-limites" class="level4">
<h4 class="anchored" data-anchor-id="gérer-les-discontinuités-et-les-limites">Gérer les discontinuités et les limites</h4>
<p>C’est là que tablvar devient vraiment puissant. Pour les valeurs interdites, on utilise une double barre (<code>\bb</code>) et des commandes spécifiques pour les limites.</p>
<ul>
<li><p><code>\bb</code> : Trace une double barre verticale.</p></li>
<li><p><code>\discont</code> : Indique une discontinuité. La flèche ne traversera pas cet endroit.</p></li>
<li><p><code>\limg{ligne}{valeur}</code> : Place une limite à gauche de la double barre, sur la ligne de variation indiquée.</p></li>
<li><p><code>\limd{ligne}{valeur}</code> : Place une limite à droite.</p></li>
</ul>
<p><strong>Exemple</strong> : Variations de <img src="https://latex.codecogs.com/png.latex?f(x)=e%5E%7B1/x%7D"> (valeur interdite en 0).</p>
<p>Le code LaTeX :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb5-1"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span>
<span id="cb5-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{2}</span></span>
<span id="cb5-3"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb5-4"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x &amp; -</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp;&amp; 0 &amp;&amp; +</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb5-5"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb5-6"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\variations</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{</span></span>
<span id="cb5-7"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mil</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{f(x)} &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{1} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\limg</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3}{0} </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bb</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\discont</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\limd</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{1}{+</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bas</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{1} </span></span>
<span id="cb5-8"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">}</span></span>
<span id="cb5-9"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb5-10"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}</span>
<span id="cb5-11"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span></code></pre></div></div>
<p>Le résultat :</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="fig3.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3" title="Tableau de variations de f(x)=e^{1/x}"><img src="https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/fig3.png" class="img-fluid figure-img" alt="Tableau de variations de f(x)=e^{1/x}"></a></p>
<figcaption>Tableau de variations de f(x)=e^{1/x}</figcaption>
</figure>
</div>
<p>Notez que dans <code>\limg{3}{0}</code>, le 3 correspond à la ligne du bas (bas), et dans <code>\limd{1}{+\infty}</code>, le 1 correspond à la ligne du haut (haut).</p>
</section>
<section id="valeurs-remarquables-et-zones-interdites" class="level4">
<h4 class="anchored" data-anchor-id="valeurs-remarquables-et-zones-interdites">Valeurs remarquables et zones interdites</h4>
<p>Pour ajouter des valeurs remarquables sur la ligne des <img src="https://latex.codecogs.com/png.latex?x">, on utilise <code>\vr{valeur}</code>. Pour indiquer une zone interdite (domaine de définition), on utilise <code>\ZI</code>.</p>
<p><strong>Exemple</strong> : Variations de l’exponentielle avec des valeurs remarquables.</p>
<p>Le code LaTeX :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb6-1"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span>
<span id="cb6-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3}</span></span>
<span id="cb6-3"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb6-4"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x &amp; -</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\vr</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{0} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\vr</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{1} &amp;&amp; +</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb6-5"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb6-6"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\variations</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">[4]{ </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mil</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\exp</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> x} &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bas</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{0} &amp;&amp;</span></span>
<span id="cb6-7"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\vr</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">[3]{1} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\vr</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\textrm</span>{e}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{+</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} }</span></span>
<span id="cb6-8"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb6-9"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}</span>
<span id="cb6-10"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span></code></pre></div></div>
<p>Le résultat :</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="fig4.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4" title="Tableau de variations avec des valeurs remarquables"><img src="https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/fig4.png" class="img-fluid figure-img" alt="Tableau de variations avec des valeurs remarquables"></a></p>
<figcaption>Tableau de variations avec des valeurs remarquables</figcaption>
</figure>
</div>
<p><strong>Exemple</strong> : Tableau de variations avec une zone interdite.</p>
<p>Le code LaTeX :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb7-1"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{4}</span></span>
<span id="cb7-2"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb7-3"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x &amp; -</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp;&amp; -1 &amp;&amp; 0 &amp;&amp; 1 &amp;&amp; +</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb7-4"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb7-5"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\variations</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{ </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mil</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{f(x)} &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{+</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} &amp;&amp;</span></span>
<span id="cb7-6"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\limg</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3}{-</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bb</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\ZI</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bb</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\limd</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3}{-</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} &amp;&amp;</span></span>
<span id="cb7-7"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\frac</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\textrm</span>{e}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">^{-1}}{2}} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bas</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{0} }</span></span>
<span id="cb7-8"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb7-9"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span></code></pre></div></div>
<p>Le résultat :</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="fig5.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5" title="Tableau de variations avec une zone interdite"><img src="https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/fig5.png" class="img-fluid figure-img" alt="Tableau de variations avec une zone interdite"></a></p>
<figcaption>Tableau de variations avec une zone interdite</figcaption>
</figure>
</div>
</section>
<section id="les-commandes-essentielles-à-retenir" class="level4">
<h4 class="anchored" data-anchor-id="les-commandes-essentielles-à-retenir">Les commandes essentielles à retenir</h4>
<p>Voici un résumé des commandes les plus utiles du package tablvar :</p>
<table class="caption-top table">
<colgroup>
<col style="width: 25%">
<col style="width: 74%">
</colgroup>
<thead>
<tr class="header">
<th>Commande</th>
<th>Utilisation</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><code>\begin{tablvar}{n}</code></td>
<td>Démarre un tableau avec <img src="https://latex.codecogs.com/png.latex?n"> flèches.</td>
</tr>
<tr class="even">
<td><code>\variations{...}</code></td>
<td>Contient la ou les lignes de variations.</td>
</tr>
<tr class="odd">
<td><code>\haut{val}</code></td>
<td>Place <code>val</code> en haut (flèche montante).</td>
</tr>
<tr class="even">
<td><code>\bas{val}</code></td>
<td>Place <code>val</code> en bas (flèche descendante).</td>
</tr>
<tr class="odd">
<td><code>\mil{texte}</code></td>
<td>Centre verticalement le texte (pour la légende <img src="https://latex.codecogs.com/png.latex?f(x)">).</td>
</tr>
<tr class="even">
<td><code>\barre[0]</code></td>
<td>Barre de séparation simple (avec un 0 optionnel).</td>
</tr>
<tr class="odd">
<td><code>\bb</code></td>
<td>Double barre pour les valeurs interdites.</td>
</tr>
<tr class="even">
<td><code>\discont</code></td>
<td>Empêche une flèche de traverser une discontinuité.</td>
</tr>
<tr class="odd">
<td><code>\limg{lig}{val}</code></td>
<td>Limite à gauche de la <code>\bb</code>.</td>
</tr>
<tr class="even">
<td><code>\limd{lig}{val}</code></td>
<td>Limite à droite de la <code>\bb</code>.</td>
</tr>
<tr class="odd">
<td><code>\vr{val}</code></td>
<td>Place une “valeur remarquable” sur la ligne des <img src="https://latex.codecogs.com/png.latex?x">.</td>
</tr>
<tr class="even">
<td><code>\ZI</code></td>
<td>Indique une “zone interdite” (domaine de définition).</td>
</tr>
</tbody>
</table>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Personnalisation
</div>
</div>
<div class="callout-body-container callout-body">
<p>tablvar offre de nombreuses options de personnalisation, à passer en argument optionnel de l’environnement. Par exemple :</p>
<ul>
<li><p><code>\begin{tablvar}[intervalwidth=4em]{2}</code> pour élargir les colonnes d’intervalles.</p></li>
<li><p><code>\begin{tablvar}[ZItype=c, ZIcolor=lightgray]{3}</code> pour avoir des zones interdites colorées plutôt que hachurées.</p></li>
</ul>
<p>Reportez-vous à la documentation officielle pour explorer toutes les possibilités !</p>
</div>
</div>
</section>
<section id="un-exemple-final" class="level4">
<h4 class="anchored" data-anchor-id="un-exemple-final">Un exemple final</h4>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb8-1"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3}</span></span>
<span id="cb8-2"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb8-3"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x &amp; -</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp;&amp; -1 &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\frac</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{3}{2} &amp;&amp; +</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb8-4"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb8-5"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">x+1 &amp; &amp; - &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">[0] &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb8-6"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb8-7"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">-2x+3 &amp; &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">[0] &amp; - &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb8-8"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb8-9"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mbox</span>{Signe de }<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f’(x) &amp; &amp; - &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">[0] &amp; + &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\barre</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">[0] &amp; - &amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb8-10"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb8-11"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\variations</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{ </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mil</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\mbox</span>{Variations de }<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f} &amp;</span></span>
<span id="cb8-12"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{+</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bas</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{-14} &amp;&amp; </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\haut</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\frac</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{69}{4}} &amp;&amp;</span></span>
<span id="cb8-13"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\bas</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{-</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\infty</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">} }</span></span>
<span id="cb8-14"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb8-15"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tablvar</span>}<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">$$</span></span></code></pre></div></div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="fig6.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6" title="Tableau de variations complet"><img src="https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/fig6.png" class="img-fluid figure-img" alt="Tableau de variations complet"></a></p>
<figcaption>Tableau de variations complet</figcaption>
</figure>
</div>


</section>

 ]]></description>
  <category>Mathématiques</category>
  <category>LaTeX</category>
  <guid>https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/</guid>
  <pubDate>Sun, 15 Jun 2025 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025_06_16_tablvar_latex/fig1.png" medium="image" type="image/png" height="69" width="144"/>
</item>
<item>
  <title>Le “Nobel des maths” décerné au Japonais Masaki Kashiwara</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2025_03_27_Prix_Abel/</link>
  <description><![CDATA[ 





<p>Le monde des mathématiques est en ébullition ! Le prestigieux prix Abel, souvent considéré comme l’équivalent du prix Nobel dans cette discipline, a été attribué au mathématicien japonais Masaki Kashiwara.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Masaki_Kashiwara_blackboard_PeterBadge_Typos1_TheAbelPrize.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Masaki Kashiwara (crédit : Peter Bagde / Typos1 / The Abel Prize)"><img src="https://mathsinfolycee.fr/posts/2025_03_27_Prix_Abel/Masaki_Kashiwara_blackboard_PeterBadge_Typos1_TheAbelPrize.jpg" class="img-fluid figure-img" style="width:80.0%" alt="Masaki Kashiwara (crédit : Peter Bagde / Typos1 / The Abel Prize)"></a></p>
<figcaption>Masaki Kashiwara (crédit : Peter Bagde / Typos1 / The Abel Prize)</figcaption>
</figure>
</div>
<p>Selon l’article de <em>La Recherche</em> (que vous pouvez consulter <a href="https://www.larecherche.fr/prix-abel/le-japonais-masaki-kashiwara-se-voit-d%C3%A9cerner-le-prix-abel-2025-le-%C2%ABnobel-de-maths%C2%BB">ici</a>), cette récompense vient couronner les travaux fondamentaux de M. Kashiwara en analyse algébrique et en théorie des représentations. Plus précisément, elle salue son développement de la théorie des D-modules, un outil puissant qui permet d’étudier les équations différentielles avec des méthodes algébriques, et sa découverte des bases cristallines.</p>
<p>Les D-modules, au cœur de l’œuvre de Kashiwara, transforment l’étude des équations différentielles en un problème d’algèbre, permettant ainsi d’appliquer des techniques sophistiquées issues de la géométrie algébrique. Cette approche a révolutionné notre compréhension de ces équations, qui sont omniprésentes dans toutes les sciences, de la physique à l’économie.</p>
<p>Quant aux bases cristallines, elles offrent une perspective nouvelle sur les représentations des groupes quantiques. Ces groupes, qui généralisent les groupes de symétrie classiques, jouent un rôle essentiel en physique théorique, notamment dans l’étude des phénomènes quantiques. Les bases cristallines de Kashiwara ont permis de simplifier considérablement l’étude de ces représentations, révélant des structures cachées et ouvrant la voie à de nouvelles découvertes. Elles fournissent un cadre plus “simple” pour comprendre ces objets complexes, un peu comme si l’on passait de l’étude d’un solide complexe à celle de sa structure atomique sous-jacente.</p>
<p>Les contributions de Kashiwara ont non seulement enrichi ces domaines, mais ont également ouvert des perspectives inattendues, reliant des branches des mathématiques qui semblaient auparavant éloignées. Il a créé des ponts entre l’analyse algébrique, la théorie des représentations, la géométrie algébrique et la physique mathématique, démontrant ainsi l’unité profonde des mathématiques.</p>
<p>L’annonce de ce prix prestigieux met en lumière l’importance des contributions de Masaki Kashiwara au domaine des mathématiques. Ses recherches ont ouvert de nouvelles perspectives et ont eu un impact considérable sur de nombreux domaines connexes.</p>
<p>Le prix Abel, créé en 2002, honore les mathématiciens pour l’excellence de leurs travaux. Il est décerné chaque année par l’Académie norvégienne des sciences et des lettres. Cette institution prestigieuse, fondée en 1857, a pour mission de promouvoir la recherche scientifique et les études humanistes en Norvège. Le prix Abel, qui porte le nom du mathématicien norvégien Niels Henrik Abel (1802-1829), a été établi pour combler l’absence d’un prix Nobel en mathématiques. La décision d’attribuer le prix est prise par un comité international de mathématiciens renommés, garantissant ainsi la reconnaissance des contributions les plus exceptionnelles à ce domaine.</p>



 ]]></description>
  <category>Mathématiques</category>
  <category>Actualités</category>
  <guid>https://mathsinfolycee.fr/posts/2025_03_27_Prix_Abel/</guid>
  <pubDate>Wed, 26 Mar 2025 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2025_03_27_Prix_Abel/Masaki_Kashiwara_blackboard_PeterBadge_Typos1_TheAbelPrize.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Harold Hotelling : Un mathématicien au service de l’économie</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/Hotelling/</link>
  <description><![CDATA[ 





<p>Voici une ressource qui, je l’espère, élargira votre perspective sur les mathématiques et leur application dans le monde réel. Il s’agit d’un podcast de France Culture consacré à <strong>Harold Hotelling</strong>, un économiste et mathématicien dont l’œuvre, bien que parfois méconnue, a profondément influencé la pensée économique du 20e siècle.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Harold_Hotelling.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Harold Hotelling"><img src="https://mathsinfolycee.fr/posts/Hotelling/Harold_Hotelling.jpg" class="img-fluid figure-img" style="width:25.0%" alt="Harold Hotelling"></a></p>
<figcaption>Harold Hotelling</figcaption>
</figure>
</div>
<p>Lien vers le podcast : <a href="https://www.radiofrance.fr/franceculture/podcasts/entendez-vous-l-eco/entendez-vous-l-eco-emission-du-jeudi-27-fevrier-2025-8713597" target="_blank">Harold Hotelling : Un pionnier de l’économie redécouvert</a></p>
<section id="harold-hotelling-un-pionnier-de-léconomie-redécouvert" class="level3">
<h3 class="anchored" data-anchor-id="harold-hotelling-un-pionnier-de-léconomie-redécouvert">Harold Hotelling : Un pionnier de l’économie redécouvert</h3>
<p><strong>Marion Gaspard</strong> le décrit comme une figure du “Hall of Fame des économistes du 20e siècle”. Ce podcast met en lumière la récente redécouverte de Hotelling, grâce notamment aux travaux d’analyse et d’exploration de ses archives menés par Marion Gaspard et Antoine Missmer.</p>
<p><strong>Hotelling était convaincu que les mathématiques pouvaient et devaient être utilisées pour éclairer et résoudre des problèmes économiques et sociaux concrets</strong>. Il aspirait à mettre “les outils mathématiques au service du bien-être du plus grand nombre à travers une science économique plus claire, plus transparente et débarrassée de ces fausses croyances”. Pour Hotelling, “les mathématiques peuvent aller partout sur n’importe quel terrain et résoudre toutes les équations, y compris sociales et environnementales du moment qu’elle se confronte au réel”.</p>
</section>
<section id="thèmes-abordés-dans-le-podcast" class="level3">
<h3 class="anchored" data-anchor-id="thèmes-abordés-dans-le-podcast">Thèmes abordés dans le podcast</h3>
<p>Le podcast explore plusieurs contributions majeures de Hotelling :</p>
<ul>
<li><strong>Le principe de différenciation minimale</strong> : Ce concept, souvent illustré par la métaphore des marchands de glace cherchant la position optimale sur une plage pour maximiser leur clientèle, permet de comprendre les dynamiques de concurrence spatiale.</li>
<li><strong>La règle de Hotelling</strong> : Il s’agit d’un modèle mathématique qui cherche à prédire l’évolution du prix des ressources naturelles épuisables. <strong>Antoine Missmer</strong> précise que, selon ce modèle, le prix d’une ressource épuisable a tendance à croître au rythme du taux d’intérêt du marché. Cette règle a des implications importantes pour la gestion des ressources naturelles et la politique environnementale.</li>
<li><strong>L’économie spatiale</strong> : Hotelling a été un pionnier dans l’analyse de la localisation des entreprises et des activités économiques. Ses travaux aident à comprendre pourquoi des commerces similaires ont tendance à se regrouper.</li>
<li><strong>L’économie des ressources naturelles</strong> : Hotelling est réputé pour avoir proposé un modèle mathématique d’épuisement des ressources naturelles. Il s’intéressait particulièrement à la question de la dépréciation des actifs miniers et à leur valorisation fiscale.</li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="640x340_sc_sc_gettyimages-3066394.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Photo d’une exploitation pétrolière californienne en 1925. ©Getty"><img src="https://mathsinfolycee.fr/posts/Hotelling/640x340_sc_sc_gettyimages-3066394.jpg" class="img-fluid figure-img" style="width:60.0%" alt="Photo d’une exploitation pétrolière californienne en 1925. ©Getty"></a></p>
<figcaption>Photo d’une exploitation pétrolière californienne en 1925. ©Getty</figcaption>
</figure>
</div>
</section>
<section id="lactualité-de-hotelling" class="level3">
<h3 class="anchored" data-anchor-id="lactualité-de-hotelling">L’actualité de Hotelling</h3>
<p>L’intérêt de Hotelling pour les problèmes concrets et sa conviction que les mathématiques peuvent éclairer les enjeux économiques et sociaux rendent son œuvre toujours pertinente aujourd’hui.</p>
<p>L’émission souligne que l’œuvre d’Hotelling a connu une période d’oubli relatif, notamment en raison de la technicité de ses articles, de l’évolution des priorités économiques et environnementales, et de l’utilisation de concepts mathématiques qui ont pu être perçus comme “démodés” après la Seconde Guerre mondiale. Cependant, sa redécouverte récente témoigne de la richesse et de la profondeur de sa pensée.</p>
<p>Je vous encourage vivement à écouter ce podcast. Il offre une perspective intéressante sur l’application des mathématiques à des problèmes complexes et met en lumière l’œuvre d’un économiste et mathématicien qui a marqué son époque et dont les idées continuent de résonner aujourd’hui.</p>
<p>Lien vers le podcast : <a href="https://www.radiofrance.fr/franceculture/podcasts/entendez-vous-l-eco/entendez-vous-l-eco-emission-du-jeudi-27-fevrier-2025-8713597" target="_blank">Harold Hotelling : Un pionnier de l’économie redécouvert</a></p>


</section>

 ]]></description>
  <category>Mathématiques</category>
  <category>Histoire</category>
  <category>Podcast</category>
  <guid>https://mathsinfolycee.fr/posts/Hotelling/</guid>
  <pubDate>Thu, 27 Feb 2025 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/Hotelling/Harold_Hotelling.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Calculus Rhapsody : Quand l’analyse devient une chanson entraînante !</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/calculusRhapsody/</link>
  <description><![CDATA[ 





<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="image_video.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Calculus Rhapsody"><img src="https://mathsinfolycee.fr/posts/calculusRhapsody/image_video.png" class="img-fluid figure-img" style="width:60.0%" alt="Calculus Rhapsody"></a></p>
<figcaption>Calculus Rhapsody</figcaption>
</figure>
</div>
<blockquote style="margin-left: 100px; font-style: italic;" class="blockquote">
I’m just a constant nobody loves me…<br> …<br> Multiply the integral by pi!<br> Pi tastes real good with whipped cream!<br> …<br> Oh baby… can’t define that point baby<br> It’s undefined<br> Goes to positive and negative infinity<br>
</blockquote>
<p>Avez-vous déjà imaginé apprendre l’analyse en écoutant une chanson ? “Calculus Rhapsody” le fait de manière ludique et mémorable. Cette chanson aborde les concepts fondamentaux du calcul différentiel et intégral d’une manière non conventionnelle.</p>
<p>La vidéo est ancienne (2009), mais toujours d’actualité. Elle est une parodie de la célèbre chanson “Bohemian Rhapsody” de Queen, avec des paroles adaptées au cours d’analyse. La chanson est interprétée par un groupe d’étudiants en mathématiques de l’Université de Northwestern. On devine qu’ils ont un peu souffert pour apprendre leur cours d’analyse, mais ils ont réussi à en faire une chanson entraînante et éducative.</p>
<blockquote style="margin-left: 100px; font-style: italic;" class="blockquote">
I’m a just a limit,<br> Defined analytically<br> Function’s continuous,<br> There’s no holes,<br> No sharp points,<br> Or asymptotes<br> Any way this graph goes,<br> It is differentiable for me..<br>
</blockquote>
<p>La chanson est un mélange d’humour, de musique et de mathématiques. On prend particulièrement plaisir à comprendre les paroles et à les associer aux concepts mathématiques connus. Toutes ces notions devraient parler à un élève français en fin de terminale, spécialité mathématiques.</p>
<blockquote style="margin-left: 100px; font-style: italic;" class="blockquote">
All year, in Calculus<br> We’ve learned so many things<br> About which we are gonna sing<br> We can find derivatives<br> And integrals<br> And the area enclosed between two curves…<br>
</blockquote>
<p>Voici la vidéo de “Calculus Rhapsody” :</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/uqwC41RDPyg?si=cxEiDTsfgaaoJBuA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">
</iframe>



 ]]></description>
  <category>Mathématiques</category>
  <category>Humour</category>
  <category>Vidéothèque</category>
  <guid>https://mathsinfolycee.fr/posts/calculusRhapsody/</guid>
  <pubDate>Wed, 05 Feb 2025 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/calculusRhapsody/image_video.png" medium="image" type="image/png" height="73" width="144"/>
</item>
<item>
  <title>Tuto IA pour les profs : Créer des exercices à partir de podcasts.</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/tutoIA_podcast/</link>
  <description><![CDATA[ 





<section id="tuto-ia-pour-les-profs-créer-des-exercices-à-partir-de-podcasts." class="level1">
<h1>Tuto IA pour les profs : Créer des exercices à partir de podcasts.</h1>
<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>Les podcasts sont un excellent moyen d’apprendre et de s’informer. Ils sont également un excellent moyen de pratiquer l’écoute et la compréhension orale. Dans ce tutoriel, nous allons voir comment utiliser l’intelligence artificielle pour créer des exercices à partir de podcasts.</p>
<p>Pour ce faire, nous allons utiliser l’IA Gemini de Google, dans sa version “2.0 Flash Thinking”, accessible entièrement gratuitement dans le <a href="https://aistudio.google.com" target="_blank">Google AI Studio</a>.</p>
<p><a href="Wavy_Tech-07_Single-03.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://mathsinfolycee.fr/posts/tutoIA_podcast/Wavy_Tech-07_Single-03.jpg" class="img-fluid" style="width:40.0%"></a></p>
</section>
<section id="étape-1-télécharger-le-podcast" class="level2">
<h2 class="anchored" data-anchor-id="étape-1-télécharger-le-podcast">Étape 1 : Télécharger le podcast</h2>
<p>Pour permettre à l’IA de travailler sur le podcast, nous devons d’abord le télécharger. Nous allons prendre comme exemple un podcast de France Culture sur l’intelligence artificielle, dont la page est la suivante : <a href="https://www.radiofrance.fr/franceculture/podcasts/la-science-cqfd/ia-forte-la-paranoia-5901100" target="_blank">https://www.radiofrance.fr/franceculture/podcasts/la-science-cqfd/ia-forte-la-paranoia-5901100</a>.</p>
<p>Le site de France Culture ne permet pas de télécharger directement le podcast, mais vous pouvez utiliser un outil comme <code>youtube-dl</code> pour le faire. Par exemple, pour télécharger le podcast en format mp3, vous pouvez utiliser la commande suivante :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">youtube-dl</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-x</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">--audio-format</span> mp3 https://www.radiofrance.fr/franceculture/podcasts/la-science-cqfd/ia-forte-la-paranoia-5901100</span></code></pre></div></div>
<p>Mais il est aussi possible d’utiliser l’IA pour télécharger le podcast. En effet, l’adresse du fichier mp3 est souvent présente dans le code source de la page web. Vous pouvez donc utiliser une IA pour extraire cette adresse et télécharger le fichier. Voici comment procéder.</p>
<ul>
<li>Charger la page du podcast dans votre navigateur. Faire un clic droit sur la page, puis sélectionner “Afficher le code source de la page” (ou équivalent).</li>
<li>Un nouvel onglet s’ouvre contenant le code source de la page. Avec le clavier, faire <code>Ctrl + A</code> pour tout sélectionner, puis <code>Ctrl + C</code> pour copier.</li>
<li>Dans Gemini, créer un nouveau prompt et entrer le texte suivant :</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Prompt
</div>
</div>
<div class="callout-body-container callout-body">
<p>Extrait du code source HTML ci-dessous l’URL du fichier mp3 du podcast de 59 minutes de France Culture sur l’IA forte.</p>
</div>
</div>
<p>Sauter une ligne, puis coller le code source copié précédemment avec <code>Ctrl + V</code> et valider avec <code>Ctrl + Entrée</code>.</p>
<p><a href="reponse_url.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://mathsinfolycee.fr/posts/tutoIA_podcast/reponse_url.png" class="img-fluid"></a></p>
<ul>
<li>L’IA va alors extraire l’URL du fichier MP3 du podcast. Vous pouvez ensuite copier-coller cette URL dans votre navigateur internet pour ouvrir et télécharger le fichier (clic droit).</li>
</ul>
<p>Il existe aussi des outils en ligne et des logiciels pour télécharger des fichiers audio à partir d’une URL.</p>
<p>Supposons maintenant que vous avez téléchargé le podcast et que vous avez le fichier MP3 sur votre ordinateur.</p>
</section>
<section id="étape-2-résumé-du-podcast" class="level2">
<h2 class="anchored" data-anchor-id="étape-2-résumé-du-podcast">Étape 2 : Résumé du podcast</h2>
<p>Demander directement une transcription du podcast est possible, mais avec un fichier d’une heure, le texte à générer serait très long, et même trop long pour l’IA.</p>
<p>Nous allons donc plutôt lui demander un résumé structuré. Sachant que les IA donnent de bien meilleurs résultats si on leur demande de travailler étape par étape, il est préférable de faire un prompt bien détaillé. Voici comment procéder :</p>
<ul>
<li>Dans le Google AI Studio, créez un nouveau prompt et choisir le modèle “2.0 Flash Thinking”.</li>
<li>Entrez le texte suivant :</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Prompt
</div>
</div>
<div class="callout-body-container callout-body">
<p>Voici le fichier audio d’un podcast. Je souhaite un résumé structuré de ce podcast. Pour cela, je te demande de suivre les étapes suivantes :</p>
<ol type="1">
<li>Liste des invités de l’émission en précisant leurs fonctions.</li>
<li>Résumé de l’introduction : quelle est la thématique abordée ?</li>
<li>Résumé des points principaux abordés. Structure ta réponse en suivant bien le plan de l’émission. Indique des repères temporels pour que je puisse retrouver les passages dans le podcast.</li>
<li>Résumé de la conclusion.</li>
</ol>
</div>
</div>
<p>Ensuite, charger le fichier MP3 en cliquant sur le petit symbole (+) situé en bas à droite.</p>
<p>Valider le prompt avec <code>Ctrl + Entrée</code>, puis attendre que l’IA génère la transcription (c’est un peu long).</p>
<p><a href="reponse_ia_1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://mathsinfolycee.fr/posts/tutoIA_podcast/reponse_ia_1.png" class="img-fluid" style="width:80.0%"></a></p>
</section>
<section id="étape-3-création-dexercices" class="level2">
<h2 class="anchored" data-anchor-id="étape-3-création-dexercices">Étape 3 : Création d’exercices</h2>
<p>L’exploitation pédagogique va dépendre de la discipline concernée et des envies du professeur !</p>
<p>Voici quelques idées d’exercices que vous pourriez créer à partir du résumé généré par l’IA :</p>
<ul>
<li><strong>Questions de compréhension</strong> : Créer des questions de compréhension sur les points principaux abordés dans le podcast.</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Prompt
</div>
</div>
<div class="callout-body-container callout-body">
<p>Je suis professeur et je veux vérifier que mes élèves ont bien écouté ce podcast et l’ont bien compris. Pour cela, je souhaite créer des questions de compréhension. Peux-tu me proposer 5 questions sur les points principaux abordés dans le podcast ?</p>
</div>
</div>
<p>En réponse, l’IA propose des questions qui peuvent être pertinentes ou pas, il faut faire le tri. Lors de mon test, elle a introduit des repères temporels pour quelques questions, mais ces repères sont fantaisistes :</p>
<p><a href="reponse_ia_2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://mathsinfolycee.fr/posts/tutoIA_podcast/reponse_ia_2.png" class="img-fluid" style="width:80.0%"></a></p>
<ul>
<li><strong>Texte à trous</strong> : Créer un texte à trous à partir du résumé du podcast. Les élèves devront compléter les trous avec les mots manquants.</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Prompt
</div>
</div>
<div class="callout-body-container callout-body">
<p>Je suis professeur et je veux créer un texte à trous à partir du résumé du podcast. Peux-tu me proposer un texte à trous avec 10 mots manquants ? Indique la solution en dessous du texte.</p>
</div>
</div>
<p><a href="reponse_ia_3.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://mathsinfolycee.fr/posts/tutoIA_podcast/reponse_ia_3.png" class="img-fluid" style="width:80.0%"></a></p>
<ul>
<li><strong>QCM</strong> : Créer un QCM à partir du résumé du podcast. Les élèves devront choisir la bonne réponse parmi plusieurs propositions.</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Prompt
</div>
</div>
<div class="callout-body-container callout-body">
<p>Je suis professeur et je veux créer un QCM à partir du résumé du podcast. Peux-tu me proposer 5 questions avec chacune une unique bonne réponse. Indique quelle est la bonne réponse pour chaque question.</p>
</div>
</div>
<p><a href="reponse_ia_4.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://mathsinfolycee.fr/posts/tutoIA_podcast/reponse_ia_4.png" class="img-fluid" style="width:80.0%"></a></p>
</section>
<section id="conclusion" class="level2">
<h2 class="anchored" data-anchor-id="conclusion">Conclusion</h2>
<p>Les exemples présentés dans cet article ne sont que quelques idées d’exercices que vous pourriez créer à partir d’un podcast. Selon les disciplines, beaucoup d’autres types d’exercices sont possibles. L’IA peut vous aider à générer des exercices rapidement et facilement, mais il est important de vérifier la qualité des réponses générées.</p>


</section>
</section>

 ]]></description>
  <category>IA</category>
  <category>Tutos</category>
  <category>Podcast</category>
  <guid>https://mathsinfolycee.fr/posts/tutoIA_podcast/</guid>
  <pubDate>Mon, 03 Feb 2025 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/tutoIA_podcast/Wavy_Tech-07_Single-03.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Les algorithmes : une épopée à travers le temps</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/</link>
  <description><![CDATA[ 





<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>Les algorithmes, autrefois domaine réservé des mathématiciens, ont connu une ascension fulgurante depuis les années 1970 avec la démocratisation de l’informatique. Aujourd’hui, ils sont omniprésents, façonnant notre quotidien et alimentant les avancées de l’intelligence artificielle. Mais que sont-ils exactement ? Comment ont-ils évolué ? Et quels défis posent-ils à notre société ?</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="rb_18131.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Image de rawpixel.com sur Freepik"><img src="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/rb_18131.png" class="img-fluid figure-img" style="width:50.0%" alt="Image de rawpixel.com sur Freepik"></a></p>
<figcaption>Image de rawpixel.com sur Freepik</figcaption>
</figure>
</div>
</section>
<section id="définition-et-rôle-des-algorithmes" class="level2">
<h2 class="anchored" data-anchor-id="définition-et-rôle-des-algorithmes">Définition et rôle des algorithmes</h2>
<p>Comme l’explique Claire Mathieu, directrice de recherche CNRS et experte en algorithmique, dans <a href="https://www.epi.asso.fr/revue/articles/a2410d.htm#_ts1734600136930" target="_blank">une interview pour le site de l’EPI</a>, un algorithme est une méthode, une suite d’instructions élémentaires, qui permet de résoudre un problème pas à pas. C’est un concept simple, mais d’une puissance extraordinaire. Pensez à la méthode d’addition avec retenue que vous avez apprise à l’école primaire : c’est un algorithme qui vous permet de réaliser n’importe quelle addition.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="clairemathieucdf1.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Claire MATHIEU"><img src="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/clairemathieucdf1.jpg" class="img-fluid figure-img" style="width:30.0%" alt="Claire MATHIEU"></a></p>
<figcaption>Claire MATHIEU</figcaption>
</figure>
</div>
<p>La recherche en algorithmique consiste à concevoir de nouveaux algorithmes ou à analyser ceux qui existent déjà pour comprendre leurs propriétés et les améliorer. Claire Mathieu, par exemple, se spécialise dans les algorithmes d’approximation. Ces algorithmes sont conçus pour trouver des solutions suffisamment bonnes à des problèmes complexes, pour lesquels la recherche de la solution optimale serait trop longue ou impossible. Imaginez un déménageur qui doit optimiser le remplissage de son camion : une solution approximative, mais rapide est bien plus utile qu’une solution parfaite qui prendrait des heures à calculer. Ces problèmes sont dits « NP-difficiles », comme l’explique l’article.</p>
</section>
<section id="une-histoire-riche-et-des-avancées-majeures" class="level2">
<h2 class="anchored" data-anchor-id="une-histoire-riche-et-des-avancées-majeures">Une histoire riche et des avancées majeures</h2>
<div class="quarto-layout-panel" data-layout-ncol="2">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<p>L’histoire des algorithmes ne date pas d’hier. Elle remonte à des siècles, avec des figures comme Al-Khwarizmi au 9e siècle, dont le nom a donné le mot « algorithme ». Il a formalisé des méthodes de résolution de problèmes mathématiques, posant les bases de ce qui allait devenir une discipline majeure.</p>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="1983_CPA_5426.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-3" title="Al-Khwarizmi"><img src="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/1983_CPA_5426.jpg" class="img-fluid figure-img" style="width:30.0%" alt="Al-Khwarizmi"></a></p>
<figcaption><a href="https://fr.wikipedia.org/wiki/Al-Khw%C3%A2rizm%C3%AE" target="_blank">Al-Khwarizmi</a></figcaption>
</figure>
</div>
</div>
</div>
</div>
<p>Un tournant majeur a eu lieu après la Seconde Guerre mondiale, avec la nécessité de résoudre des problèmes logistiques complexes pour la reconstruction. C’est à cette époque, en 1947, que George Dantzig a inventé l’<a href="https://fr.wikipedia.org/wiki/Algorithme_du_simplexe" target="_blank">algorithme du simplexe</a>, un outil puissant pour l’optimisation linéaire, encore utilisé aujourd’hui.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>L’algorithme du simplexe : trouver le meilleur chemin
</div>
</div>
<div class="callout-body-container callout-body">
<p>Imaginez que vous êtes dans un labyrinthe en 3D avec de nombreuses salles reliées par des couloirs. Chaque salle représente une solution possible à un problème et la hauteur de la salle représente la qualité de cette solution (plus c’est haut, mieux c’est). Votre objectif est de trouver la salle la plus haute, la meilleure solution.</p>
<p>L’algorithme du simplexe, c’est un peu comme une méthode pour explorer ce labyrinthe de manière intelligente.</p>
<p>Voici comment il fonctionne :</p>
<ol type="1">
<li><strong>Point de départ :</strong> Vous commencez dans une salle au hasard, une solution initiale.</li>
<li><strong>Regarder autour :</strong> Vous regardez toutes les salles voisines, celles directement connectées à la vôtre par un couloir.</li>
<li><strong>Monter :</strong> Si une salle voisine est plus haute que la vôtre, vous vous y déplacez. C’est comme si vous choisissiez la meilleure solution parmi celles qui sont immédiatement accessibles.</li>
<li><strong>Répéter :</strong> Vous répétez les étapes 2 et 3, en vous déplaçant de salle en salle, toujours vers une salle plus haute.</li>
<li><strong>Sommet :</strong> Vous continuez à monter jusqu’à atteindre une salle pour laquelle aucune des salles voisines n’est plus haute. Vous avez trouvé un sommet, une solution optimale localement !</li>
</ol>
<p><strong>En résumé :</strong> L’algorithme du simplexe trouve la meilleure solution en se déplaçant de proche en proche, en choisissant toujours la meilleure option parmi les solutions voisines, jusqu’à atteindre un sommet. Il est possible que l’on se retrouve bloqué dans un optimum local, qui n’est pas la solution optimale globale, dans ce cas, l’algorithme recommence en partant d’un nouveau point de départ.</p>
<p><strong>C’est comme un alpiniste qui gravit une montagne en suivant toujours le chemin le plus ascendant, jusqu’à atteindre un sommet.</strong> Bien sûr, dans la réalité, les problèmes traités par l’algorithme du simplexe sont bien plus complexes que des labyrinthes en 3D, mais le principe reste le même. C’est une méthode puissante pour trouver la meilleure solution à des problèmes d’optimisation, utilisée dans de nombreux domaines comme la logistique, la finance ou la production industrielle.</p>
</div>
</div>
<p>Mais c’est dans les années 1970 que les algorithmes ont véritablement pris leur essor, portés par la puissance croissante des ordinateurs. En 1971, Stephen Cook a formalisé la notion de « NP-difficulté », un concept clé de la théorie de la complexité, qui a révolutionné l’approche des problèmes algorithmiques. <a href="https://fr.wikipedia.org/wiki/21_probl%C3%A8mes_NP-complets_de_Karp" target="_blank">Richard Karp, en 1972, a ensuite identifié 21 problèmes « NP-complets »</a>, jetant les bases d’une conjecture fondamentale, « P est différent de NP », qui reste à ce jour un des grands mystères non résolus de l’informatique.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Problèmes NP-complets et la grande question P vs NP
</div>
</div>
<div class="callout-body-container callout-body">
<p>En informatique, il y a des problèmes faciles à résoudre et des problèmes difficiles. Pour les classer, on s’intéresse à deux grandes catégories : P et NP.</p>
<p><strong>P : Les problèmes “faciles”</strong></p>
<p>Imaginez que vous avez une liste de nombres et que vous voulez la trier par ordre croissant. C’est un problème “facile”, car il existe des algorithmes rapides pour le faire, même si la liste est très longue. On dit que ce problème appartient à la catégorie P (pour “Polynomial”). En gros, le temps nécessaire pour le résoudre augmente de manière raisonnable avec la taille du problème.</p>
<p><strong>NP : Les problèmes “vérifiables”</strong></p>
<p>Maintenant, imaginez un puzzle complexe, comme un Sudoku géant. Si quelqu’un vous donne une solution, vous pouvez facilement vérifier si elle est correcte en regardant si les règles du jeu sont respectées. Mais trouver la solution vous-même peut être très long et difficile ! On dit que ce problème appartient à la catégorie NP (pour “Non-déterministe Polynomial”). En gros, on peut vérifier une solution rapidement, mais trouver la solution peut prendre un temps qui explose avec la taille du problème.</p>
<p><strong>NP-complets : Les problèmes les plus difficiles de NP</strong></p>
<p>Parmi les problèmes NP, il y a une sous-catégorie spéciale : les problèmes NP-complets. Ce sont les plus difficiles de tous les problèmes NP. Si vous trouvez un algorithme rapide pour résoudre un seul problème NP-complet, alors vous aurez trouvé un algorithme rapide pour résoudre <em>tous</em> les problèmes NP !</p>
<p><strong>P = NP : Le grand mystère</strong></p>
<p>C’est là qu’arrive la grande question à un million de dollars : <strong>P est-il égal à NP ?</strong> Autrement dit, est-ce que tous les problèmes dont on peut vérifier la solution rapidement (NP) peuvent aussi être résolus rapidement (P) ?</p>
<ul>
<li><strong>Si P = NP :</strong> Cela voudrait dire qu’il existe des algorithmes rapides, encore inconnus, pour résoudre tous les problèmes NP, y compris les NP-complets. Ce serait une révolution, car de nombreux problèmes importants, comme l’optimisation de tournées de livraison ou la recherche de nouveaux médicaments, deviendraient beaucoup plus faciles à résoudre.</li>
<li><strong>Si P ≠ NP :</strong> Cela voudrait dire que certains problèmes sont fondamentalement difficiles à résoudre, même si on peut vérifier une solution rapidement. C’est ce que pense la plupart des informaticiens, mais personne n’a encore réussi à le prouver.</li>
</ul>
<p><strong>En résumé :</strong> La question P vs NP est l’un des plus grands mystères de l’informatique et des mathématiques. Sa résolution aurait des conséquences majeures sur de nombreux domaines scientifiques et industriels. C’est un défi qui stimule la recherche depuis des décennies !</p>
</div>
</div>
</section>
<section id="des-découvertes-récentes-et-des-impacts-concrets" class="level2">
<h2 class="anchored" data-anchor-id="des-découvertes-récentes-et-des-impacts-concrets">Des découvertes récentes et des impacts concrets</h2>
<p>Parmi les avancées plus récentes, l’algorithme de chiffrement RSA, inventé en 1978 par Rivest, Shamir et Adleman, a révolutionné la sécurité des communications sur Internet. Il permet d’échanger des messages chiffrés sans avoir à échanger une clé secrète au préalable, grâce à l’utilisation d’une clé publique et d’une clé privée (pour en savoir plus, suivre le lien situé sous la photo ci-dessous).</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="RSA.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-4" title="RSA : Ron Rivest, Adi Shamir, Len Adleman Courtesy of Ron Rivest (source Intersitices.info)"><img src="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/RSA.jpg" class="img-fluid figure-img" style="width:50.0%" alt="RSA : Ron Rivest, Adi Shamir, Len Adleman Courtesy of Ron Rivest (source Intersitices.info)"></a></p>
<figcaption>RSA : Ron Rivest, Adi Shamir, Len Adleman Courtesy of Ron Rivest (source <a href="https://interstices.info/nombres-premiers-et-cryptologie-lalgorithme-rsa/" target="_blank">Intersitices.info</a>)</figcaption>
</figure>
</div>
<p>L’arrivée du big data a également nécessité de nouveaux types d’algorithmes, capables de traiter des flux massifs de données. <a href="https://fr.wikipedia.org/wiki/Algorithme_de_Flajolet_et_Martin" target="_blank">L’algorithme de Flajolet et Martin</a>, datant de 1985, est un exemple marquant. Il permet d’estimer le nombre d’éléments distincts dans un flux de données, ce qui est crucial pour des applications comme la détection d’anomalies dans le trafic réseau.</p>
<p>L’impact des algorithmes ne se limite pas à l’informatique. En biologie moléculaire, par exemple, ils ont permis d’accélérer le séquençage des génomes, ouvrant des perspectives inédites pour la recherche médicale.</p>
</section>
<section id="des-défis-éthiques-et-sociétaux" class="level2">
<h2 class="anchored" data-anchor-id="des-défis-éthiques-et-sociétaux">Des défis éthiques et sociétaux</h2>
<p>L’omniprésence des algorithmes dans notre société soulève des questions éthiques et sociétales importantes. Comme le souligne Claire Mathieu, la rapidité et l’efficacité ne suffisent plus. Les algorithmes doivent aussi être transparents et équitables. Mais comment garantir cette transparence ? Ouvrir le code ne suffit pas. Il faut, selon Claire Mathieu, une réflexion approfondie, impliquant scientifiques et citoyens, pour définir ce qu’est un algorithme transparent et quelles garanties sont attendues.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="lemonde.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5" title="Article paru dans le journal Le Monde en 2018"><img src="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/lemonde.png" class="img-fluid figure-img" style="width:50.0%" alt="Article paru dans le journal Le Monde en 2018"></a></p>
<figcaption><a href="https://www.lemonde.fr/pixels/article/2018/02/12/une-etude-demontre-les-biais-de-la-reconnaissance-faciale-plus-efficace-sur-les-hommes-blancs_5255663_4408996.html" target="_blank">Article paru dans le journal Le Monde en 2018</a></figcaption>
</figure>
</div>
<p>Les algorithmes peuvent même influencer le fonctionnement démocratique, comme le montre l’exemple du redécoupage électoral aux États-Unis. L’utilisation d’algorithmes pour optimiser ce redécoupage, en fonction de lois conçues avant l’ère numérique, pose des risques de manipulation des résultats électoraux.</p>
</section>
<section id="les-enjeux-de-demain" class="level2">
<h2 class="anchored" data-anchor-id="les-enjeux-de-demain">Les enjeux de demain</h2>
<p>L’intelligence artificielle et les réseaux de neurones profonds ouvrent de nouveaux défis pour l’algorithmique. Comprendre comment les résultats de ces algorithmes dépendent des données d’entrée est un enjeu majeur. Claire Mathieu suggère d’appliquer ces algorithmes à des problèmes classiques déjà bien étudiés pour mieux les comprendre.</p>
<p>Enfin, la lutte contre le réchauffement climatique va, selon elle, devenir un domaine d’application crucial pour l’algorithmique. Il faudra inventer des algorithmes moins gourmands en ressources et en énergie, et capables de nous aider à réduire notre empreinte carbone.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="2148884835.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-6" title="Image de fr.freepik.com"><img src="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/2148884835.jpg" class="img-fluid figure-img" style="width:50.0%" alt="Image de fr.freepik.com"></a></p>
<figcaption>Image de fr.freepik.com</figcaption>
</figure>
</div>
</section>
<section id="conclusion" class="level2">
<h2 class="anchored" data-anchor-id="conclusion">Conclusion</h2>
<p>En conclusion, les algorithmes sont bien plus que de simples outils techniques. Ils sont au cœur d’une épopée scientifique et sociétale qui façonne notre présent et notre futur. Les comprendre, les maîtriser et les utiliser de manière éthique est un défi majeur pour les années à venir. L’interview de Claire Mathieu nous offre un éclairage précieux sur cette histoire et sur les enjeux qui nous attendent.</p>
<p><a href="futur.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/futur.png" class="img-fluid"></a></p>


</section>

 ]]></description>
  <category>Algorithmique</category>
  <category>Informatique</category>
  <category>IA</category>
  <category>Société</category>
  <guid>https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/</guid>
  <pubDate>Wed, 25 Dec 2024 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2024_12_19_algos_interview/rb_18131.png" medium="image" type="image/png" height="90" width="144"/>
</item>
<item>
  <title>Nos amis Google, Wikipédia et ChatGPT sont-ils vraiment impartiaux ?</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/2024_18_12_biais_sites/</link>
  <description><![CDATA[ 





<p>On vit dans un monde formidable, n’est-ce pas ? Un clic, et hop ! On a accès à une montagne d’informations. Wikipédia, Google, YouTube, et plus récemment ChatGPT, sont devenus nos compagnons inséparables dans la quête du savoir. Mais vous êtes-vous déjà demandé si ces outils étaient vraiment neutres, impartiaux, et nous donnaient une vision objective du monde ? C’est la question que s’est posée une équipe de chercheurs, et leurs conclusions, relayées par Laurent Bloch dans un article passionnant, sont pour le moins… éclairantes, et même un peu dérangeantes !</p>
<p><a href="article_biais_fig4.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://mathsinfolycee.fr/posts/2024_18_12_biais_sites/article_biais_fig4.png" class="img-fluid" style="width:50.0%"></a></p>
<p><strong>Un éléphant, six aveugles et plein de malentendus : l’allégorie qui résume tout</strong></p>
<p>Imaginez six aveugles qui rencontrent un éléphant. L’un touche la trompe et dit “c’est un serpent !”. Un autre touche une défense et s’exclame “mais non, c’est une lance !”. Un troisième palpe l’oreille et déclare : “Vous vous trompez tous les deux, c’est un éventail !”. Le quatrième, les mains sur une patte, affirme : “Pas du tout, c’est un arbre !”. Le cinquième, appuyé contre le flanc de l’animal, insiste : “Mais non, c’est un mur !”. Et le dernier, tenant la queue, conclut : “Vous n’y êtes pas, c’est une corde !”. Vous voyez le topo ? Eh bien, c’est un peu ce qui se passe quand on interroge le web dans différentes langues. Chaque langue nous donne une perspective différente, partielle, et parfois complètement à côté de la plaque, sur un même sujet.</p>
<p><a href="article_biais_fig2.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://mathsinfolycee.fr/posts/2024_18_12_biais_sites/article_biais_fig2.jpg" class="img-fluid" style="width:50.0%"></a></p>
<p>L’étude menée par Queenie Luo, Michael J. Puett et Michael D. Smith, et publiée dans les <em>Communications of the ACM</em> (CACM), le montre clairement. Vous pouvez lire l’article original ici : <a href="https://cacm.acm.org/practice/a-perspectival-mirror-of-the-elephant/" target="_blank">https://cacm.acm.org/practice/a-perspectival-mirror-of-the-elephant/</a>. Ils ont choisi deux thèmes, le bouddhisme et le libéralisme, et ont analysé les réponses fournies par Google, YouTube, Wikipédia et ChatGPT dans douze langues différentes (anglais, français, allemand, chinois, thaï, vietnamien, italien, espagnol, russe, coréen, népalais et japonais). Douze langues, c’est pas mal, ça donne un bon aperçu de la diversité des points de vue ! Laurent Bloch, dans son article disponible ici <a href="https://laurentbloch.net/MySpip3/Biais-selon-la-langue-dans-Wikipedia-Google-ChatGPT-et-YouTube" target="_blank">https://laurentbloch.net/MySpip3/Biais-selon-la-langue-dans-Wikipedia-Google-ChatGPT-et-YouTube</a> en fait un résumé très accessible.</p>
<p><a href="article_biais_fig1.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://mathsinfolycee.fr/posts/2024_18_12_biais_sites/article_biais_fig1.jpg" class="img-fluid" style="width:50.0%"></a></p>
<p><strong>Le bouddhisme vu par l’Occident, l’Asie… et les algorithmes : un kaléidoscope de perceptions</strong></p>
<p>Prenons le bouddhisme. Vaste sujet, n’est-ce pas ? Vous cherchez des infos en français ou en allemand ? Google vous sortira des sites historiques et encyclopédiques. Logique. On est plutôt cartésiens, nous autres ! Vous faites la même recherche en anglais ? Là, surprise, on vous propose plutôt des centres de méditation et de retraites spirituelles. En gros, le bouddhisme “new age” à l’occidentale, un peu comme un produit de consommation courante. En chinois, on vous sert la version officielle du parti, avec un focus sur l’organisation des monastères. Pas de place pour la spiritualité débridée, il faut que ça rentre dans les cases ! Et en thaï, on vous explique la différence entre bouddhisme et culte des fantômes, parce que là-bas, les esprits, c’est du sérieux. Chaque langue reflète la vision dominante de sa communauté. Et c’est là que ça devient intéressant : l’article de recherche nous dit que ces résultats ne sont pas le fruit du hasard. Ils sont “cohérents” avec la manière dont le bouddhisme est perçu dans chaque communauté linguistique. En gros, Google &amp; co nous renvoient un miroir de nos propres préjugés ! Flippant, non ?</p>
<p>L’étude va plus loin et analyse les résultats pour des requêtes plus précises, comme “Karma dans le bouddhisme” ou “Gautama Bouddha”. Et là, c’est encore plus flagrant. En Europe, on vous explique les concepts de base, comme si vous étiez un débutant. En Asie, on rentre dans le vif du sujet, avec des questions pratiques (comment se débarrasser du mauvais karma, par exemple). Pour le pauvre Chögyam Trungpa, un maître bouddhiste controversé, les anglophones minimisent ses frasques, tandis que les sinophones s’étalent sur les détails croustillants. Le Dalaï Lama ? Un pacifiste pour les uns, un agitateur politique pour les autres. Bref, on est loin d’une vision objective et globale !</p>
<p><strong>Le libéralisme : un concept à géométrie variable, un mot qui fâche (ou pas)</strong></p>
<p>Et le libéralisme dans tout ça ? Accrochez-vous, c’est encore plus tordu ! Pour un Américain, un libéral, c’est presque un gauchiste, un progressiste qui croit aux droits individuels et à l’égalité. Mais pour un Français, c’est plutôt un type de droite, genre défenseur du libre marché et de la loi de la jungle économique. Du coup, les résultats de recherche varient énormément. En anglais, le libéralisme a plutôt bonne presse. On vous parle de liberté, d’égalité des chances, de libre entreprise. En français, allemand, italien ou espagnol, c’est une autre histoire… Disons que l’image est moins reluisante, avec des critiques du néolibéralisme et de ses dérives.</p>
<p>Dans de nombreux pays asiatiques, l’accent mis par le libéralisme sur la liberté individuelle est perçu comme une menace pour l’ordre social et les valeurs traditionnelles. Et en russe, YouTube associe libéralisme et démocratie, avec un soupçon de nostalgie pour l’URSS et une pointe d’inquiétude sur les conséquences de la chute du communisme. On ne nagera pas dans l’objectivité ici non plus !</p>
<p><strong>ChatGPT : l’intelligence artificielle qui pense en anglais… et qui nous enferme dans nos bulles</strong></p>
<p>Et ChatGPT, notre nouvel ami l’IA, qu’en pense-t-il de tout ça ? Eh bien, l’étude nous apprend que la version testée à l’époque (février 2023) a été principalement entraînée sur des données en anglais. Du coup, même si vous lui posez une question en français ou en chinois, il va vous répondre avec une perspective anglo-américaine. C’est comme s’il avait des œillères ! L’article précise que c’est un peu différent avec la version intégrée à Bing, qui se base sur la langue de la requête pour choisir ses sources. Mais dans les deux cas, on a un problème : on croit qu’on a accès à une information objective, alors qu’on est enfermé dans une bulle linguistique et culturelle.</p>
<p><strong>YouTube : l’amplificateur d’ethnocentrisme en vidéo</strong></p>
<p>YouTube, c’est encore une autre paire de manches. L’étude montre que les vidéos proposées sont souvent produites par des membres du groupe ethnique dominant de la communauté linguistique. Et comme le classement dépend de la popularité, on se retrouve avec une vision encore plus biaisée et réductrice que sur Google. Les chercheurs parlent d’une “expérience ethnocentrique profonde”, amplifiée par l’aspect visuel et émotionnel des vidéos. On voit des visages, on entend des voix, on ressent des émotions… et on se laisse encore plus facilement influencer.</p>
<p><strong>Wikipédia : un peu mieux, mais pas parfait</strong></p>
<p>Et Wikipédia, notre encyclopédie collaborative préférée, est-elle plus objective ? Disons qu’elle s’en sort un peu mieux. Les articles sont écrits dans un style neutre et factuel, et les auteurs s’efforcent de citer des sources variées. Mais l’étude montre que, là aussi, il y a des différences selon les langues. L’article français sur le bouddhisme s’attarde sur le débat “religion ou philosophie”, typiquement franco-français, tandis que l’article anglais cite plein de livres sur la pleine conscience, reflet de la popularité de cette pratique aux États-Unis. Pour le libéralisme, l’article français remonte à l’Antiquité, tandis que l’italien se concentre sur le rapport entre libéralisme et religion. Bref, même Wikipédia n’échappe pas complètement aux biais culturels.</p>
<p><strong>Alors, on fait quoi ? Faut-il jeter nos ordinateurs et retourner aux livres ?</strong></p>
<p>Pas forcément ! Cette étude est un peu flippante, certes. Elle montre que nos outils de recherche préférés ne sont pas de simples fenêtres neutres sur le monde, mais qu’ils sont influencés par les biais culturels et politiques des communautés linguistiques. Le risque, c’est de se retrouver enfermé dans une bulle, à ne voir que ce qui conforte nos préjugés, et de ne jamais être confronté à d’autres points de vue. Imaginez par exemple un jeune qui ferait ses recherches scolaires uniquement sur la base de ces résultats biaisés, sans jamais se douter qu’il n’a qu’une vision tronquée et orientée de la réalité. C’est un peu comme si on regardait le monde par le petit bout de la lorgnette, en pensant qu’on a une vue d’ensemble.</p>
<p>Mais, comme le souligne Laurent Bloch, tout n’est pas perdu. Le fait que ces plateformes soient accessibles partout dans le monde est aussi une chance. On peut les utiliser pour confronter les points de vue, découvrir d’autres cultures, et se faire une opinion plus nuancée et diversifiée. Il suffit d’être un peu malin et de ne pas se laisser endormir par la facilité.</p>
<p>Alors, la prochaine fois que vous ferez une recherche en ligne, gardez l’esprit critique ! Changez de langue, comparez les résultats, et n’oubliez pas que la vérité est souvent un éléphant qu’on ne peut appréhender que sous tous les angles. Il faut aller la chercher par nous-mêmes, en croisant les sources, en se méfiant des évidences, et en gardant à l’esprit que nos outils numériques, aussi pratiques soient-ils, ne sont pas infaillibles. Ils ne sont que le reflet de nos propres biais, et c’est à nous de les déjouer pour nous forger une vision du monde plus juste, plus complète, et plus ouverte.</p>
<p><a href="article_biais_fig3.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://mathsinfolycee.fr/posts/2024_18_12_biais_sites/article_biais_fig3.png" class="img-fluid" style="width:50.0%"></a></p>



 ]]></description>
  <category>Informatique</category>
  <category>Internet</category>
  <category>Société</category>
  <guid>https://mathsinfolycee.fr/posts/2024_18_12_biais_sites/</guid>
  <pubDate>Wed, 18 Dec 2024 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/2024_18_12_biais_sites/article_biais_fig2.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Tuto pyxel : Pluie de cerises et score</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/pyxel_tuto4_cerises/</link>
  <description><![CDATA[ 





<p>Ce tuto fait suite au précédent : <a href="../../posts/pyxel_tuto3_fond/index.html">Tuto pyxel : Ajouter un fond</a>.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Objectifs du tutoriel
</div>
</div>
<div class="callout-body-container callout-body">
<ul>
<li>Créer un objet Cerise qui tombe du ciel ;</li>
<li>Générer une pluie de cerises à intervalles aléatoires ;</li>
<li>Détecter les collisions entre le personnage et les cerises ;</li>
<li>Afficher le score du joueur.</li>
</ul>
</div>
</div>
<section id="création-de-lobjet-cerise" class="level2">
<h2 class="anchored" data-anchor-id="création-de-lobjet-cerise">Création de l’objet Cerise</h2>
<p>Nous allons commencer par créer une classe <code>Cerise</code> qui permettra de gérer le comportement et l’affichage des cerises. Chaque cerise aura une position <img src="https://latex.codecogs.com/png.latex?(x,%20y)"> et une vitesse de chute.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">class</span> Cerise:</span>
<span id="cb1-2">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">__init__</span>(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>, x, y):</span>
<span id="cb1-3">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.x <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> x</span>
<span id="cb1-4">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.y <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> y</span>
<span id="cb1-5">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.vitesse <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Vitesse de chute de la cerise</span></span>
<span id="cb1-6"></span>
<span id="cb1-7">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> update(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):</span>
<span id="cb1-8">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.y <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+=</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.vitesse <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># La cerise tombe</span></span>
<span id="cb1-9"></span>
<span id="cb1-10">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> draw(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):</span>
<span id="cb1-11">        pyxel.blt(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.x, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.y, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">32</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>) <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#Affichage de la cerise</span></span></code></pre></div></div>
<p>Explications :</p>
<ul>
<li>Lignes 2-4 : Le constructeur <code>__init__</code> initialise la position <img src="https://latex.codecogs.com/png.latex?(x,%20y)"> de la cerise et sa vitesse de chute.</li>
<li>Ligne 7 : La méthode <code>update</code> met à jour la position verticale <img src="https://latex.codecogs.com/png.latex?y"> de la cerise en fonction de sa vitesse, simulant ainsi la chute.</li>
<li>Ligne 10 : La méthode <code>draw</code> affiche la cerise à l’écran à l’aide de <code>pyxel.blt</code>. On suppose ici que les coordonnées de la cerise dans le fichier de ressources sont (32, 0) et que ses dimensions sont 16x16 pixels. La couleur 12 (bleu) est rendue transparente.</li>
</ul>
</section>
<section id="gestion-de-la-pluie-de-cerises" class="level2">
<h2 class="anchored" data-anchor-id="gestion-de-la-pluie-de-cerises">Gestion de la pluie de cerises</h2>
<p>Maintenant, nous allons gérer la pluie de cerises dans la classe <code>App</code>. Nous utiliserons une liste <code>self.cerises</code> pour stocker les cerises actuellement présentes à l’écran et la fonction <code>pyxel.rndi</code> pour générer des cerises à des positions horizontales aléatoires.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Astuce</span>Idée à retenir
</div>
</div>
<div class="callout-body-container callout-body">
<p>L’utilisation de <code>pyxel.rndi</code> permet de générer des nombres entiers aléatoires. C’est très pratique pour créer des événements aléatoires dans un jeu.</p>
</div>
</div>
<p>On ajoute ces éléments dans la méthode <code>__init__</code> de la classe <code>App</code>:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb2-1">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">__init__</span>(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># classe App</span></span>
<span id="cb2-2">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ... (code précédent)</span></span>
<span id="cb2-3">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cerises <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> [] <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># liste des cerises</span></span>
<span id="cb2-4">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.score <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span></span>
<span id="cb2-5">        pyxel.run(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.update, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.draw)</span></code></pre></div></div>
<p>Ensuite, on modifie la méthode <code>update</code> pour ajouter une nouvelle cerise à un intervalle aléatoire, mettre à jour chaque cerise, et supprimer celles qui sortent de l’écran :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb3-1">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> update(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># classe App</span></span>
<span id="cb3-2">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.personnage.update()</span>
<span id="cb3-3">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.foret.update()</span>
<span id="cb3-4">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> nuage <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.nuages:</span>
<span id="cb3-5">            nuage.update()</span>
<span id="cb3-6">            <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ... (code précédent pour la gestion des nuages)</span></span>
<span id="cb3-7"></span>
<span id="cb3-8"></span>
<span id="cb3-9">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> pyxel.frame_count <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%</span> pyxel.rndi(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">60</span>) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>:  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Générer une cerise toutes les 1 à 2 secondes (à 30 fps)</span></span>
<span id="cb3-10">            <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cerises.append(Cerise(pyxel.rndi(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, pyxel.width <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>), <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>))  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Position aléatoire en x</span></span>
<span id="cb3-11">            </span>
<span id="cb3-12">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> cerise <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cerises:</span>
<span id="cb3-13">            cerise.update()</span>
<span id="cb3-14">            <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> cerise.y <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> pyxel.height:</span>
<span id="cb3-15">                <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cerises.remove(cerise)</span></code></pre></div></div>
<p>Explications :</p>
<ul>
<li>Ligne 8&nbsp;: on génère une nouvelle cerise à un intervalle aléatoire compris entre 30 et 60&nbsp;frames. Sachant que le jeu tourne à 30&nbsp;fps, cela correspond à une nouvelle cerise toutes les 1&nbsp;à 2&nbsp;secondes.</li>
<li>Ligne 9&nbsp;: la cerise apparaît juste au-dessus de la fenêtre à une abscisse aléatoire.</li>
<li>Lignes 11 à&nbsp;13&nbsp;: la boucle <code>for</code> met à jour la position verticale de chaque cerise et les supprime lorsqu’elles passent en dessous du bas de la fenêtre.</li>
</ul>
</section>
<section id="détection-des-collisions" class="level2">
<h2 class="anchored" data-anchor-id="détection-des-collisions">Détection des collisions</h2>
<p>Pour détecter les collisions entre le personnage et les cerises, nous allons ajouter du code dans la méthode <code>update</code> de la classe <code>App</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb4-1">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> update(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># class App</span></span>
<span id="cb4-2">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ... (code précédent)</span></span>
<span id="cb4-3">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> cerise <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cerises:</span>
<span id="cb4-4">            <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#... (code précédent pour la gestion des cerises)</span></span>
<span id="cb4-5"></span>
<span id="cb4-6">            <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (</span>
<span id="cb4-7">                <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">abs</span>(cerise.x <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.personnage.x_personnage) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">and</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">abs</span>(cerise.y <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> (pyxel.height <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>)) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span></span>
<span id="cb4-8">            ):  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Collision détectée !</span></span>
<span id="cb4-9">                <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cerises.remove(cerise)</span>
<span id="cb4-10">                <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.score <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span></code></pre></div></div>
<p>Explications :</p>
<ul>
<li>Lignes 6 à 8 : On teste si la distance entre le personnage et la cerise est inférieure à 16 pixels, ce qui signifie une collision. Si une collision est détectée, la cerise est retirée de l’écran et le score du joueur est incrémenté.</li>
</ul>
</section>
<section id="affichage-du-score" class="level2">
<h2 class="anchored" data-anchor-id="affichage-du-score">Affichage du score</h2>
<p>Enfin, nous allons afficher le score en haut à gauche de l’écran. Pour cela, nous modifions la méthode <code>draw</code> de la classe <code>App</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb5-1">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> draw(<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>):  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># classe App</span></span>
<span id="cb5-2">        pyxel.cls(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>)</span>
<span id="cb5-3"></span>
<span id="cb5-4">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ... (code précédent pour le dessin du fond)</span></span>
<span id="cb5-5"></span>
<span id="cb5-6">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> cerise <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.cerises:</span>
<span id="cb5-7">            cerise.draw()</span>
<span id="cb5-8">        <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span>.personnage.draw()</span>
<span id="cb5-9">        pyxel.text(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Score: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">self</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span>score<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>, pyxel.COLOR_WHITE) <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Affichage du score</span></span></code></pre></div></div>
<p>Explications :</p>
<ul>
<li>Ligne 8: on affiche le score à l’écran en blanc aux coordonnées (5, 5)</li>
</ul>
</section>
<section id="conclusion" class="level2">
<h2 class="anchored" data-anchor-id="conclusion">Conclusion</h2>
<p>Dans ce tutoriel, nous avons appris à faire pleuvoir des cerises dans notre application Pyxel. Nous avons créé une classe <code>Cerise</code> pour gérer les cerises, généré une pluie de cerises à intervalles aléatoires, détecté les collisions entre le personnage et les cerises, et affiché le score du joueur. Vous pouvez maintenant tester votre jeu et voir si vous pouvez attraper toutes les cerises !</p>
<p><a href="image_jeu.gif" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://mathsinfolycee.fr/posts/pyxel_tuto4_cerises/image_jeu.gif" class="img-fluid" style="width:50.0%"></a></p>


</section>

 ]]></description>
  <category>Python</category>
  <category>NSI</category>
  <category>Programmation</category>
  <category>Pyxel</category>
  <category>Nuit du code</category>
  <guid>https://mathsinfolycee.fr/posts/pyxel_tuto4_cerises/</guid>
  <pubDate>Mon, 25 Nov 2024 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/pyxel_tuto4_cerises/image_jeu.png" medium="image" type="image/png" height="77" width="144"/>
</item>
<item>
  <title>Record battu pour les nombres premiers !</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/record-battu-pour-les-nombres-premiers/</link>
  <description><![CDATA[ 





<section id="la-découverte-dun-nombre-premier-record-une-nouvelle-ère-pour-gimps" class="level2">
<h2 class="anchored" data-anchor-id="la-découverte-dun-nombre-premier-record-une-nouvelle-ère-pour-gimps">La Découverte d’un Nombre Premier Record : Une Nouvelle ère pour GIMPS</h2>
<p>Le 21 octobre 2024, le projet GIMPS (Great Internet Mersenne Prime Search) a annoncé la découverte d’un nouveau nombre premier de Mersenne, 2<sup>136279841</sup>-1, composé de 41 024 320 chiffres. Cette découverte marque un tournant dans l’histoire de GIMPS, car elle met fin à 28 années de domination des ordinateurs personnels dans la recherche de ces nombres rares.</p>
<p>En effet, ce nombre premier record a été découvert grâce à l’utilisation de GPUs (processeurs graphiques), une technologie initialement utilisée pour les cartes vidéo et le minage de cryptomonnaies, mais qui est aujourd’hui au cœur de la révolution de l’intelligence artificielle. Mihai Preda, un contributeur de GIMPS, a développé un logiciel de recherche de nombres premiers de Mersenne compatible avec les GPUs en 2017. Luke Durant, un ancien employé de NVIDIA et fervent partisan des GPUs, a vu en cette technologie une opportunité unique pour GIMPS.</p>
<p>Durant a mis en place une infrastructure pour exécuter et maintenir une suite de logiciels GIMPS sur plusieurs serveurs GPU, créant ainsi un “supercalculateur cloud”. Ce réseau, composé de milliers de GPUs répartis dans 24 centres de données et 17 pays, a permis à Durant de découvrir le nouveau nombre premier après près d’un an de recherche. Le 11 octobre 2024, un GPU NVIDIA A100 à Dublin, en Irlande, a signalé que M136279841 était probablement premier, et le 12 octobre, un GPU NVIDIA H100 à San Antonio, au Texas, a confirmé sa primalité à l’aide d’un <strong>test de Lucas-Lehmer</strong>.</p>
<p>Une fois le nombre premier probable identifié, plusieurs tests de Lucas-Lehmer ont été effectués par différents contributeurs de GIMPS utilisant différents programmes et matériels pour confirmer la découverte. Cette collaboration a impliqué Aaron Blosser utilisant Prime95 sur des CPUs Intel, ainsi que Durant, James Heinrich, Serge Batalov, Ken Kriesel et Preda utilisant PRPLL/GpuOwl sur des GPUs AMD et NVIDIA. La primalité du nombre a été confirmée le 19 octobre par Serge Batalov utilisant Mlucas sur un CPU Intel.</p>
<p><strong>GIMPS</strong>, fondé en 1996 par George Woltman, est un projet collaboratif qui rassemble des milliers de bénévoles à la recherche de <strong>nombres premiers de Mersenne</strong>. Ces nombres premiers, nommés d’après le moine français Marin Mersenne, sont de la forme 2<sup>P</sup>-1, où P est un nombre premier. GIMPS a permis de découvrir les 18 derniers nombres premiers de Mersenne, dont le nouveau record. Le projet offre une récompense de 3 000 $ à toute personne découvrant un nouveau nombre premier.</p>
<p>Luke Durant, le découvreur du 52e nombre premier de Mersenne, est l’un des contributeurs les plus prolifiques de GIMPS. Son investissement dans le projet, qui a impliqué des dépenses considérables pour l’utilisation de GPUs dans le cloud, témoigne de son engagement envers la recherche mathématique. Durant prévoit de faire don de sa récompense de 3 000 $ au département de mathématiques de l’Alabama School of Math and Science.</p>
<p>Cette découverte marque une étape importante dans l’histoire de GIMPS et de la recherche de nombres premiers. L’utilisation de GPUs dans le cloud ouvre de nouvelles perspectives pour le projet et pourrait accélérer la découverte de futurs nombres premiers de Mersenne. La collaboration entre les bénévoles et l’utilisation de technologies innovantes ont permis de repousser les limites de la connaissance mathématique.</p>
</section>
<section id="que-sont-les-nombres-premiers-de-mersenne" class="level2">
<h2 class="anchored" data-anchor-id="que-sont-les-nombres-premiers-de-mersenne">Que sont les nombres premiers de Mersenne ?</h2>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Marin_mersenne.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Marin Mersenne"><img src="https://mathsinfolycee.fr/posts/record-battu-pour-les-nombres-premiers/Marin_mersenne.jpg" class="img-fluid figure-img" alt="Marin Mersenne"></a></p>
<figcaption>Marin Mersenne</figcaption>
</figure>
</div>
<p>Les nombres premiers de Mersenne sont des nombres premiers de la forme <img src="https://latex.codecogs.com/png.latex?2%5EP-1">, où <img src="https://latex.codecogs.com/png.latex?P"> est un nombre premier. Ils sont nommés d’après le moine français Marin Mersenne, qui a étudié ces nombres au 17e siècle. Les nombres premiers de Mersenne sont particulièrement intéressants pour les mathématiciens en raison de leur forme simple et de leurs propriétés mathématiques. Ils ont des applications dans divers domaines des mathématiques et de l’informatique, notamment la cryptographie et la théorie des nombres.</p>
<p>Tous les nombres de la forme <img src="https://latex.codecogs.com/png.latex?2%5EP-1"> ne sont pas des nombres premiers de Mersenne. Par exemple, <img src="https://latex.codecogs.com/png.latex?2%5E%7B11%7D-1=2047"> n’est pas un nombre premier, car il peut être décomposé en <img src="https://latex.codecogs.com/png.latex?23%20%5Ctimes%2089">. La recherche de nombres premiers de Mersenne est un domaine actif de la recherche mathématique, et de nombreux projets, dont GIMPS, sont dédiés à leur découverte.</p>
</section>
<section id="quelques-explications-sur-le-teste-de-lucas-lehmer" class="level2">
<h2 class="anchored" data-anchor-id="quelques-explications-sur-le-teste-de-lucas-lehmer">Quelques explications sur le teste de Lucas-Lehmer</h2>
<p>Le test de Lucas-Lehmer est une méthode utilisée pour déterminer si un nombre de Mersenne est premier. Il repose sur une suite récurrente définie par la relation de récurrence suivante :</p>
<p><img src="https://latex.codecogs.com/png.latex?%0AS_0%20=%204,%20%5Cquad%20S_%7Bn+1%7D%20=%20S_n%5E2%20-%202%0A"></p>
<p>Un nombre de Mersenne <img src="https://latex.codecogs.com/png.latex?2%5EP-1"> est premier si et seulement si <img src="https://latex.codecogs.com/png.latex?S_%7BP-2%7D%20%5Cequiv%200%20%5Cpmod%7B2%5EP-1%7D">. Autrement dit, si <img src="https://latex.codecogs.com/png.latex?S_%7BP-2%7D"> est divisible par <img src="https://latex.codecogs.com/png.latex?2%5EP-1">, alors le nombre de Mersenne est premier.</p>
<p>Le test de Lucas-Lehmer est particulièrement efficace pour les nombres de Mersenne, car il permet de vérifier leur primalité en un temps polynomial par rapport à la taille du nombre. Cela en fait un outil précieux pour la recherche de nombres premiers de Mersenne.</p>
<p>Voici une fonction Python qui implémente le test de Lucas-Lehmer pour vérifier si un nombre de Mersenne est premier :</p>
<div id="eaec5ff4" class="cell" data-execution_count="1">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> lucas_lehmer(p):</span>
<span id="cb1-2">    s <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span></span>
<span id="cb1-3">    m <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**</span>p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-4">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> _ <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>):</span>
<span id="cb1-5">        s <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (s<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%</span> m</span>
<span id="cb1-6">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> s <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span></span>
<span id="cb1-7"></span>
<span id="cb1-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># test avec p = 7 (nombre de Mersenne 2^7 - 1 = 127 premier)</span></span>
<span id="cb1-9">p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">7</span></span>
<span id="cb1-10"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> lucas_lehmer(p):</span>
<span id="cb1-11">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Le nombre de Mersenne 2^</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>p<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> - 1 est premier."</span>)</span>
<span id="cb1-12"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span>:</span>
<span id="cb1-13">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Le nombre de Mersenne 2^</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>p<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> - 1 n'est pas premier."</span>)</span>
<span id="cb1-14"></span>
<span id="cb1-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># test avec p = 11 (nombre de Mersenne 2^11 - 1 = 2047 = 23 * 89)</span></span>
<span id="cb1-16">p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">11</span></span>
<span id="cb1-17"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> lucas_lehmer(p):</span>
<span id="cb1-18">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Le nombre de Mersenne 2^</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>p<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> - 1 est premier."</span>)</span>
<span id="cb1-19"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span>:</span>
<span id="cb1-20">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Le nombre de Mersenne 2^</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>p<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> - 1 n'est pas premier."</span>)</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>Le nombre de Mersenne 2^7 - 1 est premier.
Le nombre de Mersenne 2^11 - 1 n'est pas premier.</code></pre>
</div>
</div>
<p>Dans cette fonction, <code>p</code> est l’exposant du nombre de Mersenne, et la fonction renvoie <code>True</code> si le nombre de Mersenne est premier et <code>False</code> sinon.</p>
<p>Évidemment, pour des nombres de Mersenne de taille importante, il est nécessaire d’utiliser des algorithmes et des implémentations plus sophistiqués pour effectuer le test de Lucas-Lehmer de manière efficace.</p>
</section>
<section id="vous-aussi-participez-à-la-recherche-de-nombres-premiers" class="level2">
<h2 class="anchored" data-anchor-id="vous-aussi-participez-à-la-recherche-de-nombres-premiers">Vous aussi, participez à la recherche de nombres premiers !</h2>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="site_GIMPS.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Le site de GIMPS"><img src="https://mathsinfolycee.fr/posts/record-battu-pour-les-nombres-premiers/site_GIMPS.png" class="img-fluid figure-img" alt="Le site de GIMPS"></a></p>
<figcaption>Le site de GIMPS</figcaption>
</figure>
</div>
<p>Si vous êtes passionné par les mathématiques et que vous souhaitez contribuer à la recherche de nombres premiers, vous pouvez <a href="https://www.mersenne.org/download/" target="_blank">rejoindre le projet GIMPS en téléchargeant le logiciel Prime95</a> sur votre ordinateur. Le logiciel utilise la puissance de calcul de votre CPU pour effectuer des tests de primalité sur des nombres de Mersenne. En participant à ce projet, vous contribuerez à l’avancement de la recherche mathématique et aurez peut-être la chance de découvrir le prochain nombre premier record ! Vous pourrez alors entrer dans l’histoire des mathématiques en tant que découvreur d’un nombre premier de Mersenne et recevoir une récompense de 3 000 $.</p>
</section>
<section id="pour-aller-plus-loin" class="level2">
<h2 class="anchored" data-anchor-id="pour-aller-plus-loin">Pour aller plus loin</h2>
<p>Deux vidéos qui parlent de cette découverte :</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/zsyGRDrDfbI?si=n9MWwEbTHPKS8myR" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">
</iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Yp4ilFOtoeg?si=trjqYgmFML3T-jhD" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">
</iframe>


</section>

 ]]></description>
  <category>Actualités</category>
  <category>Mathématiques</category>
  <guid>https://mathsinfolycee.fr/posts/record-battu-pour-les-nombres-premiers/</guid>
  <pubDate>Mon, 04 Nov 2024 23:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/record-battu-pour-les-nombres-premiers/Marin_mersenne.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>La méthode du pivot de Gauss : résoudre des systèmes linéaires comme un pro !</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/pivotGauss/</link>
  <description><![CDATA[ 





<section id="cest-quoi-cette-histoire-de-pivot" class="level2">
<h2 class="anchored" data-anchor-id="cest-quoi-cette-histoire-de-pivot">C’est quoi cette histoire de pivot ?</h2>
<p>La méthode du pivot de Gauss, c’est une technique super efficace pour résoudre des systèmes d’équations linéaires. L’idée, c’est de transformer notre système initial en un système équivalent, mais beaucoup plus simple à résoudre. Comment ? En éliminant progressivement les variables, une par une, jusqu’à obtenir un système triangulaire.</p>
<p>Imaginez que vous essayez de démêler un nœud de câbles. Vous commencez par un bout, vous dégagez un câble, puis un autre, et ainsi de suite jusqu’à ce que tout soit bien ordonné. C’est exactement ce que fait la méthode de Gauss avec nos équations !</p>
</section>
<section id="un-exemple-pour-mieux-comprendre" class="level2">
<h2 class="anchored" data-anchor-id="un-exemple-pour-mieux-comprendre">Un exemple pour mieux comprendre</h2>
<p>Allez, on se lance dans un exemple concret. On va résoudre un système de trois équations à trois inconnues. Attachez vos ceintures, ça va décoiffer !</p>
<p>Soit le système suivant :</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Bcases%7D%0A2&amp;x%20&amp;+&amp;%20y%20&amp;-&amp;%20&amp;z%20&amp;=&amp;%208%20%5C%5C%0A-3&amp;x%20&amp;-&amp;%20y%20&amp;+&amp;%202&amp;z%20&amp;=&amp;%20-11%20%5C%5C%0A-2&amp;x%20&amp;+&amp;%20y%20&amp;+&amp;%202&amp;z%20&amp;=&amp;%20-3%0A%5Cend%7Bcases%7D%0A"></p>
<section id="étape-1-on-choisit-notre-pivot" class="level3">
<h3 class="anchored" data-anchor-id="étape-1-on-choisit-notre-pivot">Étape 1 : On choisit notre pivot</h3>
<p>On va utiliser la première équation comme pivot pour éliminer <img src="https://latex.codecogs.com/png.latex?x"> dans les autres équations.</p>
</section>
<section id="étape-2-on-élimine-x-dans-la-deuxième-et-la-troisième-équation" class="level3">
<h3 class="anchored" data-anchor-id="étape-2-on-élimine-x-dans-la-deuxième-et-la-troisième-équation">Étape 2 : On élimine <img src="https://latex.codecogs.com/png.latex?x"> dans la deuxième et la troisième équation</h3>
<ul>
<li>Pour la deuxième équation, on ajoute 3/2 fois la première équation</li>
<li>Pour la troisième équation, on ajoute 1 fois la première équation</li>
</ul>
<p>On obtient le système équivalent :</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Bcases%7D%0A2&amp;x%20&amp;+&amp;%20&amp;y%20&amp;-&amp;%20&amp;z%20&amp;=&amp;%208%20%5C%5C%0A&amp;%20&amp;&amp;%5Cfrac%7B1%7D%7B2%7D&amp;y%20&amp;+&amp;%20%5Cfrac%7B1%7D%7B2%7D&amp;z%20&amp;=&amp;%201%20%5C%5C%0A&amp;%20&amp;&amp;2&amp;y%20&amp;+&amp;%20&amp;z%20&amp;=&amp;%205%0A%5Cend%7Bcases%7D%0A"></p>
</section>
<section id="étape-3-on-élimine-y-dans-la-troisième-équation" class="level3">
<h3 class="anchored" data-anchor-id="étape-3-on-élimine-y-dans-la-troisième-équation">Étape 3 : On élimine <img src="https://latex.codecogs.com/png.latex?y"> dans la troisième équation</h3>
<p>Maintenant, on utilise la deuxième équation comme pivot pour éliminer <img src="https://latex.codecogs.com/png.latex?y"> dans la troisième équation. On multiplie la deuxième équation par <img src="https://latex.codecogs.com/png.latex?-4"> et on l’ajoute à la troisième équation :</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Bcases%7D%0A2&amp;%20&amp;+%20&amp;&amp;y%20&amp;-%20&amp;&amp;z%20&amp;=%208%20%5C%5C%0A&amp;&amp;&amp;%5Cfrac%7B1%7D%7B2%7D&amp;y%20&amp;+%20&amp;%5Cfrac%7B1%7D%7B2%7D&amp;z%20&amp;=%201%20%5C%5C%0A&amp;&amp;%20&amp;&amp;&amp;-&amp;&amp;z%20&amp;=%201%0A%5Cend%7Bcases%7D%0A"></p>
</section>
<section id="étape-4-on-résout" class="level3">
<h3 class="anchored" data-anchor-id="étape-4-on-résout">Étape 4 : On résout !</h3>
<p>Et voilà, on a notre système triangulaire ! C’est comme avoir dénoué tous nos câbles. Maintenant, on peut facilement trouver nos inconnues :</p>
<ol type="1">
<li>De la dernière équation : <img src="https://latex.codecogs.com/png.latex?z%20=%20-1"></li>
<li>De la deuxième équation : <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B1%7D%7B2%7Dy%20+%20%5Cfrac%7B1%7D%7B2%7D(-1)%20=%201">, donc <img src="https://latex.codecogs.com/png.latex?y%20=%203"></li>
<li>De la première équation : <img src="https://latex.codecogs.com/png.latex?2x%20+%203%20+%201%20=%208">, donc <img src="https://latex.codecogs.com/png.latex?x%20=%202"></li>
</ol>
<p>Notre solution est donc <img src="https://latex.codecogs.com/png.latex?(x,%20y,%20z)%20=%20(2,%203,%20-1)">.</p>
</section>
</section>
<section id="généralisation-et-équivalence-des-systèmes" class="level2">
<h2 class="anchored" data-anchor-id="généralisation-et-équivalence-des-systèmes">Généralisation et équivalence des systèmes</h2>
<p>Maintenant que nous avons vu un exemple concret, parlons un peu de ce qui se passe en coulisses. La magie de la méthode du pivot de Gauss repose sur l’utilisation d’opérations élémentaires qui nous permettent de passer d’un système à un autre équivalent.</p>
<p>Mais qu’est-ce qu’un système équivalent ? C’est simple : deux systèmes sont équivalents s’ils ont exactement les mêmes solutions. En d’autres termes, peu importe lequel des deux systèmes, vous résolvez, vous obtiendrez le même résultat final.</p>
<p>Les opérations élémentaires que nous utilisons sont :</p>
<ol type="1">
<li>Échanger deux équations</li>
<li>Multiplier une équation par un nombre non nul</li>
<li>Ajouter à une équation un multiple d’une autre équation</li>
</ol>
<p>Ces opérations sont comme des tours de magie mathématiques : elles transforment notre système, mais sans jamais changer ses solutions. C’est un peu comme si vous réarrangiez les pièces d’un puzzle sans changer l’image finale.</p>
<p>Pourquoi est-ce si important ? Eh bien, cela signifie que nous pouvons manipuler notre système initial pour le rendre plus simple à résoudre, sans craindre de perdre ou de modifier les solutions en cours de route. C’est ce qui nous permet de passer d’un système compliqué à un système triangulaire facile à résoudre, comme nous l’avons fait dans notre exemple.</p>
<p>Dans le cas général, pour un système de <img src="https://latex.codecogs.com/png.latex?n"> équations à <img src="https://latex.codecogs.com/png.latex?n"> inconnues, nous appliquons ces opérations de manière systématique :</p>
<ol type="1">
<li>On choisit un pivot (généralement le premier coefficient non nul de la première colonne) et on échange l’équation correspondante avec la première équation</li>
<li>On utilise ce pivot pour éliminer la première variable dans toutes les équations suivantes</li>
<li>On répète le processus avec la deuxième équation comme nouveau pivot, et ainsi de suite.</li>
</ol>
<p>À chaque étape, nous créons un nouveau système équivalent, jusqu’à obtenir un système triangulaire que nous pouvons résoudre facilement par substitution inverse.</p>
<p>Cette approche nous permet de résoudre des systèmes de plus en plus grands et complexes, tout en gardant la certitude que nos manipulations préservent les solutions originales. C’est la beauté et la puissance de la méthode du pivot de Gauss !</p>
</section>
<section id="automatisons-tout-ça-avec-python" class="level2">
<h2 class="anchored" data-anchor-id="automatisons-tout-ça-avec-python">Automatisons tout ça avec Python !</h2>
<p>Maintenant que vous êtes des pros du pivot de Gauss, que diriez-vous d’automatiser tout ça avec un peu de code Python ? C’est parti !</p>
<p>Mais avant de plonger dans le code, parlons un peu de la façon dont nous allons représenter notre système d’équations en Python.</p>
<section id="représentation-du-système-en-python" class="level3">
<h3 class="anchored" data-anchor-id="représentation-du-système-en-python">Représentation du système en Python</h3>
<p>En Python, nous allons utiliser un tableau NumPy pour représenter notre système d’équations. Pourquoi NumPy ? Parce que c’est super efficace pour les calculs numériques et ça nous facilite la vie pour manipuler nos équations.</p>
<p>Voici comment ça marche :</p>
<ul>
<li>Chaque ligne du tableau représente une équation du système.</li>
<li>Les colonnes représentent les coefficients des variables et le terme constant.</li>
<li>La dernière colonne contient les termes constants (les nombres à droite du signe égal dans nos équations).</li>
</ul>
<p>Par exemple, notre système initial :</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Bcases%7D%0A2&amp;x&amp;%20+&amp;%20y&amp;%20-&amp;%20&amp;z&amp;%20=&amp;%208%20%5C%5C%0A-3&amp;x&amp;%20-&amp;%20y&amp;%20+&amp;%202&amp;z&amp;%20=&amp;%20-11%20%5C%5C%0A-2&amp;x&amp;%20+&amp;%20y&amp;%20+&amp;%202&amp;z&amp;%20=&amp;%20-3%0A%5Cend%7Bcases%7D%0A"></p>
<p>sera représenté par le tableau NumPy suivant :</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1">systeme <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> np.array([</span>
<span id="cb1-2">    [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>,  <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,  <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>],</span>
<span id="cb1-3">    [<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,  <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">11</span>],</span>
<span id="cb1-4">    [<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>,  <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,  <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>]</span>
<span id="cb1-5">], dtype<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">float</span>)</span></code></pre></div></div>
</section>
<section id="accès-aux-coefficients" class="level3">
<h3 class="anchored" data-anchor-id="accès-aux-coefficients">Accès aux coefficients</h3>
<p>Pour accéder aux différents coefficients dans notre tableau NumPy, on utilise l’indexation. Voici comment ça marche :</p>
<ul>
<li><code>systeme[i, j]</code> nous donne l’élément à la i-ème ligne et j-ème colonne.</li>
<li>Les indices commencent à 0 (comme d’habitude en Python).</li>
<li>Pour un système de n équations à n inconnues :
<ul>
<li><code>systeme[i, j]</code> pour i &lt; n et j &lt; n donne le coefficient de la (j+1)-ème variable dans la (i+1)-ème équation.</li>
<li><code>systeme[i, n]</code> donne le terme constant de la (i+1)-ème équation.</li>
</ul></li>
</ul>
<p>Par exemple :</p>
<ul>
<li><code>systeme[0, 0]</code> vaut 2 (coefficient de <img src="https://latex.codecogs.com/png.latex?x"> dans la première équation)</li>
<li><code>systeme[1, 2]</code> vaut 2 (coefficient de <img src="https://latex.codecogs.com/png.latex?z"> dans la deuxième équation)</li>
<li><code>systeme[2, 3]</code> vaut <img src="https://latex.codecogs.com/png.latex?-3"> (terme constant de la troisième équation).</li>
</ul>
<p>Cette représentation nous permet de manipuler facilement notre système d’équations en utilisant les opérations de NumPy, ce qui rend notre implémentation de la méthode du pivot de Gauss à la fois simple et efficace.</p>
<p>Maintenant que nous avons compris comment représenter et manipuler notre système, passons au code !</p>
<div id="6739fac9" class="cell" data-execution_count="1">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb2-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> numpy <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> np</span>
<span id="cb2-2"></span>
<span id="cb2-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> echanger_equations(systeme, i, j):</span>
<span id="cb2-4">    systeme[i], systeme[j] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> systeme[j].copy(), systeme[i].copy()</span>
<span id="cb2-5"></span>
<span id="cb2-6"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> multiplier_equation(systeme, i, facteur):</span>
<span id="cb2-7">    systeme[i] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*=</span> facteur</span>
<span id="cb2-8"></span>
<span id="cb2-9"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> ajouter_multiple_equation(systeme, i, j, facteur):</span>
<span id="cb2-10">    systeme[i] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+=</span> facteur <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> systeme[j]</span>
<span id="cb2-11"></span>
<span id="cb2-12"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> pivot_gauss(systeme):</span>
<span id="cb2-13">    n, m <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> systeme.shape</span>
<span id="cb2-14">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> i <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">min</span>(n, m <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)):</span>
<span id="cb2-15">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Trouver le pivot maximal</span></span>
<span id="cb2-16">        pivot <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> i <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> np.argmax(np.<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">abs</span>(systeme[i:, i]))</span>
<span id="cb2-17">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> systeme[pivot, i] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>:</span>
<span id="cb2-18">            <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">raise</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">ValueError</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Le système n'a pas de solution unique!"</span>)</span>
<span id="cb2-19">        </span>
<span id="cb2-20">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Échanger les équations</span></span>
<span id="cb2-21">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> pivot <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!=</span> i:</span>
<span id="cb2-22">            echanger_equations(systeme, i, pivot)</span>
<span id="cb2-23">        </span>
<span id="cb2-24">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Éliminer les variables</span></span>
<span id="cb2-25">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> j <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(i <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, n):</span>
<span id="cb2-26">            facteur <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>systeme[j, i] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> systeme[i, i]</span>
<span id="cb2-27">            ajouter_multiple_equation(systeme, j, i, facteur)</span>
<span id="cb2-28">    </span>
<span id="cb2-29">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> systeme</span>
<span id="cb2-30"></span>
<span id="cb2-31"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Exemple d'utilisation</span></span>
<span id="cb2-32">systeme <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> np.array([</span>
<span id="cb2-33">    [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>],</span>
<span id="cb2-34">    [<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">11</span>],</span>
<span id="cb2-35">    [<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>]</span>
<span id="cb2-36">], dtype<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">float</span>)</span>
<span id="cb2-37"></span>
<span id="cb2-38"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Système initial :"</span>)</span>
<span id="cb2-39"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(systeme)</span>
<span id="cb2-40"></span>
<span id="cb2-41">resultat <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pivot_gauss(systeme)</span>
<span id="cb2-42"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">Système après pivot de Gauss :"</span>)</span>
<span id="cb2-43"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(resultat)</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>Système initial :
[[  2.   1.  -1.   8.]
 [ -3.  -1.   2. -11.]
 [ -2.   1.   2.  -3.]]

Système après pivot de Gauss :
[[ -3.          -1.           2.         -11.        ]
 [  0.           1.66666667   0.66666667   4.33333333]
 [  0.           0.           0.2         -0.2       ]]</code></pre>
</div>
</div>
<p>Expliquons un peu ce code :</p>
<ol type="1">
<li><code>echanger_equations</code>, <code>multiplier_equation</code>, et <code>ajouter_multiple_equation</code> sont nos opérations élémentaires sur les équations. Elles utilisent l’indexation NumPy pour accéder et modifier les coefficients.</li>
<li><code>pivot_gauss</code> est notre fonction principale qui applique la méthode du pivot de Gauss. Elle utilise <code>systeme.shape</code> pour obtenir les dimensions de notre tableau.</li>
<li>Dans <code>pivot_gauss</code>, on utilise <code>np.argmax</code> pour trouver l’indice du coefficient de plus grande valeur absolue, ce qui nous donne notre meilleur pivot pour minimiser les erreurs d’arrondi.</li>
<li>Les opérations d’élimination utilisent l’indexation pour accéder aux coefficients appropriés et les modifier.</li>
</ol>
<p>Et voilà ! Avec ce code, vous pouvez résoudre des systèmes linéaires plus rapidement qu’il n’en faut pour dire “Carl Friedrich Gauss” !</p>
<p>Résolvons par exemple le système de cinq équations à cinq inconnues suivant :</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Bcases%7D%0A2&amp;x&amp;%20+&amp;%20&amp;y&amp;%20-&amp;%20&amp;z&amp;%20+&amp;%202&amp;w&amp;%20-&amp;%203&amp;v&amp;%20=&amp;%208%20%5C%5C%0A-3&amp;x&amp;%20-&amp;%20&amp;y&amp;%20+&amp;%202&amp;z&amp;%20-&amp;%20&amp;w&amp;%20+&amp;%204&amp;v&amp;%20=&amp;%20-11%20%5C%5C%0A-2&amp;x&amp;%20+&amp;%20&amp;y&amp;%20+&amp;%202&amp;z&amp;%20+&amp;%20&amp;w&amp;%20-&amp;%202&amp;v&amp;%20=&amp;%20-3%20%5C%5C%0A&amp;x&amp;%20-&amp;%20&amp;y&amp;%20+&amp;%20&amp;%20z&amp;%20-&amp;%20&amp;%20w%20&amp;%20+&amp;%20&amp;%20v&amp;%20=&amp;%202%20%5C%5C%0A4&amp;x&amp;%20-&amp;%202&amp;y&amp;%20+&amp;%203&amp;z&amp;%20-&amp;%202&amp;w&amp;%20+&amp;%20&amp;%20v&amp;%20=&amp;%203%0A%5Cend%7Bcases%7D%0A"></p>
<div id="7b802c41" class="cell" data-execution_count="2">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb4-1">systeme <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> np.array([</span>
<span id="cb4-2">    [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>],</span>
<span id="cb4-3">    [<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">11</span>],</span>
<span id="cb4-4">    [<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>],</span>
<span id="cb4-5">    [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>],</span>
<span id="cb4-6">    [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>]</span>
<span id="cb4-7">], dtype<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">float</span>)</span>
<span id="cb4-8"></span>
<span id="cb4-9">resultat <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pivot_gauss(systeme)</span>
<span id="cb4-10"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Système après pivot de Gauss :"</span>)</span>
<span id="cb4-11"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(resultat)</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>Système après pivot de Gauss :
[[ 4.         -2.          3.         -2.          1.          3.        ]
 [ 0.         -2.5         4.25       -2.5         4.75       -8.75      ]
 [ 0.          0.          3.5         0.         -1.5        -1.5       ]
 [ 0.          0.          0.          1.          0.68571429 -0.11428571]
 [ 0.          0.          0.          0.         -0.45714286  2.74285714]]</code></pre>
</div>
</div>
<p>Il n’y a plus qu’à remonter les équations pour trouver les valeurs de <img src="https://latex.codecogs.com/png.latex?x">, <img src="https://latex.codecogs.com/png.latex?y">, <img src="https://latex.codecogs.com/png.latex?z">, <img src="https://latex.codecogs.com/png.latex?w">, et <img src="https://latex.codecogs.com/png.latex?v">.</p>
<p>On trouve en arrondissant les valeurs : <img src="https://latex.codecogs.com/png.latex?x=-2">, <img src="https://latex.codecogs.com/png.latex?y=-17">, <img src="https://latex.codecogs.com/png.latex?z=-3">, <img src="https://latex.codecogs.com/png.latex?w=4">, <img src="https://latex.codecogs.com/png.latex?v=-6">.</p>
</section>
</section>
<section id="conclusion" class="level2">
<h2 class="anchored" data-anchor-id="conclusion">Conclusion</h2>
<p>La méthode du pivot de Gauss, c’est comme avoir un super-pouvoir pour résoudre des systèmes d’équations. Que vous le fassiez à la main ou avec Python, vous avez maintenant les outils pour dompter ces systèmes linéaires rebelles !</p>
<p>Alors, la prochaine fois que quelqu’un vous parle de systèmes d’équations, vous pourrez fièrement dire : “Pas de panique, j’ai Gauss de mon côté !” 😎</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Carl_Friedrich_Gauss_1840_by_Jensen.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Carl Friedrich Gauss"><img src="https://mathsinfolycee.fr/posts/pivotGauss/Carl_Friedrich_Gauss_1840_by_Jensen.jpg" class="img-fluid figure-img" style="width:50.0%" alt="Carl Friedrich Gauss"></a></p>
<figcaption>Carl Friedrich Gauss</figcaption>
</figure>
</div>


</section>

 ]]></description>
  <category>Mathématiques</category>
  <category>Python</category>
  <category>Programmation</category>
  <guid>https://mathsinfolycee.fr/posts/pivotGauss/</guid>
  <pubDate>Mon, 07 Oct 2024 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/pivotGauss/Carl_Friedrich_Gauss_1840_by_Jensen.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Découvrir les liens entre les maths et la musique</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/mathsmusique/</link>
  <description><![CDATA[ 





<p>France Musique nous propose une série captivante de huit épisodes explorant les liens surprenants entre la musique et les mathématiques. Diffusée pendant l’été 2024 tous les mercredis à 8 h 10, cette série intitulée « Musique + maths » est animée par Pierre-Yves Georges et promet de réconcilier même les plus réticents avec les mathématiques.</p>
<p><a href="LogoFranceMusiqueMaths.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://mathsinfolycee.fr/posts/mathsmusique/LogoFranceMusiqueMaths.png" class="img-fluid"></a></p>
<section id="un-voyage-à-travers-lhistoire-et-les-concepts" class="level1">
<h1>Un voyage à travers l’histoire et les concepts</h1>
<section id="de-la-forge-antique-aux-compositeurs-modernes" class="level2">
<h2 class="anchored" data-anchor-id="de-la-forge-antique-aux-compositeurs-modernes">De la forge antique aux compositeurs modernes</h2>
<p>Le premier épisode nous plonge dans les origines lointaines de cette relation, remontant jusqu’à une forge antique. Ce point de départ inattendu ouvre la voie à une exploration fascinante de l’évolution de ce lien au fil des siècles.</p>
</section>
<section id="les-grands-noms-à-la-croisée-des-disciplines" class="level2">
<h2 class="anchored" data-anchor-id="les-grands-noms-à-la-croisée-des-disciplines">Les grands noms à la croisée des disciplines</h2>
<p>La série met en lumière des personnalités emblématiques qui ont marqué à la fois le monde de la musique et celui des mathématiques :</p>
<ul>
<li>Johann Sebastian Bach, dont l’œuvre continue d’être étudiée pour sa dimension mathématique.</li>
<li>Ernest Ansermet, chef d’orchestre renommé qui était initialement professeur de mathématiques.</li>
<li>Albert Einstein, célèbre physicien, mais aussi mélomane passionné, dont la musique aurait peut-être inspiré certaines théories révolutionnaires.</li>
</ul>
<p><a href="EinsteinViolon.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://mathsinfolycee.fr/posts/mathsmusique/EinsteinViolon.png" class="img-fluid"></a></p>
</section>
</section>
<section id="des-concepts-mathématiques-en-musique" class="level1">
<h1>Des concepts mathématiques en musique</h1>
<section id="probabilités-et-hasard-en-composition" class="level2">
<h2 class="anchored" data-anchor-id="probabilités-et-hasard-en-composition">Probabilités et hasard en composition</h2>
<p>Plusieurs épisodes explorent comment les concepts mathématiques ont influencé la création musicale :</p>
<ul>
<li>Iannis Xenakis, compositeur d’origine grecque, a intégré les probabilités dans ses compositions.</li>
<li>De Mozart à Pierre Boulez, le hasard, notion mathématique, a joué un rôle important dans la composition.</li>
</ul>
</section>
<section id="la-beauté-des-mathématiques-en-musique" class="level2">
<h2 class="anchored" data-anchor-id="la-beauté-des-mathématiques-en-musique">La beauté des mathématiques en musique</h2>
<p>Le pianiste Kit Armstrong, également diplômé en mathématiques fondamentales, partage sa vision sur la beauté et l’émotion présentes tant dans les mathématiques que dans la musique.</p>
</section>
</section>
<section id="un-outil-pédagogique-inattendu" class="level1">
<h1>Un outil pédagogique inattendu</h1>
<p>Un épisode particulièrement intéressant pour les parents et les enseignants suggère que la musique pourrait être un excellent moyen d’améliorer les performances en mathématiques des enfants.</p>
<p>Cette série de podcasts propose une perspective unique sur l’interconnexion entre deux domaines apparemment distincts. Elle invite les auditeurs à découvrir comment la rigueur mathématique et la créativité musicale se complètent et s’enrichissent mutuellement.</p>
<p>Que vous soyez passionné de musique, de mathématiques, ou simplement curieux, ces huit épisodes promettent des découvertes intéressantes et une nouvelle appréciation de ces deux disciplines.</p>
<p>Lien : <a href="https://www.radiofrance.fr/francemusique/podcasts/musique-maths" target="_blank">https://www.radiofrance.fr/francemusique/podcasts/musique-maths</a></p>


</section>

 ]]></description>
  <category>Histoire</category>
  <category>Mathématiques</category>
  <category>Podcast</category>
  <guid>https://mathsinfolycee.fr/posts/mathsmusique/</guid>
  <pubDate>Wed, 02 Oct 2024 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/mathsmusique/LogoFranceMusiqueMaths.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Boby Lapointe, poète mathématicien</title>
  <dc:creator>F. LALLEMAND</dc:creator>
  <link>https://mathsinfolycee.fr/posts/bobylapointe/</link>
  <description><![CDATA[ 





<p>Dans une vidéo de France Musique intitulée <em>Boby Lapointe : la science du poète mathématicien</em> (disponible sur YouTube <a href="https://www.youtube.com/watch?v=yNEA-xmxG4A" target="_blank">ici</a>), cet aspect méconnu de son génie est exploré, mettant en lumière son invention et son approche atypique des nombres.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/yNEA-xmxG4A?si=QdaNZxqSP9SmiWAW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">
</iframe>
<section id="lartiste-des-jeux-de-mots-et-des-jeux-de-nombres" class="level3">
<h3 class="anchored" data-anchor-id="lartiste-des-jeux-de-mots-et-des-jeux-de-nombres">L’artiste des jeux de mots et des jeux de nombres</h3>
<p>Le talent de Boby Lapointe en tant que parolier est incontestable : ses chansons telles que « Ta Katie t’a quitté », « Framboise » ou « La maman des poissons » sont de véritables trésors de la chanson française. Ses textes regorgent de calembours, de contrepèteries et de jeux de mots complexes.</p>
<p>Cette passion pour le langage trouve un parallèle dans sa fascination pour les mathématiques, où il voyait également un jeu d’esprit. Formé à l’École Nationale Supérieure d’Aéronautique, Boby Lapointe était un vrai scientifique. Cette formation explique en partie son goût pour les défis intellectuels.</p>
</section>
<section id="le-système-bibi-binaire-une-invention-ludique-et-sérieuse" class="level3">
<h3 class="anchored" data-anchor-id="le-système-bibi-binaire-une-invention-ludique-et-sérieuse">Le système bibi-binaire : une invention ludique et sérieuse</h3>
<p>L’une des contributions majeures de Lapointe à la culture mathématique reste sans doute son système de numération « bibi-binaire ». Ce terme, que l’on pourrait croire sorti tout droit de l’un de ses textes absurdes, désigne pourtant un concept bien réel et sérieux.</p>
<p>La numération bibi-binaire est un jeu sur la représentation des nombres en base 16. Le système bibi-binaire vise à rendre plus accessible la lecture des nombres hexadécimaux pour les néophytes ou à les manipuler plus aisément.</p>
<p>Dans cette vidéo de France Musique, on comprend mieux comment ce système est né, non pas d’une démarche purement théorique, mais d’un désir ludique de simplifier des concepts complexes et de les rendre accessibles à tous. Pour Lapointe, les mathématiques étaient un terrain de jeu tout aussi fertile que la langue française.</p>
<p>Boby Lapointe est un artiste à multiples facettes, capable de jongler avec les mots comme avec les chiffres. Son invention du système de numération bibi-binaire témoigne de sa créativité, nourrie par une curiosité intellectuelle et un amour des mathématiques.</p>
<p>Au-delà des chansons, Boby Lapointe nous laisse une leçon précieuse : les mathématiques et l’art ne sont pas des disciplines opposées. Au contraire, elles peuvent se nourrir mutuellement pour engendrer des créations inédites, porteuses d’une originalité déconcertante.</p>
</section>
<section id="principe-du-système-bibi-binaire" class="level3">
<h3 class="anchored" data-anchor-id="principe-du-système-bibi-binaire">Principe du système bibi-binaire</h3>
<p>Le système bibi-binaire est basé sur la numération hexadécimale (base 16). L’idée ingénieuse de Boby Lapointe a été d’attribuer à chaque chiffre hexadécimal une syllabe composée d’une consonne et d’une voyelle.</p>
<p>Voici comment fonctionnent ces attributions :</p>
<ul>
<li>Les consonnes H, B, K, D correspondent respectivement aux paires de bits 00, 01, 10, 11 pour les chiffres de poids fort.</li>
<li>Les voyelles O, A, E, I correspondent à ces mêmes paires de bits pour les chiffres de poids faible.</li>
</ul>
<p>Ainsi, chaque chiffre hexadécimal est représenté par une syllabe unique.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="Table_de_correspondance_entre_le_Bibinaire_et_les_autres_notations.svg.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Table de correspondance entre le Bibinaire et les autres notations"><img src="https://mathsinfolycee.fr/posts/bobylapointe/Table_de_correspondance_entre_le_Bibinaire_et_les_autres_notations.svg.png" class="img-fluid figure-img" alt="Table de correspondance entre le Bibinaire et les autres notations"></a></p>
<figcaption>Table de correspondance entre le Bibinaire et les autres notations</figcaption>
</figure>
</div>
<section id="tableau-de-conversion" class="level4">
<h4 class="anchored" data-anchor-id="tableau-de-conversion">Tableau de conversion</h4>
<p>Voici le tableau complet des correspondances :</p>
<table class="table-striped table-hover caption-top table">
<thead>
<tr class="header">
<th style="text-align: center;">Décimal</th>
<th style="text-align: center;">Hexadécimal</th>
<th style="text-align: center;">Bibi-binaire</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: center;">0</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">HO</td>
</tr>
<tr class="even">
<td style="text-align: center;">1</td>
<td style="text-align: center;">1</td>
<td style="text-align: center;">HA</td>
</tr>
<tr class="odd">
<td style="text-align: center;">2</td>
<td style="text-align: center;">2</td>
<td style="text-align: center;">HE</td>
</tr>
<tr class="even">
<td style="text-align: center;">3</td>
<td style="text-align: center;">3</td>
<td style="text-align: center;">HI</td>
</tr>
<tr class="odd">
<td style="text-align: center;">4</td>
<td style="text-align: center;">4</td>
<td style="text-align: center;">BO</td>
</tr>
<tr class="even">
<td style="text-align: center;">5</td>
<td style="text-align: center;">5</td>
<td style="text-align: center;">BA</td>
</tr>
<tr class="odd">
<td style="text-align: center;">6</td>
<td style="text-align: center;">6</td>
<td style="text-align: center;">BE</td>
</tr>
<tr class="even">
<td style="text-align: center;">7</td>
<td style="text-align: center;">7</td>
<td style="text-align: center;">BI</td>
</tr>
<tr class="odd">
<td style="text-align: center;">8</td>
<td style="text-align: center;">8</td>
<td style="text-align: center;">KO</td>
</tr>
<tr class="even">
<td style="text-align: center;">9</td>
<td style="text-align: center;">9</td>
<td style="text-align: center;">KA</td>
</tr>
<tr class="odd">
<td style="text-align: center;">10</td>
<td style="text-align: center;">A</td>
<td style="text-align: center;">KE</td>
</tr>
<tr class="even">
<td style="text-align: center;">11</td>
<td style="text-align: center;">B</td>
<td style="text-align: center;">KI</td>
</tr>
<tr class="odd">
<td style="text-align: center;">12</td>
<td style="text-align: center;">C</td>
<td style="text-align: center;">DO</td>
</tr>
<tr class="even">
<td style="text-align: center;">13</td>
<td style="text-align: center;">D</td>
<td style="text-align: center;">DA</td>
</tr>
<tr class="odd">
<td style="text-align: center;">14</td>
<td style="text-align: center;">E</td>
<td style="text-align: center;">DE</td>
</tr>
<tr class="even">
<td style="text-align: center;">15</td>
<td style="text-align: center;">F</td>
<td style="text-align: center;">DI</td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="exemples-dutilisation" class="level2">
<h2 class="anchored" data-anchor-id="exemples-dutilisation">Exemples d’utilisation</h2>
<p>Voyons maintenant quelques exemples pour mieux comprendre ce système :</p>
<ol type="1">
<li><p>Le nombre 71 en décimal s’écrit 47 en hexadécimal, ce qui donne BOBI en bibi-binaire.</p></li>
<li><p>L’année 2018 s’écrit 7E2 en hexadécimal, soit BIDEHE en bibi-binaire.</p></li>
<li><p>Un nombre plus grand comme 584 623 705 671 s’écrit 881E49CE47 en hexadécimal, ce qui donne la phrase mélodieuse “KOKOHADEBOKADODEBOBI” en bibi-binaire.</p></li>
</ol>
<p>Le principal intérêt du bibi-binaire est de créer des noms de nombres agréables à l’oreille, dans l’esprit des jeux de mots chers à Boby Lapointe. Il permet également de représenter de grands nombres de manière plus concise que le système décimal.</p>
<p>Cependant, malgré son originalité, ce système reste peu pratique pour une utilisation quotidienne. Il demeure néanmoins un bel exemple de la créativité mathématique de Boby Lapointe, mêlant rigueur et fantaisie.</p>
<section id="bonus-la-playlist-boby-lapointe" class="level3">
<h3 class="anchored" data-anchor-id="bonus-la-playlist-boby-lapointe">Bonus : la playlist Boby Lapointe</h3>
<iframe width="560" height="315" src="https://www.youtube.com/embed/jjD9WzW6dK4?si=afNs9IqkhWi-3VYh" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">
</iframe>
</section>
<section id="pour-aller-plus-loin" class="level3">
<h3 class="anchored" data-anchor-id="pour-aller-plus-loin">Pour aller plus loin :</h3>
<ul>
<li><a href="https://www.radiofrance.fr/francemusique/boby-lapointe-du-jeu-de-mots-a-l-equation-mathematique-9184903" target="_blank">Article sur le site de France Musique accompagnant la vidéo mentionnée ici</a></li>
<li><a href="https://fr.vikidia.org/wiki/Syst%C3%A8me_bibi-binaire" target="_blank">https://fr.vikidia.org/wiki/Syst%C3%A8me_bibi-binaire</a></li>
<li><a href="https://graner.name/nicolas/nombres/bibibinaire.php" target="_blank">https://graner.name/nicolas/nombres/bibibinaire.php</a></li>
<li><a href="https://pi.ac3j.fr/boby-lapointe/" target="_blank">https://pi.ac3j.fr/boby-lapointe/</a></li>
</ul>


</section>
</section>

 ]]></description>
  <category>Informatique</category>
  <category>Histoire</category>
  <category>Mathématiques</category>
  <category>Vidéothèque</category>
  <guid>https://mathsinfolycee.fr/posts/bobylapointe/</guid>
  <pubDate>Mon, 30 Sep 2024 22:00:00 GMT</pubDate>
  <media:content url="https://mathsinfolycee.fr/posts/bobylapointe/Table_de_correspondance_entre_le_Bibinaire_et_les_autres_notations.svg.png" medium="image" type="image/png" height="23" width="144"/>
</item>
</channel>
</rss>
