Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 611 minIntermédiaire

Logarithme en base 2 : bits, dichotomie et complexité

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • calculer un logarithme en base 2 ou 10 avec ln ou la calculatrice ;
  • trouver le nombre de bits nécessaires pour coder n valeurs ;
  • compter les étapes d'une recherche dichotomique et comparer des complexités ;
  • calculer l'entropie d'un mot de passe et convertir des dBm.

5 exercices corrigés1 schéma

Le logarithme en base 2, noté log₂, répond à la question « à quelle puissance faut-il élever 2 pour obtenir x ? » : log₂ 8 = 3, car 2³ = 8. En informatique, il donne le nombre de bits qu'il faut pour coder n valeurs, le nombre d'étapes d'une recherche dichotomique, l'ordre de grandeur des algorithmes rapides et l'entropie d'un mot de passe. Il se calcule avec ln : log₂ x = ln x / ln 2.

Logarithme de base a et exponentielle de base a

Le logarithme népérien est le logarithme de base e : ln x est la puissance à laquelle il faut élever e pour obtenir x. On définit de la même façon un logarithme pour toute base a > 0 différente de 1.

Deux bases servent tous les jours :

  • la base 10, le logarithme décimal, noté log ou log₁₀ : log 1 000 = 3, log 0,001 = −3. Il compte les chiffres d'un nombre et mesure les décibels ;
  • la base 2, le logarithme binaire, noté log₂ ou lb : log₂ 1 024 = 10, log₂ 0,25 = −2. Il compte les bits.

Dans l'autre sens, l'exponentielle de base a s'écrit avec e : aˣ = e^(x ln a), puisque ln(aˣ) = x ln a. Ainsi 2ˣ = e^(x ln 2) ≈ e^(0,693x). Sa dérivée vaut ln a × aˣ.

Où le calculerLogarithme en base 2Logarithme décimal
À la mainln x / ln 2ln x / ln 10, ou la touche log
TI-83 Premium CE Edition Pythontouche math, ligne A : baseLOG( (logBASE( en anglais)touche log
Casio Graph 90+Emenu Exe-Mat, F4 (MATH) puis F2 (logab)touche log
Pythonmath.log2(x)math.log10(x)

Un repère à connaître : 2¹⁰ = 1 024 ≈ 10³. Donc log₂ 1 000 ≈ 10, log₂(10⁶) ≈ 20, log₂(10⁹) ≈ 30. Les valeurs exactes sont 9,97, 19,93 et 29,90.

Combien de bits pour coder n valeurs ?

Avec k bits, on écrit 2ᵏ valeurs différentes (cours d'arithmétique). Pour coder n valeurs distinctes, il faut le plus petit k tel que 2ᵏ ≥ n, c'est-à-dire k ≥ log₂ n.

BesoinCalculBits
Une lettre parmi 26log₂ 26 ≈ 4,705
Un identifiant parmi 1 000log₂ 1 000 ≈ 9,9710
Un identifiant parmi 5 000 salariéslog₂ 5 000 ≈ 12,2913
Un numéro de VLAN (4 096 valeurs, de 0 à 4 095)log₂ 4 096 = 1212, la taille du champ VLAN ID de la norme 802.1Q
Écrire 1 000 en binaire⌊9,97⌋ + 110 bits : 1111101000
Écrire 1 024 en binaire⌊10⌋ + 111 bits : 10000000000

En réseau, la même question se pose pour un sous-réseau : pour 500 hôtes, il faut k bits d'hôte avec 2ᵏ − 2 ≥ 500 (on retire l'adresse du réseau et celle de diffusion). 2⁸ − 2 = 254 ne suffit pas, 2⁹ − 2 = 510 suffit : 9 bits d'hôte, donc un masque en /23 (32 − 9).

En Python, n.bit_length() donne directement le nombre de bits d'un entier : (1000).bit_length() renvoie 10.

La recherche dichotomique

La recherche dichotomique cherche une valeur dans un tableau trié en comparant à l'élément du milieu, puis en jetant la moitié qui ne peut pas la contenir (cours d'algorithmique). À chaque comparaison, la zone de recherche est divisée par 2 : il reste n/2, puis n/4, puis n/2ᵏ éléments après k comparaisons. La recherche s'arrête quand il ne reste plus rien, c'est-à-dire après environ log₂ n étapes.

Taille du tableauRecherche séquentielle (pire cas)Recherche dichotomique (pire cas)
884
1 0001 00010
10 00010 00014
1 000 0001 000 00020
2 000 0002 000 00021

Les index des bases de données reposent sur la même idée, avec une base plus grande. MySQL range ses index dans des arbres B+ où chaque page contient des centaines de clés (index SQL). Avec environ 500 clés par page, le nombre de niveaux à lire pour 3 millions de lignes est de l'ordre de log₅₀₀(3 000 000) = ln(3 000 000) / ln 500 ≈ 2,4 : trois lectures de pages suffisent.

La complexité des algorithmes

La complexité d'un algorithme dit comment son nombre d'opérations grandit avec la taille n des données (la notation O). Le logarithme y occupe une place à part : il grandit, mais si lentement qu'un algorithme en O(log n) reste quasi instantané quelle que soit la taille.

nlog₂ nnn log₂ nn²
1 000≈ 101 000≈ 10 0001 000 000
1 000 000≈ 201 000 000≈ 20 000 00010¹²
nopérations48121616324864log₂ nnn log₂ nn²2ⁿ
Plus la courbe monte vite, plus l'algorithme devient lent quand les données grossissent

Le chapitre 7 donne la version mathématique de ce classement : à l'infini, toute puissance de n l'emporte sur le logarithme, et l'exponentielle l'emporte sur toute puissance.

L'entropie d'un mot de passe

La robustesse d'un mot de passe tiré au hasard se mesure par son entropie, en bits : si chacun de ses L caractères est choisi au hasard parmi N symboles, il y a N^L mots de passe possibles, et l'entropie vaut :

text
H = log₂(N^L) = L × log₂ N    bits

Chaque bit d'entropie double le nombre d'essais nécessaires à une attaque par force brute ; dix bits de plus le multiplient par 2¹⁰ ≈ 1 000.

  • 12 caractères parmi 62 (minuscules, majuscules, chiffres) : H = 12 × log₂ 62 ≈ 12 × 5,954 ≈ 71,5 bits.
  • Combien de caractères parmi 62 pour atteindre 80 bits ? L × 5,954 ≥ 80, soit L ≥ 13,44 : 14 caractères.
  • Une phrase de passe dont chaque mot est tiré au hasard dans une liste de 7 776 mots : chaque mot apporte log₂ 7 776 ≈ 12,92 bits.

Les recommandations de la CNIL fixent des seuils d'entropie selon les protections en place ; elles sont détaillées dans le cours de cybersécurité. Le même logarithme règle le facteur de coût de bcrypt : un coût c correspond à 2ᶜ itérations, donc passer d'un coût 10 à un coût 12 multiplie le temps de calcul d'une empreinte par 2² = 4 (politique de mots de passe).

Les décibels et le dBm du Wi-Fi

Le logarithme décimal mesure les rapports de puissance en décibels (dB). Une puissance P exprimée en dBm se compare à 1 milliwatt :

text
P en dBm = 10 × log₁₀(P / 1 mW)        et, dans l'autre sens,        P = 10^(dBm / 10) mW
  • 1 mW = 0 dBm, 100 mW = 20 dBm, 0,001 mW = −30 dBm.
  • Un signal Wi-Fi de −67 dBm, la valeur souvent visée pour la voix et la visioconférence (le Wi-Fi d'entreprise), vaut 10^(−6,7) mW ≈ 2 × 10⁻⁷ mW : deux dixièmes de nanowatt.
  • +3 dB ≈ puissance × 2 (car 10 log₁₀ 2 ≈ 3,01) et +10 dB = puissance × 10.
  • Un signal à −79 dBm est 12 dB sous −67 dBm : il est 10^1,2 ≈ 16 fois plus faible.

Grâce au logarithme, une échelle qui va du milliwatt (0 dBm) au picowatt (−90 dBm, soit 10⁻⁹ mW) tient entre 0 et −90 : c'est pour ça que les outils d'étude de site Wi-Fi l'utilisent.

Exercices

Exercice 1 sur 5 Calculer des logarithmes Réussi À revoir

Donne la valeur exacte quand c'est possible, sinon une valeur approchée au centième.

  1. log₂ 64
  2. log₂ 0,25
  3. log₂ 1 000
  4. log₁₀ 0,001
  5. log₂ 3 en fonction de ln 2 et ln 3
Voir la réponseMasquer la réponse de l'exercice 1
  1. 2⁶ = 64, donc 6.
  2. 0,25 = 1/4 = 2⁻², donc −2.
  3. ln 1 000 / ln 2 ≈ 9,97.
  4. 0,001 = 10⁻³, donc −3.
  5. ln 3 / ln 2 ≈ 1,58.

Tu avais trouvé ?

Exercice 2 sur 5 Des bits pour des identifiants Réussi À revoir

  1. Un badge d'accès code le numéro d'un salarié en binaire. Combien de bits faut-il au minimum pour 5 000 salariés ?
  2. Combien de salariés au plus peut-on coder sur 16 bits, si le numéro 0 est réservé ?
  3. Combien de bits faut-il pour écrire 2 026 en binaire ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. log₂ 5 000 ≈ 12,29, donc 13 bits : 2¹² = 4 096 ne suffit pas, 2¹³ = 8 192 suffit.
  2. 2¹⁶ = 65 536 valeurs, de 0 à 65 535 ; sans le 0, 65 535 salariés.
  3. log₂ 2 026 ≈ 10,98, donc ⌊10,98⌋ + 1 = 11 bits (2¹⁰ = 1 024 ≤ 2 026 < 2 048 = 2¹¹).

Tu avais trouvé ?

Exercice 3 sur 5 Dichotomie dans une grande table Réussi À revoir

Une table de 2 000 000 de clients est triée par numéro.

  1. Combien de comparaisons fait au plus une recherche dichotomique ?
  2. Et une recherche séquentielle ?
  3. La table passe à 8 000 000 de clients. Combien de comparaisons de plus pour la dichotomie ?
Voir la réponseMasquer la réponse de l'exercice 3
  1. log₂ 2 000 000 ≈ 20,93, donc ⌊20,93⌋ + 1 = 21 comparaisons.
  2. 2 000 000 dans le pire cas (la valeur est la dernière, ou absente).
  3. 8 000 000 = 4 × 2 000 000 = 2² × 2 000 000 : la taille a doublé deux fois, il faut 2 comparaisons de plus, soit 23. Vérification : log₂ 8 000 000 ≈ 22,93.

Tu avais trouvé ?

Exercice 4 sur 5 Une phrase de passe Réussi À revoir

On construit une phrase de passe en tirant des mots au hasard dans une liste de 7 776 mots.

  1. Quelle est l'entropie apportée par un mot ?
  2. Combien de mots faut-il au minimum pour dépasser 80 bits ?
  3. Quelle est alors l'entropie de la phrase ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. log₂ 7 776 ≈ 12,92 bits.
  2. n × 12,92 ≥ 80 donne n ≥ 6,19 : 7 mots. Avec 6 mots, on n'aurait que 6 × 12,92 ≈ 77,5 bits.
  3. 7 × 12,925 ≈ 90,5 bits.

Tu avais trouvé ?

Exercice 5 sur 5 Signal Wi-Fi Réussi À revoir

  1. Convertis −70 dBm en milliwatts.
  2. Un poste mesure −60 dBm près de la borne et −75 dBm au fond d'un entrepôt. Combien de fois le signal est-il plus faible au fond ?
  3. Une borne émet à 50 mW. Combien cela fait-il en dBm ?
Voir la réponseMasquer la réponse de l'exercice 5
  1. P = 10^(−70/10) = 10⁻⁷ mW, soit 0,1 nanowatt.
  2. L'écart est de 15 dB : 10^1,5 ≈ 31,6 fois plus faible.
  3. 10 × log₁₀ 50 ≈ 10 × 1,699 ≈ 17 dBm.

Tu avais trouvé ?

Chapitre terminé !

Fais les 5 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Limites de fonctions et asymptotesRevoir le sommaire du cours