<?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ₙ) est définie par uₙ = 1/n + 1. Que<br/>
contient la liste [1 / (n + 1) for n in range(4)] ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>[expression for n in range(p)] 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="0" format="html">
    <text><![CDATA[<p>La somme u₀ + u₁ + u₂ + u₃</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 sum.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les termes u₀ à u₄</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(4) produit quatre valeurs, de 0 à 3. Le<br/>
terme u₄ n'est pas calculé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Les termes u₁, u₂, u₃ et u₄</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(4) commence à 0, donc le premier terme est<br/>
u₀ = 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Les termes u₀, u₁, u₂ et u₃</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : n prend les valeurs 0 à 3, soit 1,<br/>
0{,}5, 0{,}333\ldots et 0{,}25.</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/>
[(a, b) for a in range(1, 4) for b in range(1, 3)] ?</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="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>9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(1, 3) ne produit que 1 et 2, soit deux<br/>
valeurs pour b.</p>]]></text>
    </feedback>
  </answer>
  <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 × 2 = 6 couples du produit cartésien.</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>
</question>

<question type="multichoice">
  <name>
    <text>Algorithmique et programmation — Q03 : Filtrer une liste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie f([3, -1, 4, -5, 2]) ?</p>
<p>`<code>python<br/>
def f(L):<br/>
    R = []<br/>
    for x in L:<br/>
        if x &gt; 0:<br/>
            R.append(x)<br/>
    return R<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On obtient la même liste en compréhension :<br/>
[x for x in L if x &gt; 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="0" format="html">
    <text><![CDATA[<p>[-1, -5]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition x &gt; 0 retient les éléments positifs, pas<br/>
les négatifs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[2, 3, 4]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la liste R n'est pas triée ; l'ordre de L est<br/>
conservé.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[3, 4, 2]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la fonction parcourt L et recopie dans R les<br/>
éléments strictement positifs, dans l'ordre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</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>
</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 U contient les premiers termes d'une suite. Que teste la<br/>
fonction suivante ?</p>
<p>`<code>python<br/>
def test(U):<br/>
    for i in range(len(U) - 1):<br/>
        if U[i + 1] &lt; U[i]:<br/>
            return False<br/>
    return True<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'indice i s'arrête à len(U) - 2 pour que U[i + 1] 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="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 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="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 False dès qu'un terme est<br/>
plus petit que le précédent, True sinon.</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/>
False. 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 L après ces instructions ?</p>
<p>`<code>python<br/>
L = [2, 4, 6, 8]<br/>
L.insert(1, 3)<br/>
del L[3]<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L.insert(i, x) place x à l'indice i en décalant la suite ;<br/>
del L[i] supprime l'élément d'indice i.</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, 3, 4, 8]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : après l'insertion de 3 à l'indice 1, la<br/>
liste est [2, 3, 4, 6, 8] ; 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>[2, 3, 6, 8]</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>[3, 2, 4, 6]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : L.insert(1, 3) place la valeur 3 à l'indice 1,<br/>
juste après le premier élément.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[2, 3, 4, 6]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : del L[3] supprime l'élément d'indice 3, pas le<br/>
dernier.</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 ; 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>
  <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{,}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>
</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) × f(b) &lt; 0.<br/>
Quelle ligne compléter ?</p>
<p>`<code>python<br/>
def dicho(a, b, e):<br/>
    while b - a &gt; e:<br/>
        m = (a + b) / 2<br/>
        if f(a) * f(m) &lt;= 0:<br/>
            b = m<br/>
        else:<br/>
            ...<br/>
    return a, b<br/>
</code>`</p>]]></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>a = m</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>b = a</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>m = a</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : modifier m 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>a = b</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⁻³ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>On cherche le plus petit n tel que 2ⁿ ≥ 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/>
1/2ⁿ ; 2⁹ = 512 ne suffit pas, 2¹⁰ = 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⁻³ 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 : 1/2⁹ = 1/512, qui est encore<br/>
supérieur à 10⁻³.</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² - 3 s'écrit<br/>
xₙ₊₁ = xₙ - xₙ² - 3/2xₙ. Avec x₀ = 2, que vaut<br/>
x₁ ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La méthode de Newton remplace xₙ par l'abscisse du point où la<br/>
tangente en xₙ 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/>
f(x₀)/f'(x₀), 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₀ = 4, pas 2.</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 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, 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 le milieu 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>
  <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 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>
</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) ≈ 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ₖ₊₁ = yₖ + h(ayₖ + 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="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>
  <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="100" format="html">
    <text><![CDATA[<p>1{,}2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : y'(0) = -2 × 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>
</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 euler(n) renvoie une valeur<br/>
approchée de y(1), où y' = y et y(0) = 1, avec n pas de<br/>
longueur 1/n ?</p>
<p>`<code>python<br/>
def euler(n):<br/>
    h = 1 / n<br/>
    y = 1<br/>
    for k in range(n):<br/>
        ...<br/>
    return y<br/>
</code>`</p>]]></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="0" format="html">
    <text><![CDATA[<p>y = y + h</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : cette ligne correspond à y' = 1. On obtiendrait 2,<br/>
la valeur en 1 de x ↦ 1 + x.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>y = h * y</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>y = y * (1 + k)</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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>y = y + h * y</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ici y' = y, donc chaque pas ajoute h × y.<br/>
On obtient (1 + 1/n)ⁿ, proche de e.</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="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="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>⅓</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 rect(0, 1, 100) pour une fonction f continue sur<br/>
[0 ; 1] ?</p>
<p>`<code>python<br/>
def rect(a, b, n):<br/>
    h = (b - a) / n<br/>
    s = 0<br/>
    for k in range(n):<br/>
        s = s + h <em> f(a + k </em> h)<br/>
    return s<br/>
</code>`</p>]]></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 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 h : on<br/>
additionne des aires, pas des hauteurs.</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>
</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 × f(0) + f(2)/2 = 2 × 3.</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>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>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 random est importé. La fonction f est continue sur<br/>
[0 ; 1] et vérifie 0 ≤ f(x) ≤ 1. Que renvoie<br/>
mc(100000), environ ?</p>
<p>`<code>python<br/>
def mc(n):<br/>
    c = 0<br/>
    for i in range(n):<br/>
        x = random.random()<br/>
        y = random.random()<br/>
        if y &lt;= f(x):<br/>
            c = c + 1<br/>
    return c / n<br/>
</code>`</p>]]></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="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>
  <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 y &gt; f(x).</p>]]></text>
    </feedback>
  </answer>
  <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>
</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 et u_{n+1} = 0{,}5\,u_n + 3<br/>
converge vers 6. Que renvoie la fonction suivante ?</p>
<p>`<code>python<br/>
def rang():<br/>
    u = 0<br/>
    n = 0<br/>
    while 6 - u &gt; 0.01:<br/>
        u = 0.5 * u + 3<br/>
        n = n + 1<br/>
    return n<br/>
</code>`</p>]]></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="0" format="html">
    <text><![CDATA[<p>Le terme uₙ le plus proche de 6</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction renvoie le compteur n, pas le terme u.</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 n, un rang, et non une valeur de<br/>
la suite.</p>]]></text>
    </feedback>
  </answer>
  <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>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 comb(n, k) 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="0" format="html">
    <text><![CDATA[<p>comb(n, k) <em> p </em> k <em> (1 - p) </em> (n - k)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <em> est la multiplication. La puissance s'écrit </em>*.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>comb(n, k) <em> p </em><em> k </em> (1 - p) ** (n - k)</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>p *<em> k </em> (1 - p) ** (n - k)</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>comb(n, k) <em> p </em><em> k </em> (1 - p) ** k</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>
</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 pbin(n, p, k) renvoie P(X = k) pour<br/>
X \sim \mathcal{B}(n, p). Que calcule la fonction suivante ?</p>
<p>`<code>python<br/>
def f(n, p, k):<br/>
    s = 0<br/>
    for i in range(k + 1):<br/>
        s = s + pbin(n, p, i)<br/>
    return s<br/>
</code>`</p>]]></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 ≤ 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 : range(k + 1) 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 = 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>P(X ≥ 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>
</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 F(j) renvoie P(X ≤ j). Que renvoie la fonction<br/>
suivante, pour \alpha = 0{,}05 ?</p>
<p>`<code>python<br/>
def seuil(alpha):<br/>
    k = 0<br/>
    while 1 - F(k) &gt; alpha:<br/>
        k = k + 1<br/>
    return k<br/>
</code>`</p>]]></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 à α.</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="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="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 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>
  <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>
</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 ≤ X ≤ b) = P(X ≤ b) - P(X ≤ a - 1) pour une<br/>
variable à valeurs entières. On obtient ainsi un intervalle I tel<br/>
que P(X ∈ I) ≥ 1 - α, 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 ≤ X ≤ 60) = P(X ≤ 60) - P(X ≤ 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(40 ≤ X ≤ 60) ≈ 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>
  <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 ≤ 39), on retire aussi la<br/>
valeur 39 ; l'intervalle commence à 40.</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 random est importé. Que renvoie ech(50, 0.3) ?</p>
<p>`<code>python<br/>
def ech(n, p):<br/>
    L = []<br/>
    for i in range(n):<br/>
        if random.random() &lt; p:<br/>
            L.append(1)<br/>
        else:<br/>
            L.append(0)<br/>
    return L<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>sum(ech(n, p)) simule une variable de loi \mathcal{B}(n, p) et<br/>
sum(ech(n, p)) / n 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="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 sum.</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>
  <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/>
random.random() avec p.</p>]]></text>
    </feedback>
  </answer>
  <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>
</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 σ 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/>
σ²/n, donc pour écart type<br/>
\dfrac{\sigma}{\sqrt{n}}.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>σ√n</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : σ√n est l'écart type de la <strong>somme</strong> des<br/>
n valeurs, pas de leur moyenne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>σ/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 √n.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>σ²/n</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : σ²/n est la variance de la moyenne.<br/>
L'écart type en est la racine carrée.</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 random 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/>
marche(10) ?</p>
<p>`<code>python<br/>
def marche(n):<br/>
    x = 0<br/>
    for i in range(n):<br/>
        if random.random() &lt; 0.5:<br/>
            x = x + 1<br/>
        else:<br/>
            x = x - 1<br/>
    return x<br/>
</code>`</p>]]></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="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="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 : x part de 0 et change de ± 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>Le nombre de pas vers la droite</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les pas vers la gauche diminuent x, 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é ½ à 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>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>
  <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>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) = 20/64 contre<br/>
P(X = 0) = 1/64.</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(|Sₙ - np| ≥ √n) ≤ 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ₙ) = np(1 - p) et l'écart vaut √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 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 √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>
  <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>
</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 π 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="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>
  <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 √100 = 10.</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 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 √100.</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 s(4) ?</p>
<p>`<code>python<br/>
def s(n):<br/>
    t = 0<br/>
    for k in range(1, n + 1):<br/>
        t = t + (-1) ** (k + 1) / k<br/>
    return t<br/>
</code>`</p>]]></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 - ½ + ⅓ - ¼</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour k impair, (-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 + ½ - ⅓ + ¼</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : pour k = 1, (-1)ᵏ⁺¹ = (-1)² = 1 ; le premier<br/>
terme est positif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1 - ½ + ⅓</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(1, n + 1) va jusqu'à k = 4 ; le terme<br/>
-¼ est ajouté.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1 + ½ + ⅓ + ¼</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le facteur (-1)ᵏ⁺¹ alterne les signes des termes.</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) = √x + 2. Vers quelle valeur les nombres<br/>
renvoyés par iter(n) se rapprochent-ils quand n grandit ?</p>
<p>`<code>python<br/>
def iter(n):<br/>
    u = 0<br/>
    for k in range(n):<br/>
        u = (u + 2) ** 0.5<br/>
    return u<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour uₙ₊₁ = f(uₙ) 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="0" format="html">
    <text><![CDATA[<p>√2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : √2 est seulement u₁. Les termes suivants<br/>
continuent de croître.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>+∞</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>
  <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>-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>
</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 R contient 10 000 résultats simulés d'une variable<br/>
aléatoire X. Que fournit sum(R) / len(R) ?</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 print([k**2 for k in range(1, 5)]) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>[expression for k in range(a, b)] construit la liste des valeurs<br/>
de l'expression pour k de a à b - 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="0" format="html">
    <text><![CDATA[<p>[1, 4, 9, 16, 25]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la borne 5 est exclue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[1, 4, 9, 16]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : range(1, 5) donne 1, 2, 3, 4, dont on<br/>
prend les carrés.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[2, 4, 6, 8]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : k**2 est le carré, pas le double.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[0, 1, 4, 9, 16]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(1, 5) commence à 1, pas à 0.</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, sum([1/k for k in range(1, 4)]) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>sum 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="0" format="html">
    <text><![CDATA[<p>0.83, soit ½ + ⅓</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>2.08, soit 1 + ½ + ⅓ + ¼</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(1, 4) s'arrête à 3.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>1.83, soit 1 + ½ + ⅓</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>6, 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 L = [3, -1, 4, -2, 5], que vaut len([x for x in L if x &gt; 0]) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Filtrer par compréhension puis compter avec len : 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="0" format="html">
    <text><![CDATA[<p>[3, 4, 5], la liste filtrée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la liste filtrée ; len en renvoie la longueur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>3, 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/>
len compte ces trois éléments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>12, la somme des éléments positifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : len compte, il n'additionne pas ; sum donnerait<br/>
12.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>5, la longueur de L sans filtre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le filtre if x &gt; 0 écarte les deux négatifs.</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/>
`<code>python<br/>
u = 1<br/>
L = [u]<br/>
for k in range(3):<br/>
    u = 2 * u + 1<br/>
    L.append(u)<br/>
print(L)<br/>
</code>`</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 append.</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="0" format="html">
    <text><![CDATA[<p>[3, 7, 15, 31]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : u₀ est rangé dans la liste avant la boucle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[1, 3, 7]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(3) ajoute trois termes après u₀, soit<br/>
quatre éléments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[1, 2, 4, 8]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la relation est 2u + 1, pas 2u.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[1, 3, 7, 15]</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la liste contient u₀ = 1, puis les trois<br/>
termes suivants calculés par uₙ₊₁ = 2uₙ + 1.</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 L = [4, 9, 2, 9], que vaut L.index(max(L)) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>max donne la valeur, index 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="0" format="html">
    <text><![CDATA[<p>3, l'indice de la dernière occurrence</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : index s'arrête à la première occurrence trouvée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>9, la valeur du maximum</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : index renvoie une position, pas une valeur.</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 : index accepte les répétitions ; il renvoie la<br/>
première position.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>1, l'indice de la première occurrence de 9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : max(L) vaut 9 et index renvoie la<br/>
position de sa <strong>première</strong> occurrence.</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/>
`<code>python<br/>
L = [5, 2, 8]<br/>
M = sorted(L)<br/>
print(L, M)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>sorted(L) renvoie une copie triée ; L.sort() trie la liste<br/>
elle-même et renvoie None.</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="0" format="html">
    <text><![CDATA[<p>Une erreur, sorted s'appliquant seulement aux nombres triés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sorted accepte toute liste de nombres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>[5, 2, 8] [2, 5, 8], sorted renvoyant une copie triée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sorted(L) construit une nouvelle liste triée<br/>
et laisse L intacte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[5, 2, 8] None, le tri ne renvoyant rien</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : L.sort() renvoie None, mais sorted(L) renvoie<br/>
la liste triée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>[2, 5, 8] [2, 5, 8], les deux listes triées</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est L.sort() qui trie L sur place.</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 L = [3, 1, 4, 1, 5], que vaut sum(L[i] for i in range(0, len(L), 2)) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le troisième argument de range 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="0" format="html">
    <text><![CDATA[<p>6, la somme des indices pairs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : on additionne L[i], pas i.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2, 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="100" format="html">
    <text><![CDATA[<p>12, la somme des éléments d'indices 0, 2 et 4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : range(0, 5, 2) 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>14, 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>
</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 len([(i, j) for i in range(4) for j in range(4) if i &lt; j]) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une double compréhension avec i &lt; j é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="0" format="html">
    <text><![CDATA[<p>16, le nombre total de couples</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la condition if i &lt; j n'en garde qu'une partie.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>6, 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>4, une valeur par i</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque i se combine avec plusieurs j.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>12, les couples d'éléments distincts</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : i &lt; j élimine aussi les couples avec i &gt; j, pas<br/>
seulement i = j.</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/>
`<code>python<br/>
L = [-3, -1, 2, 5, -2]<br/>
c = 0<br/>
for i in range(len(L) - 1):<br/>
    if L[i] * L[i + 1] &lt; 0:<br/>
        c = c + 1<br/>
print(c)<br/>
</code>`</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="0" format="html">
    <text><![CDATA[<p>3, 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="100" format="html">
    <text><![CDATA[<p>2, 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>4, 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>1, 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/>
`<code>python<br/>
y = 1<br/>
h = 0.5<br/>
for i in range(2):<br/>
    y = y + h * y<br/>
print(y)<br/>
</code>`</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>2.25, soit 1{,}5^2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque pas multiplie y par 1 + h = 1{,}5 ;<br/>
deux pas donnent 1{,}5^2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1.5, un seul pas</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : range(2) fait deux tours.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2.0, 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>2.718…, 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/>
`<code>python<br/>
s = 0<br/>
n = 0<br/>
while 2 - s &gt; 0.01:<br/>
    s = s + 0.5 ** n<br/>
    n = n + 1<br/>
print(n)<br/>
</code>`</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="0" format="html">
    <text><![CDATA[<p>7, 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="100" format="html">
    <text><![CDATA[<p>8, 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 ≥ 7.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>100, 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2, 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>
</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 binom(10, 0.5) ?<br/>
``python<br/>
from random import random</p>
<p>def binom(n, p):<br/>
    s = 0<br/>
    for i in range(n):<br/>
        if random() &lt; p:<br/>
            s = s + 1<br/>
    return s<br/>
``</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="0" format="html">
    <text><![CDATA[<p>10, le nombre d'épreuves</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : s ne compte que les tours où random() &lt; p.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un flottant entre 0 et 1, la fréquence des succès</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la fonction renvoie s, pas s / n.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un entier entre 0 et 10, 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 ; s 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 5, 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>
</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 ; math.comb(n, k) 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="0" format="html">
    <text><![CDATA[<p>720, donné par factorial(6)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 6! compte les ordres de six objets distincts.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>15, donné par comb(6, 2)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : \binom{6}{2} = 15 chemins, calculé par<br/>
comb du module math.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>12, donné par 6 * 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le produit 6 × 2 ne compte aucun chemin.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>30, donné par 6 * 5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 6 × 5 compte deux fois chaque chemin, l'ordre<br/>
des deux succès n'important pas.</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/>
``python<br/>
from math import comb</p>
<p>def p(n, k, q):<br/>
    return comb(n, k) <em> q </em><em> k </em> (1 - q) ** (n - k)</p>
<p>s = 0<br/>
for k in range(3):<br/>
    s = s + p(10, k, 0.2)<br/>
print(1 - s)<br/>
``</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>P(X ≥ k) se calcule par 1 - P(X ≤ 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 ≤ 2) ; le complément est<br/>
P(X ≥ 3).</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 : range(3) 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 \leq 2) \approx 0{,}678</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est la valeur de s, pas de 1 - s.</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/>
``python<br/>
from random import random</p>
<p>def frequence(n, p):<br/>
    c = 0<br/>
    for i in range(n):<br/>
        if random() &lt; p:<br/>
            c = c + 1<br/>
    return c / n</p>
<p>nb = 0<br/>
for j in range(1000):<br/>
    if abs(frequence(100, 0.5) - 0.5) &gt; 0.1:<br/>
        nb = nb + 1<br/>
print(nb / 1000)<br/>
``</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 à 0.1, 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>0.0, 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 0.95, 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Un nombre proche de 0.5, 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>
</question>

</quiz>
