<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de maths/Terminale spécialité/Algorithmique et programmation</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Listes (génération, manipulation, parcours) et algorithmes du<br/>
programme : dichotomie, méthodes de Newton et de la sécante, méthode<br/>
d'Euler, méthodes des rectangles et des trapèzes, Monte-Carlo, seuil<br/>
d'une loi binomiale et surréservation, simulation d'échantillons,<br/>
marche aléatoire, planche de Galton.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q01 : Les termes d'une suite en compréhension</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La suite $(u_n)$ est définie par $u_n = \dfrac{1}{n + 1}$. Que<br/>
contient la liste <code>[1 / (n + 1) for n in range(4)]</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>[expression for n in range(p)]</code> fournit la liste des termes<br/>
d'indices $0$ à $p - 1$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Les termes $u_0$, $u_1$, $u_2$ et $u_3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>n</code> prend les valeurs $0$ à $3$, soit $1$,<br/>
$0{,}5$, $0{,}333\ldots$ et $0{,}25$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les termes $u_1$, $u_2$, $u_3$ et $u_4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(4)</code> commence à $0$, donc le premier terme est<br/>
$u_0 = 1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les termes $u_0$ à $u_4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(4)</code> produit quatre valeurs, de $0$ à $3$. Le<br/>
terme $u_4$ n'est pas calculé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La somme $u_0 + u_1 + u_2 + u_3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une liste en compréhension range chaque valeur<br/>
séparément. La somme s'obtiendrait avec <code>sum</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q02 : Lister des couples</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Combien d'éléments contient la liste<br/>
<code>[(a, b) for a in range(1, 4) for b in range(1, 3)]</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Deux boucles dans une compréhension parcourent le produit cartésien<br/>
$\{1, 2, 3\} \times \{1, 2\}$ : c'est le principe multiplicatif.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $a$ prend $3$ valeurs et $b$ en prend $2$ ; la<br/>
liste contient les $3 \times 2 = 6$ couples du produit cartésien.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les deux choix se combinent. On multiplie les nombres<br/>
de valeurs, on ne les additionne pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$12$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les bornes de droite sont exclues : $a$ va de $1$ à<br/>
$3$ et $b$ de $1$ à $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(1, 3)</code> ne produit que $1$ et $2$, soit deux<br/>
valeurs pour $b$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q03 : Filtrer une liste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie <code>f([3, -1, 4, -5, 2])</code> ?</p>
<pre><code>def f(L):
    R = []
    for x in L:
        if x &gt; 0:
            R.append(x)
    return R</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On obtient la même liste en compréhension :<br/>
<code>[x for x in L if x &gt; 0]</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>[3, 4, 2]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la fonction parcourt <code>L</code> et recopie dans <code>R</code> les<br/>
éléments strictement positifs, dans l'ordre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[-1, -5]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition <code>x &gt; 0</code> retient les éléments positifs, pas<br/>
les négatifs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $3$ est le nombre d'éléments retenus. La fonction<br/>
renvoie la liste elle-même.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[2, 3, 4]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la liste <code>R</code> n'est pas triée ; l'ordre de <code>L</code> est<br/>
conservé.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q04 : Tester la monotonie sur une liste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La liste <code>U</code> contient les premiers termes d'une suite. Que teste la<br/>
fonction suivante ?</p>
<pre><code>def test(U):
    for i in range(len(U) - 1):
        if U[i + 1] &lt; U[i]:
            return False
    return True</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'indice <code>i</code> s'arrête à <code>len(U) - 2</code> pour que <code>U[i + 1]</code> existe. Un<br/>
test sur quelques termes permet de conjecturer, pas de démontrer.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Si la liste est rangée par ordre croissant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la fonction renvoie <code>False</code> dès qu'un terme est<br/>
plus petit que le précédent, <code>True</code> sinon.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Si la suite est croissante pour tout entier $n$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seuls les termes de la liste sont examinés. Le résultat<br/>
ne démontre rien sur les termes suivants.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Si la liste contient un terme négatif</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque terme est comparé à son voisin, pas à $0$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Si la suite est décroissante sur la liste</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un terme plus petit que son prédécesseur fait renvoyer<br/>
<code>False</code>. La fonction reconnaît l'ordre croissant.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q05 : Insérer et supprimer</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que contient <code>L</code> après ces instructions ?</p>
<pre><code>L = [2, 4, 6, 8]
L.insert(1, 3)
del L[3]</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>L.insert(i, x)</code> place <code>x</code> à l'indice <code>i</code> en décalant la suite ;<br/>
<code>del L[i]</code> supprime l'élément d'indice <code>i</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>[2, 3, 4, 8]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : après l'insertion de $3$ à l'indice $1$, la<br/>
liste est <code>[2, 3, 4, 6, 8]</code> ; l'élément d'indice $3$ est $6$,<br/>
que l'on supprime.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[2, 3, 4, 6]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>del L[3]</code> supprime l'élément d'indice $3$, pas le<br/>
dernier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[2, 3, 6, 8]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les indices ont été lus sur la liste de départ. Après<br/>
l'insertion, les éléments suivants sont décalés d'un rang.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[3, 2, 4, 6]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>L.insert(1, 3)</code> place la valeur $3$ à l'indice $1$,<br/>
juste après le premier élément.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q06 : Le principe de la dichotomie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La fonction $f$ est continue et strictement croissante sur<br/>
$[1\,;\,2]$, avec $f(1) &lt; 0 &lt; f(2)$ et $f(1{,}5) &gt; 0$. Dans quel<br/>
intervalle la dichotomie poursuit-elle la recherche de la solution<br/>
de $f(x) = 0$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Dichotomie : on calcule l'image du milieu et l'on garde la moitié<br/>
aux bornes de laquelle $f$ prend des valeurs de signes contraires.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$[1\,;\,1{,}5]$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $f$ change de signe entre $1$ et $1{,}5$, donc la<br/>
solution s'y trouve d'après le théorème des valeurs<br/>
intermédiaires.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$[1{,}5\,;\,2]$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $f(1{,}5)$ et $f(2)$ sont tous deux positifs, $f$ ne<br/>
s'annule pas entre ces deux valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$[1{,}25\,;\,1{,}75]$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la dichotomie garde toujours une des deux moitiés de<br/>
l'intervalle, celle où $f$ change de signe.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$[1\,;\,2]$, sans changement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le calcul de $f(1{,}5)$ sert justement à diviser la<br/>
longueur de l'intervalle par deux.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q07 : Compléter une dichotomie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La fonction $f$ est continue sur $[a\,;\,b]$ et $f(a) \times f(b) &lt; 0$.<br/>
Quelle ligne compléter ?</p>
<pre><code>def dicho(a, b, e):
    while b - a &gt; e:
        m = (a + b) / 2
        if f(a) * f(m) &lt;= 0:
            b = m
        else:
            ...
    return a, b</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>À chaque tour, la longueur $b - a$ est divisée par $2$ ; la boucle<br/>
s'arrête quand elle ne dépasse plus la précision $e$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>a = m</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : si $f(a)$ et $f(m)$ ont le même signe, le<br/>
changement de signe a lieu entre $m$ et $b$ : on remplace $a$<br/>
par $m$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>b = a</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'intervalle serait réduit à un point, sans garantie<br/>
qu'il contienne la solution.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>m = a</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : modifier <code>m</code> ne change pas l'intervalle, et la boucle<br/>
ne se termine jamais.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>a = b</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la boucle s'arrêterait avec un intervalle de longueur<br/>
nulle, placé à la mauvaise extrémité.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q08 : Nombre d'étapes d'une dichotomie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On part de l'intervalle $[0\,;\,1]$. Combien d'étapes de dichotomie<br/>
faut-il au minimum pour obtenir un intervalle de longueur inférieure<br/>
ou égale à $10^{-3}$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On cherche le plus petit $n$ tel que $2^n \geq 1\,000$, soit<br/>
$n \geq \dfrac{\ln 1\,000}{\ln 2} \approx 9{,}97$, d'où $n = 10$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$10$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : après $n$ étapes, la longueur vaut<br/>
$\dfrac{1}{2^n}$ ; $2^9 = 512$ ne suffit pas, $2^{10} = 1\,024$<br/>
suffit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque étape divise la longueur par $2$, pas par $10$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1\,000$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la longueur ne diminue pas de $10^{-3}$ par étape, elle<br/>
est divisée par $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $\dfrac{1}{2^9} = \dfrac{1}{512}$, qui est encore<br/>
supérieur à $10^{-3}$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q09 : Une étape de Newton pour racine de trois</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La méthode de Newton pour $f(x) = x^2 - 3$ s'écrit<br/>
$x_{n+1} = x_n - \dfrac{x_n^2 - 3}{2x_n}$. Avec $x_0 = 2$, que vaut<br/>
$x_1$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La méthode de Newton remplace $x_n$ par l'abscisse du point où la<br/>
tangente en $x_n$ coupe l'axe des abscisses. La convergence est<br/>
très rapide dans les cas favorables.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$1{,}75$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $x_1 = 2 - \dfrac{4 - 3}{4} = 2 - 0{,}25$.<br/>
C'est déjà une bonne approximation de $\sqrt{3} \approx 1{,}732$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$2{,}25$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de signe : on retranche le quotient<br/>
$\dfrac{f(x_0)}{f'(x_0)}$, on ne l'ajoute pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1{,}5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le dénominateur est $2x_0 = 4$, pas $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\sqrt{3}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $\sqrt{3}$ est la limite de la suite. Une étape n'en<br/>
donne qu'une valeur approchée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q10 : La méthode de la sécante</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La méthode de la sécante approche une solution de $f(x) = 0$ à<br/>
partir de deux valeurs $a$ et $b$. Par quoi remplace-t-elle la<br/>
tangente de la méthode de Newton ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La pente de la sécante, $\dfrac{f(b) - f(a)}{b - a}$, remplace le<br/>
nombre dérivé : c'est une méthode de Newton sans dérivée.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Par la droite passant par $(a\,;\,f(a))$ et $(b\,;\,f(b))$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : on prend l'abscisse du point où cette droite<br/>
coupe l'axe des abscisses, sans avoir besoin de la dérivée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Par la tangente au milieu de $[a\,;\,b]$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une tangente demande encore le calcul de la dérivée,<br/>
que la sécante permet d'éviter.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Par l'axe des abscisses, sans utiliser la courbe</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'axe des abscisses ne dépend pas de $f$, il ne peut<br/>
donc pas localiser une solution.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Par le milieu $\dfrac{a + b}{2}$, comme en dichotomie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la dichotomie. La sécante tient compte des<br/>
valeurs $f(a)$ et $f(b)$, pas seulement des bornes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q11 : Un pas de la méthode d'Euler</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La fonction $y$ vérifie $y' = -2y + 4$ et $y(0) = 1$. La méthode<br/>
d'Euler de pas $h = 0{,}1$ utilise $y(x + h) \approx y(x) + h\,y'(x)$.<br/>
Quelle valeur approchée de $y(0{,}1)$ donne-t-elle ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode d'Euler pour $y' = ay + b$ :<br/>
$y_{k+1} = y_k + h(ay_k + b)$. On calcule ainsi, pas à pas, une<br/>
approximation de la solution.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$1{,}2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $y'(0) = -2 \times 1 + 4 = 2$, donc<br/>
$y(0{,}1) \approx 1 + 0{,}1 \times 2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1{,}4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le second membre $4$ a été ajouté sans le terme<br/>
$-2y(0)$ : on a pris $y'(0) = 4$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'accroissement $y'(0) = 2$ doit être multiplié par le<br/>
pas $h = 0{,}1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}8$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur de signe : $y'(0) = 2$ est positif, donc $y$ augmente sur<br/>
ce premier pas.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q12 : Programmer la méthode d'Euler</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle ligne compléter pour que <code>euler(n)</code> renvoie une valeur<br/>
approchée de $y(1)$, où $y' = y$ et $y(0) = 1$, avec $n$ pas de<br/>
longueur $\dfrac{1}{n}$ ?</p>
<pre><code>def euler(n):
    h = 1 / n
    y = 1
    for k in range(n):
        ...
    return y</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Plus $n$ est grand, plus l'approximation de $y(1) = e$ est précise :<br/>
$n = 1\,000$ donne environ $2{,}717$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>y = y + h * y</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ici $y' = y$, donc chaque pas ajoute $h \times y$.<br/>
On obtient $\left(1 + \dfrac{1}{n}\right)^n$, proche de $e$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>y = y + h</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette ligne correspond à $y' = 1$. On obtiendrait $2$,<br/>
la valeur en $1$ de $x \mapsto 1 + x$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>y = h * y</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on doit ajouter l'accroissement $h\,y$ à la valeur<br/>
actuelle, pas la remplacer par cet accroissement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>y = y * (1 + k)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le pas $h$ n'intervient plus. On calculerait une<br/>
factorielle, sans rapport avec l'équation.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q13 : La méthode des rectangles</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On approche $\displaystyle\int_0^1 x^2\,dx$ par la somme des aires de<br/>
$4$ rectangles de largeur $0{,}25$, dont la hauteur est l'image de la<br/>
borne <strong>gauche</strong> de chaque intervalle. Quelle valeur obtient-on ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La fonction carré étant croissante sur $[0\,;\,1]$, les rectangles à<br/>
gauche donnent une valeur par défaut et ceux à droite une valeur<br/>
par excès : $0{,}21875 \leq \dfrac{1}{3} \leq 0{,}46875$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$0{,}21875$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse :<br/>
$0{,}25 \times (0 + 0{,}0625 + 0{,}25 + 0{,}5625) = 0{,}21875$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}46875$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce sont les bornes <strong>droites</strong>, $0{,}25$, $0{,}5$,<br/>
$0{,}75$ et $1$, qui ont été utilisées.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$0{,}875$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la somme des hauteurs n'a pas été multipliée par la<br/>
largeur $0{,}25$ des rectangles.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\dfrac{1}{3}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la valeur exacte de l'intégrale. La méthode des<br/>
rectangles en donne une approximation.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q14 : Programmer la méthode des rectangles</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que calcule <code>rect(0, 1, 100)</code> pour une fonction <code>f</code> continue sur<br/>
$[0\,;\,1]$ ?</p>
<pre><code>def rect(a, b, n):
    h = (b - a) / n
    s = 0
    for k in range(n):
        s = s + h * f(a + k * h)
    return s</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Quand $n$ augmente, la somme des aires des rectangles se rapproche de<br/>
l'intégrale. Les méthodes des milieux et des trapèzes convergent plus<br/>
vite.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une valeur approchée de $\displaystyle\int_0^1 f(x)\,dx$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la fonction additionne les aires de $100$<br/>
rectangles de largeur $h = 0{,}01$, de hauteur l'image de la<br/>
borne gauche.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La valeur exacte de $\displaystyle\int_0^1 f(x)\,dx$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une somme de rectangles ne donne qu'une approximation,<br/>
sauf cas particulier comme une fonction constante.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La valeur moyenne des images $f(0)$ et $f(1)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction utilise les images de $100$ points de<br/>
l'intervalle, pas seulement celles des bornes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La somme des images $f(0)$, $f(0{,}01)$, …, $f(0{,}99)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque image est multipliée par la largeur <code>h</code> : on<br/>
additionne des aires, pas des hauteurs.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q15 : La méthode des trapèzes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On approche $\displaystyle\int_0^2 f(x)\,dx$ par un seul trapèze, de<br/>
sommets $(0\,;\,0)$, $(2\,;\,0)$, $(2\,;\,f(2))$ et $(0\,;\,f(0))$.<br/>
Avec $f(0) = 1$ et $f(2) = 5$, quelle valeur obtient-on ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode des trapèzes sur $[a\,;\,b]$ :<br/>
$\displaystyle\int_a^b f \approx (b - a) \dfrac{f(a) + f(b)}{2}$,<br/>
appliquée sur chaque petit intervalle d'une subdivision.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'aire du trapèze vaut<br/>
$2 \times \dfrac{f(0) + f(2)}{2} = 2 \times 3$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $3$ est la hauteur moyenne. Il faut la multiplier par la<br/>
largeur $2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$10$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'aire du rectangle de hauteur $f(2)$, qui<br/>
majore le trapèze.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$12$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la somme des deux bases est divisée par $2$ dans la<br/>
formule du trapèze.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q16 : Une intégrale par Monte-Carlo</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le module <code>random</code> est importé. La fonction $f$ est continue sur<br/>
$[0\,;\,1]$ et vérifie $0 \leq f(x) \leq 1$. Que renvoie<br/>
<code>mc(100000)</code>, environ ?</p>
<pre><code>def mc(n):
    c = 0
    for i in range(n):
        x = random.random()
        y = random.random()
        if y &lt;= f(x):
            c = c + 1
    return c / n</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Méthode de Monte-Carlo : l'aire du carré unité vaut $1$, donc la<br/>
proportion de points sous la courbe estime directement l'intégrale.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$\displaystyle\int_0^1 f(x)\,dx$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la fréquence des points du carré unité situés sous<br/>
la courbe approche l'aire sous la courbe, qui est l'intégrale.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$f(0{,}5)$, la valeur au milieu</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les abscisses sont tirées au hasard dans tout<br/>
l'intervalle, pas seulement au milieu.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1 - \displaystyle\int_0^1 f(x)\,dx$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait la fréquence des points <strong>au-dessus</strong> de la<br/>
courbe, avec la condition <code>y &gt; f(x)</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le maximum de $f$ sur $[0\,;\,1]$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction compte des points, elle ne cherche aucun<br/>
maximum.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q17 : Seuil pour une suite convergente</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La suite définie par $u_0 = 0$ et $u_{n+1} = 0{,}5\,u_n + 3$<br/>
converge vers $6$. Que renvoie la fonction suivante ?</p>
<pre><code>def rang():
    u = 0
    n = 0
    while 6 - u &gt; 0.01:
        u = 0.5 * u + 3
        n = n + 1
    return n</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On a $6 - u_n = 6 \times 0{,}5^n$ ; $6 \times 0{,}5^9 \approx 0{,}0117$<br/>
et $6 \times 0{,}5^{10} \approx 0{,}0059$, donc la fonction renvoie<br/>
$10$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le premier rang où $6 - u_n \leq 0{,}01$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ici $6 - u_n = 6 \times 0{,}5^n$, et la boucle<br/>
s'arrête dès que cet écart ne dépasse plus $0{,}01$ : $n = 10$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La limite de la suite, arrondie au centième</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction renvoie <code>n</code>, un rang, et non une valeur de<br/>
la suite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le terme $u_n$ le plus proche de $6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction renvoie le compteur <code>n</code>, pas le terme <code>u</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Rien, car la suite n'atteint jamais $6$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la boucle ne demande pas d'atteindre $6$, seulement de<br/>
s'en approcher à moins de $0{,}01$, ce qui arrive.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q18 : Calculer une probabilité binomiale</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On dispose d'une fonction <code>comb(n, k)</code> qui renvoie<br/>
$\dbinom{n}{k}$. Quelle expression Python calcule $P(X = k)$ lorsque<br/>
$X$ suit la loi binomiale $\mathcal{B}(n, p)$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une liste de $n$ issues avec $k$ succès a pour probabilité<br/>
$p^k(1 - p)^{n - k}$, et il y a $\dbinom{n}{k}$ telles listes.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>comb(n, k) <em> p </em><em> k </em> (1 - p) ** (n - k)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $P(X = k) = \dbinom{n}{k} p^k (1 - p)^{n - k}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>comb(n, k) <em> p </em><em> k </em> (1 - p) ** k</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'exposant de $1 - p$ est le nombre d'échecs, $n - k$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>p *<em> k </em> (1 - p) ** (n - k)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la probabilité d'<strong>une</strong> liste d'issues. Il faut<br/>
multiplier par le nombre de listes à $k$ succès, $\dbinom{n}{k}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>comb(n, k) <em> p </em> k <em> (1 - p) </em> (n - k)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code><em></code> est la multiplication. La puissance s'écrit <code></em>*</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q19 : Probabilité cumulée par une boucle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La fonction <code>pbin(n, p, k)</code> renvoie $P(X = k)$ pour<br/>
$X \sim \mathcal{B}(n, p)$. Que calcule la fonction suivante ?</p>
<pre><code>def f(n, p, k):
    s = 0
    for i in range(k + 1):
        s = s + pbin(n, p, i)
    return s</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Probabilité cumulée : $P(X \leq k) = \sum_{i = 0}^{k} P(X = i)$. Les<br/>
calculatrices la fournissent directement.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$P(X \leq k)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle additionne $P(X = i)$ pour $i$ allant<br/>
de $0$ à $k$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(X &lt; k)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(k + 1)</code> va jusqu'à $k$ inclus, donc $P(X = k)$<br/>
est ajoutée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(X \geq k)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les valeurs additionnées vont de $0$ à $k$, ce sont les<br/>
petites valeurs de $X$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(X = k)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $P(X = k)$ n'est qu'un des termes de la somme calculée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q20 : Le problème de la surréservation</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une compagnie vend $n$ billets pour un avion de $k$ places ; le<br/>
nombre $X$ de passagers qui se présentent suit une loi binomiale.<br/>
La fonction <code>F(j)</code> renvoie $P(X \leq j)$. Que renvoie la fonction<br/>
suivante, pour $\alpha = 0{,}05$ ?</p>
<pre><code>def seuil(alpha):
    k = 0
    while 1 - F(k) &gt; alpha:
        k = k + 1
    return k</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avec $k$ places, le risque de refuser un passager est<br/>
$P(X &gt; k)$ ; la compagnie choisit le plus petit nombre de places<br/>
qui rend ce risque inférieur à $\alpha$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Le plus petit $k$ tel que $P(X &gt; k) \leq 0{,}05$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $1 - F(k) = P(X &gt; k)$. La boucle s'arrête au<br/>
premier $k$ pour lequel ce risque ne dépasse plus $0{,}05$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le plus grand $k$ tel que $P(X &gt; k) \leq 0{,}05$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $k$ augmente à partir de $0$ et la boucle s'arrête dès<br/>
que la condition est remplie : c'est le plus petit $k$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le plus petit $k$ tel que $P(X \leq k) \leq 0{,}05$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $1 - F(k)$ est la probabilité de l'événement contraire,<br/>
$P(X &gt; k)$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nombre moyen de passagers qui se présentent</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la moyenne est l'espérance $np$. La fonction cherche un<br/>
seuil de risque.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q21 : Un intervalle de forte probabilité</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour $X \sim \mathcal{B}(100\,;\,0{,}5)$, on lit à la calculatrice<br/>
$P(X \leq 39) \approx 0{,}018$ et $P(X \leq 60) \approx 0{,}982$. Que<br/>
peut-on affirmer ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>$P(a \leq X \leq b) = P(X \leq b) - P(X \leq a - 1)$ pour une<br/>
variable à valeurs entières. On obtient ainsi un intervalle $I$ tel<br/>
que $P(X \in I) \geq 1 - \alpha$, ici avec $\alpha \approx 0{,}04$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$P(40 \leq X \leq 60) \approx 0{,}964$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $P(40 \leq X \leq 60) = P(X \leq 60) - P(X \leq<br/>
39)$, soit environ $0{,}982 - 0{,}018$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(40 \leq X \leq 60) \approx 0{,}982$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il faut retirer les valeurs inférieures à $40$, de<br/>
probabilité $0{,}018$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(39 \leq X \leq 60) \approx 0{,}964$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : en retranchant $P(X \leq 39)$, on retire aussi la<br/>
valeur $39$ ; l'intervalle commence à $40$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(40 \leq X \leq 60) \approx 1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les valeurs hors de $[40\,;\,60]$ ne sont pas<br/>
impossibles : leur probabilité totale est d'environ $0{,}036$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q22 : Simuler un échantillon</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le module <code>random</code> est importé. Que renvoie <code>ech(50, 0.3)</code> ?</p>
<pre><code>def ech(n, p):
    L = []
    for i in range(n):
        if random.random() &lt; p:
            L.append(1)
        else:
            L.append(0)
    return L</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>sum(ech(n, p))</code> simule une variable de loi $\mathcal{B}(n, p)$ et<br/>
<code>sum(ech(n, p)) / n</code> une fréquence observée.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une liste de $50$ valeurs égales à $0$ ou $1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque élément vaut $1$ avec probabilité $0{,}3$<br/>
et $0$ sinon ; c'est un échantillon de taille $50$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nombre de succès en $50$ épreuves</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction renvoie la liste des résultats. Le nombre<br/>
de succès s'obtiendrait avec <code>sum</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une liste de $50$ nombres compris entre $0$ et $0{,}3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les éléments valent $1$ ou $0$ selon la comparaison de<br/>
<code>random.random()</code> avec $p$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une liste contenant exactement $15$ fois le nombre $1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $15$ est le nombre moyen de succès. Le nombre obtenu<br/>
varie d'une simulation à l'autre.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q23 : Dispersion des moyennes simulées</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On simule un grand nombre d'échantillons de taille $n$ d'une<br/>
variable d'écart type $\sigma$ et l'on calcule l'écart type $s$ des<br/>
moyennes obtenues. Autour de quelle valeur $s$ se situe-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La simulation confirme le résultat du cours : pour quadrupler la<br/>
précision de la moyenne, il faut un échantillon seize fois plus<br/>
grand.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$\dfrac{\sigma}{\sqrt{n}}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la moyenne d'un échantillon a pour variance<br/>
$\dfrac{\sigma^2}{n}$, donc pour écart type<br/>
$\dfrac{\sigma}{\sqrt{n}}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\dfrac{\sigma^2}{n}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $\dfrac{\sigma^2}{n}$ est la variance de la moyenne.<br/>
L'écart type en est la racine carrée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\dfrac{\sigma}{n}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la <strong>variance</strong> qui est divisée par $n$. L'écart<br/>
type l'est par $\sqrt{n}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\sigma\sqrt{n}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $\sigma\sqrt{n}$ est l'écart type de la <strong>somme</strong> des<br/>
$n$ valeurs, pas de leur moyenne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q24 : Une marche aléatoire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Le module <code>random</code> est importé. Un pion part de $0$ et fait $n$ pas<br/>
de $+1$ ou de $-1$ avec la même probabilité. Que renvoie<br/>
<code>marche(10)</code> ?</p>
<pre><code>def marche(n):
    x = 0
    for i in range(n):
        if random.random() &lt; 0.5:
            x = x + 1
        else:
            x = x - 1
    return x</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Si $D$ est le nombre de pas vers la droite, la position vaut<br/>
$D - (10 - D) = 2D - 10$, avec $D \sim \mathcal{B}(10\,;\,0{,}5)$.<br/>
On peut donc calculer la loi de la position.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La position du pion après $10$ pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>x</code> part de $0$ et change de $\pm 1$ à chaque pas.<br/>
Sa valeur finale est un entier pair compris entre $-10$ et $10$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Toujours $0$, les pas se compensant</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les pas ne se compensent qu'en moyenne. L'espérance de<br/>
la position vaut $0$, mais la position varie d'une simulation à<br/>
l'autre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le nombre de pas vers la droite</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les pas vers la gauche diminuent <code>x</code>, qui n'est donc<br/>
pas un simple compteur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La distance totale parcourue, égale à $10$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction renvoie une position, qui tient compte du<br/>
sens de chaque pas.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q25 : La planche de Galton</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans une planche de Galton à $6$ rangées de clous, une bille part à<br/>
droite ou à gauche avec probabilité $\dfrac{1}{2}$ à chaque clou,<br/>
de façon indépendante. Quelle loi suit le nombre $X$ de rebonds à<br/>
droite ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La case d'arrivée d'une bille est déterminée par son nombre de<br/>
rebonds à droite. La simulation de nombreuses billes fait apparaître<br/>
la forme en cloche de la loi binomiale.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La loi binomiale $\mathcal{B}\left(6\,;\,\dfrac{1}{2}\right)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $6$ épreuves de Bernoulli identiques et<br/>
indépendantes, le succès étant « aller à droite ».</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La loi uniforme sur $\{0, 1, \ldots, 6\}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les cases du milieu reçoivent bien plus de billes que<br/>
les bords, $P(X = 3) = \dfrac{20}{64}$ contre<br/>
$P(X = 0) = \dfrac{1}{64}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La loi binomiale $\mathcal{B}\left(\dfrac{1}{2}\,;\,6\right)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'ordre des paramètres est inversé. On écrit d'abord le<br/>
nombre d'épreuves, puis la probabilité du succès.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une loi qui dépend de la case de départ</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : toutes les billes partent du même point, et les rebonds<br/>
suivent la même règle à chaque clou.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q26 : Comparer une fréquence observée à la borne</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Pour $S_n \sim \mathcal{B}(n\,;\,p)$, l'inégalité de<br/>
Bienaymé-Tchebychev donne<br/>
$P\left(|S_n - np| \geq \sqrt{n}\right) \leq p(1 - p)$. Avec<br/>
$p = 0{,}5$, une simulation donne une fréquence de cet événement<br/>
proche de $0{,}05$. Qu'en conclure ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Ici $V(S_n) = np(1 - p)$ et l'écart vaut $\sqrt{n}$ : la borne est<br/>
$\dfrac{np(1 - p)}{n} = p(1 - p) = 0{,}25$. L'inégalité est<br/>
universelle, donc rarement précise.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La borne $0{,}25$ est respectée, mais large</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $0{,}05 \leq 0{,}25$. L'inégalité est vraie mais<br/>
grossière, la probabilité réelle étant bien plus petite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La simulation contredit l'inégalité</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'inégalité fournit un majorant. Une probabilité plus<br/>
petite que la borne est conforme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La probabilité vaut exactement $0{,}25$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $0{,}25$ n'est qu'un majorant, et la simulation montre<br/>
que la probabilité est bien plus petite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il faut remplacer $\sqrt{n}$ par $n$ dans l'inégalité</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la simulation ne remet pas l'inégalité en cause ; elle<br/>
montre seulement que la borne est large.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q27 : Précision d'une estimation par Monte-Carlo</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Une estimation de $\pi$ par Monte-Carlo avec $n$ points donne des<br/>
résultats qui fluctuent d'une exécution à l'autre. Comment évolue<br/>
cette fluctuation quand on multiplie $n$ par $100$ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Gagner une décimale de précision demande de multiplier le nombre de<br/>
points par $100$ : la méthode de Monte-Carlo converge lentement.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Elle est environ divisée par $10$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : l'écart type d'une fréquence est proportionnel à<br/>
$\dfrac{1}{\sqrt{n}}$, et $\sqrt{100} = 10$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle est environ divisée par $100$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la variance qui est divisée par $100$. L'écart<br/>
type l'est par $\sqrt{100}$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle disparaît complètement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : tant que la simulation utilise le hasard, le résultat<br/>
fluctue, même pour un très grand $n$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Elle ne change pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : d'après la loi des grands nombres, la fréquence se<br/>
concentre autour de sa probabilité quand $n$ grandit.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q28 : Une somme alternée qui approche ln 2</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que calcule <code>s(4)</code> ?</p>
<pre><code>def s(n):
    t = 0
    for k in range(1, n + 1):
        t = t + (-1) ** (k + 1) / k
    return t</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Ces sommes se rapprochent de $\ln 2 \approx 0{,}693$ quand $n$<br/>
grandit, mais lentement. Brouncker a proposé une autre écriture de<br/>
$\ln 2$ qui converge plus vite.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$1 - \dfrac{1}{2} + \dfrac{1}{3} - \dfrac{1}{4}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour $k$ impair, $(-1)^{k+1} = 1$ ; pour $k$<br/>
pair, il vaut $-1$. On obtient $\dfrac{7}{12} \approx 0{,}58$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1 + \dfrac{1}{2} + \dfrac{1}{3} + \dfrac{1}{4}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le facteur $(-1)^{k+1}$ alterne les signes des termes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$-1 + \dfrac{1}{2} - \dfrac{1}{3} + \dfrac{1}{4}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour $k = 1$, $(-1)^{k+1} = (-1)^2 = 1$ ; le premier<br/>
terme est positif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$1 - \dfrac{1}{2} + \dfrac{1}{3}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(1, n + 1)</code> va jusqu'à $k = 4$ ; le terme<br/>
$-\dfrac{1}{4}$ est ajouté.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q29 : Itérer une fonction continue</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On pose $f(x) = \sqrt{x + 2}$. Vers quelle valeur les nombres<br/>
renvoyés par <code>iter(n)</code> se rapprochent-ils quand $n$ grandit ?</p>
<pre><code>def iter(n):
    u = 0
    for k in range(n):
        u = (u + 2) ** 0.5
    return u</code></pre>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour $u_{n+1} = f(u_n)$ avec $f$ continue, une limite finie $\ell$<br/>
vérifie $f(\ell) = \ell$. On obtient les valeurs $0$, $1{,}414$,<br/>
$1{,}848$, $1{,}962$, …</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $f$ est continue, donc la limite $\ell$ vérifie<br/>
$\ell = \sqrt{\ell + 2}$, soit $\ell^2 - \ell - 2 = 0$ avec<br/>
$\ell \geq 0$ : $\ell = 2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$\sqrt{2}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $\sqrt{2}$ est seulement $u_1$. Les termes suivants<br/>
continuent de croître.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$-1$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $-1$ est l'autre solution de $\ell^2 - \ell - 2 = 0$,<br/>
mais une racine carrée est positive.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$+\infty$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la suite est croissante mais majorée par $2$, donc<br/>
elle converge.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q30 : Moyenne d'une liste de résultats simulés</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>La liste <code>R</code> contient $10\,000$ résultats simulés d'une variable<br/>
aléatoire $X$. Que fournit <code>sum(R) / len(R)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Simuler un échantillon puis calculer sa moyenne permet d'estimer une<br/>
espérance inaccessible au calcul direct.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une estimation de $E(X)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la moyenne d'un grand échantillon se rapproche<br/>
de l'espérance, d'après la loi des grands nombres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La valeur exacte de $E(X)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la moyenne observée fluctue d'une simulation à l'autre.<br/>
Elle approche l'espérance sans l'égaler.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une estimation de la variance $V(X)$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la variance est la moyenne des carrés des écarts à la<br/>
moyenne, pas la moyenne des valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La valeur la plus fréquente de $X$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction additionne toutes les valeurs puis divise<br/>
par leur nombre : c'est une moyenne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q31 : Les carrés par une liste en compréhension</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche <code>print([k**2 for k in range(1, 5)])</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>[expression for k in range(a, b)]</code> construit la liste des valeurs<br/>
de l'expression pour <code>k</code> de <code>a</code> à <code>b - 1</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>[1, 4, 9, 16]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>range(1, 5)</code> donne $1$, $2$, $3$, $4$, dont on<br/>
prend les carrés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[0, 1, 4, 9, 16]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(1, 5)</code> commence à $1$, pas à $0$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 4, 9, 16, 25]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la borne $5$ est exclue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[2, 4, 6, 8]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>k**2</code> est le carré, pas le double.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q32 : Une somme de termes par compréhension</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut, arrondi au centième, <code>sum([1/k for k in range(1, 4)])</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>sum</code> additionne les éléments d'une liste ; combinée à une<br/>
compréhension, elle calcule une somme de termes définis par une<br/>
formule.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>1.83</code>, soit $1 + \dfrac{1}{2} + \dfrac{1}{3}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la liste contient $1$, $0{,}5$ et $0{,}333\ldots$,<br/>
de somme $1{,}833\ldots$</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2.08</code>, soit $1 + \dfrac{1}{2} + \dfrac{1}{3} + \dfrac{1}{4}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(1, 4)</code> s'arrête à $3$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>0.83</code>, soit $\dfrac{1}{2} + \dfrac{1}{3}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le terme $k = 1$, qui vaut $1$, fait partie de la<br/>
liste.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>6</code>, la somme des entiers de $1$ à $3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la liste contient les <strong>inverses</strong> des entiers.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q33 : Compter les éléments positifs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Avec <code>L = [3, -1, 4, -2, 5]</code>, que vaut <code>len([x for x in L if x &gt; 0])</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Filtrer par compréhension puis compter avec <code>len</code> : une façon<br/>
compacte de dénombrer.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>3</code>, le nombre d'éléments positifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la compréhension garde $3$, $4$ et $5$, et<br/>
<code>len</code> compte ces trois éléments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>12</code>, la somme des éléments positifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>len</code> compte, il n'additionne pas ; <code>sum</code> donnerait<br/>
$12$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code>, la longueur de <code>L</code> sans filtre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le filtre <code>if x &gt; 0</code> écarte les deux négatifs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[3, 4, 5]</code>, la liste filtrée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la liste filtrée ; <code>len</code> en renvoie la longueur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q34 : Les premiers termes d'une suite rangés dans une liste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>u = 1
L = [u]
for k in range(3):
    u = 2 * u + 1
    L.append(u)
print(L)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour conserver tous les termes d'une suite, on les ajoute un à un à<br/>
une liste avec <code>append</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>[1, 3, 7, 15]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la liste contient $u_0 = 1$, puis les trois<br/>
termes suivants calculés par $u_{n+1} = 2u_n + 1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[3, 7, 15, 31]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $u_0$ est rangé dans la liste avant la boucle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 3, 7]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(3)</code> ajoute trois termes après $u_0$, soit<br/>
quatre éléments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[1, 2, 4, 8]</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la relation est $2u + 1$, pas $2u$.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q35 : La position du maximum</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Avec <code>L = [4, 9, 2, 9]</code>, que vaut <code>L.index(max(L))</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>max</code> donne la valeur, <code>index</code> sa première position : combinés, ils<br/>
localisent le maximum.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>1</code>, l'indice de la première occurrence de $9$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>max(L)</code> vaut $9$ et <code>index</code> renvoie la<br/>
position de sa <strong>première</strong> occurrence.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>9</code>, la valeur du maximum</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>index</code> renvoie une position, pas une valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code>, l'indice de la dernière occurrence</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>index</code> s'arrête à la première occurrence trouvée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, le maximum apparaissant plusieurs fois</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>index</code> accepte les répétitions ; il renvoie la<br/>
première position.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q36 : Trier sans modifier la liste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>L = [5, 2, 8]
M = sorted(L)
print(L, M)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>sorted(L)</code> renvoie une copie triée ; <code>L.sort()</code> trie la liste<br/>
elle-même et renvoie <code>None</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>[5, 2, 8] [2, 5, 8]</code>, <code>sorted</code> renvoyant une copie triée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>sorted(L)</code> construit une nouvelle liste triée<br/>
et laisse <code>L</code> intacte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[2, 5, 8] [2, 5, 8]</code>, les deux listes triées</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est <code>L.sort()</code> qui trie <code>L</code> sur place.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>[5, 2, 8] None</code>, le tri ne renvoyant rien</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>L.sort()</code> renvoie <code>None</code>, mais <code>sorted(L)</code> renvoie<br/>
la liste triée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>sorted</code> s'appliquant seulement aux nombres triés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>sorted</code> accepte toute liste de nombres.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q37 : Somme des éléments d'indice pair</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Avec <code>L = [3, 1, 4, 1, 5]</code>, que vaut <code>sum(L[i] for i in range(0, len(L), 2))</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le troisième argument de <code>range</code> fixe le pas du parcours.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>12</code>, la somme des éléments d'indices $0$, $2$ et $4$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>range(0, 5, 2)</code> parcourt $0$, $2$ et $4$, et<br/>
la somme porte sur ces trois éléments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code>, la somme des éléments d'indices $1$ et $3$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le parcours commence à l'indice $0$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>14</code>, la somme de tous les éléments</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le pas $2$ saute un élément sur deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>6</code>, la somme des indices pairs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on additionne <code>L[i]</code>, pas <code>i</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q38 : Compter les couples ordonnés</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut <code>len([(i, j) for i in range(4) for j in range(4) if i &lt; j])</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une double compréhension avec <code>i &lt; j</code> énumère les paires, sans<br/>
ordre ni répétition.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>6</code>, le nombre de couples $(i, j)$ avec $i &lt; j$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $(0,1)$, $(0,2)$, $(0,3)$, $(1,2)$, $(1,3)$,<br/>
$(2,3)$, soit $\binom{4}{2} = 6$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>16</code>, le nombre total de couples</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition <code>if i &lt; j</code> n'en garde qu'une partie.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>12</code>, les couples d'éléments distincts</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>i &lt; j</code> élimine aussi les couples avec $i &gt; j$, pas<br/>
seulement $i = j$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4</code>, une valeur par <code>i</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque <code>i</code> se combine avec plusieurs <code>j</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q39 : Compter les changements de signe</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>L = [-3, -1, 2, 5, -2]
c = 0
for i in range(len(L) - 1):
    if L[i] * L[i + 1] &lt; 0:
        c = c + 1
print(c)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Compter les changements de signe d'une liste de valeurs d'une<br/>
fonction localise les intervalles où elle s'annule.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>2</code>, le nombre de changements de signe entre voisins</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un produit négatif signale deux voisins de<br/>
signes contraires ; cela arrive entre $-1$ et $2$, puis entre<br/>
$5$ et $-2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4</code>, le nombre de paires de voisins</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : seules les paires de signes contraires comptent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code>, le nombre de valeurs négatives</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le test porte sur un produit de voisins, pas sur le<br/>
signe d'une valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1</code>, un seul passage du négatif au positif</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le passage du positif au négatif compte aussi.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q40 : Deux pas de la méthode d'Euler</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On applique la méthode d'Euler à $y' = y$ avec $y(0) = 1$ et un<br/>
pas $h = 0{,}5$. Qu'affiche ce programme ?<br/>
<pre><code>y = 1
h = 0.5
for i in range(2):
    y = y + h * y
print(y)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour $y' = y$, un pas d'Euler multiplie la valeur par $1 + h$ ; la<br/>
méthode approche $\mathrm{e}$ quand $h$ tend vers $0$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>2.25</code>, soit $1{,}5^2$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque pas multiplie <code>y</code> par $1 + h = 1{,}5$ ;<br/>
deux pas donnent $1{,}5^2$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2.0</code>, soit $1 + 2 \times 0{,}5$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le second pas utilise la valeur $1{,}5$, pas $1$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1.5</code>, un seul pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(2)</code> fait deux tours.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2.718…</code>, la valeur exacte $\mathrm{e}$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Euler donne une valeur approchée de $y(1) =<br/>
\mathrm{e}$, ici par défaut.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q41 : Somme géométrique à un centième de sa limite</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>s = 0
n = 0
while 2 - s &gt; 0.01:
    s = s + 0.5 ** n
    n = n + 1
print(n)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La somme $1 + 0{,}5 + \ldots + 0{,}5^{n-1}$ vaut $2 - 0{,}5^{n-1}$<br/>
et converge vers $2$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>8</code>, nombre de termes pour approcher $2$ à $0{,}01$ près</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : après $n$ termes, $2 - s = 0{,}5^{n-1}$ ; il<br/>
faut $0{,}5^{n-1} \leq 0{,}01$, soit $n - 1 \geq 7$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>7</code>, le dernier rang où l'écart dépasse $0{,}01$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : avec $7$ termes l'écart vaut $0{,}5^6 \approx 0{,}016$,<br/>
la boucle continue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code>, la limite de la somme</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche le nombre de termes, pas la<br/>
limite.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>100</code>, l'inverse de la précision</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la convergence géométrique demande bien moins de<br/>
termes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q42 : Simuler une variable binomiale</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie l'appel <code>binom(10, 0.5)</code> ?<br/>
<pre><code>from random import random

def binom(n, p):
    s = 0
    for i in range(n):
        if random() &lt; p:
            s = s + 1
    return s</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une variable binomiale est une somme de variables de Bernoulli<br/>
indépendantes : la boucle les simule une à une.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un entier entre <code>0</code> et <code>10</code>, le nombre de succès simulés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque tour simule une épreuve de probabilité<br/>
$0{,}5$ ; <code>s</code> compte les succès et suit la loi binomiale de<br/>
paramètres $10$ et $0{,}5$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Toujours <code>5</code>, l'espérance de la loi</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la valeur varie d'un appel à l'autre, $5$ n'est que<br/>
la moyenne attendue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un flottant entre <code>0</code> et <code>1</code>, la fréquence des succès</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction renvoie <code>s</code>, pas <code>s / n</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>10</code>, le nombre d'épreuves</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>s</code> ne compte que les tours où <code>random() &lt; p</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q43 : Compter les chemins de l'arbre avec comb</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Dans un schéma de Bernoulli à $6$ épreuves, combien de chemins<br/>
comportent exactement $2$ succès ? Quelle instruction le calcule ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le coefficient binomial $\binom{n}{k}$ compte les chemins à $k$<br/>
succès ; <code>math.comb(n, k)</code> le calcule.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>15</code>, donné par <code>comb(6, 2)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : $\binom{6}{2} = 15$ chemins, calculé par<br/>
<code>comb</code> du module <code>math</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>30</code>, donné par <code>6 * 5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $6 \times 5$ compte deux fois chaque chemin, l'ordre<br/>
des deux succès n'important pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>12</code>, donné par <code>6 * 2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le produit $6 \times 2$ ne compte aucun chemin.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>720</code>, donné par <code>factorial(6)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : $6!$ compte les ordres de six objets distincts.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q44 : Un « au moins » par l'événement contraire</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>$X$ suit la loi binomiale de paramètres $10$ et $0{,}2$. Que<br/>
calcule ce programme ?<br/>
<pre><code>from math import comb

def p(n, k, q):
    return comb(n, k) * q ** k * (1 - q) ** (n - k)

s = 0
for k in range(3):
    s = s + p(10, k, 0.2)
print(1 - s)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>$P(X \geq k)$ se calcule par $1 - P(X \leq k - 1)$, la somme<br/>
portant sur $k$ termes.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>$P(X \geq 3) \approx 0{,}322$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la boucle somme $P(X = 0)$, $P(X = 1)$ et<br/>
$P(X = 2)$, soit $P(X \leq 2)$ ; le complément est<br/>
$P(X \geq 3)$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(X \leq 2) \approx 0{,}678$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la valeur de <code>s</code>, pas de <code>1 - s</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(X &gt; 3) \approx 0{,}121$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>range(3)</code> s'arrête à $k = 2$, donc $k = 3$ fait<br/>
partie du complément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>$P(X = 3) \approx 0{,}201$</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme somme plusieurs probabilités avant de<br/>
passer au complément.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q45 : Part des échantillons hors de l'intervalle</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>from random import random

def frequence(n, p):
    c = 0
    for i in range(n):
        if random() &lt; p:
            c = c + 1
    return c / n

nb = 0
for j in range(1000):
    if abs(frequence(100, 0.5) - 0.5) &gt; 0.1:
        nb = nb + 1
print(nb / 1000)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La proportion d'échantillons dont la fréquence s'écarte de $p$ de<br/>
plus de $\frac{1}{\sqrt{n}}$ est faible, de l'ordre de $5\ \%$.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un nombre inférieur à <code>0.1</code>, une petite minorité d'échantillons</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour $n = 100$, $\frac{1}{\sqrt{n}} = 0{,}1$ ;<br/>
la fréquence sort de $[0{,}4 ; 0{,}6]$ dans environ $5\ \%$<br/>
des échantillons.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un nombre proche de <code>0.5</code>, la moitié des échantillons</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la plupart des fréquences restent à moins de<br/>
$\frac{1}{\sqrt{n}}$ de $p$.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>0.0</code>, la fréquence restant toujours dans l'intervalle</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'intervalle n'est pas une certitude, quelques<br/>
échantillons en sortent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un nombre proche de <code>0.95</code>, la plupart des échantillons</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme compte les échantillons qui sortent de<br/>
l'intervalle, pas ceux qui y restent.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
