Dresser la table de à trois variables
Exercice d'entraînement · niveau 2 · NSI (première), chapitre 2 — Flottants, booléens et textes · Court-circuit, tables et équivalences
Énoncé
Dresser la table de à trois variables. Montrer qu'elle vaut exactement quand le nombre de parmi , , est impair. À quoi cela sert-il ?
Corrigé
Huit lignes (), écrites dans l'ordre du comptage binaire pour n'en oublier aucune :
| nombre de | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 (pair) |
| 0 | 0 | 1 | 1 | 1 (impair) |
| 0 | 1 | 0 | 1 | 1 (impair) |
| 0 | 1 | 1 | 0 | 2 (pair) |
| 1 | 0 | 0 | 1 | 1 (impair) |
| 1 | 0 | 1 | 0 | 2 (pair) |
| 1 | 1 | 0 | 0 | 2 (pair) |
| 1 | 1 | 1 | 1 | 3 (impair) |
La quatrième colonne vaut exactement sur les lignes où la cinquième est impaire.
Pourquoi. Le ou exclusif est l'addition modulo : est le reste de dans la division par , c'est-à-dire la parité du nombre de . Le raisonnement vaut pour un nombre quelconque de variables.
À quoi cela sert. C'est le bit de parité, le contrôle d'erreur le plus simple qui existe : on ajoute à un octet transmis un neuvième bit égal au XOR des huit autres. À la réception, on recalcule ; si la parité ne colle plus, un bit a été altéré. Un seul bit de plus, et toute erreur simple est détectée.
Sa limite, à connaître : deux erreurs se compensent et passent inaperçues. Détecter n'est d'ailleurs pas corriger — c'est l'affaire des codes correcteurs, hors programme.
Contrôle : a ^ b ^ c == (a + b + c) % 2 est vrai sur les huit lignes.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.