Professional Documents
Culture Documents
Complexité Serie 6 Correction
Complexité Serie 6 Correction
28 Mars 2023
Réponse :
1
Quand on arrive au bout des deux nombres (donc du premier
nombre, qui est au moins aussi long que le deuxième), on a ter-
miné, et la réponse est le contenu sur T3 (1 étape)
On obtient donc les complexités suivantes :
Pour le temps, les retenues ne peuvent pas rallonger de plus que 2n,
car la longueur du premier nombre est au plus n, donc aller-retour,
2n (et on ne peut pas faire de retenue plusieurs fois sur les mêmes
chiffres). On obtient donc T(n) = 4n + 1 (”n” pour la copie, ”n”
pour la somme, et au pire ”2n” pour les retenues, et ”1” pour la
confirmation d’avoir fini).
Et en espace, on a le max des deux nombres, donc S(n) = n.
Donc on a les deux complexités qui sont d’ordre θ(n).
(b) On utilise la machine suivante, en se rappelant d’une astuce : un nom-
bre entier est divisible par 3 si la somme de ses chiffres est divisible
par 3.
Pour chaque chiffre lu en entrée, on le somme sur T1. (Pour une
entrée de taille n, cela fait n sommes, et la valeur obtenue est
au maximum de longueur log10 (n). Comme une somme prend un
temps linéaire par rapport à la longueur de l’entrée (ici log10 (n)),
on a donc nlog10 (n) étapes au maximum.)
On a maintenant un nombre de longueur log10 (n) au lieu de n.
On applique le même raisonnement dessus, en construisant le
résultat sur T2 (qui prend donc log10 (n) étapes, et au maximum
2 2
log10 (n) par étape, donc log10 (n)log10 (n) en tout).
Et ainsi de suite jusqu’à atteindre une longueur d’un seul chiffre
(Pour conserver un nombre de bandes fini et fixé, on alterne
les résultats sur T1 et T2). (Ces éventuelles étapes prennent
2 3 3 4
log10 (n)log10 (n), puis log10 (n)log10 , etc... Ces valeurs sont complètement
négligeables par rapport à nlog10 (n).
Si ce chiffre est 9, 6 ou 3, on accepte, sinon on refuse (1 étape).
On obtient donc T (n) = θ(nlog10 (n)) étapes en temps, et S(n) =
θ(log10 (n)) en espace (La première somme est la plus grande, de taille
log10 (n) + 1, plus une case vide pour vérifier qu’on soit au bout, on
arrive à log10 (n) + 2. Soit de l’ordre de log10 (n)).
2. Soit L1 un langage fini non vide. Les langages définis par les propriétés
suivantes sont-ils récursifs ? récursivement énumérables ? Aucun des deux
?
(a) L ∩ L1 ̸= ∅
(b) L ∪ L1 ̸= Σ∗
Réponse :
Il s’agit donc d’appliquer les théorèmes de Rice :
2
(a) L ∩ L1 ̸= ∅.
Clairement, LP ∈ / R car P n’est pas triviale (L1 respecte la propriété,
L1 ne la respecte pas).
LP ∈ RE car les trois propriétés sont respectées :
Si l’intersection de L avec L1 est non vide, alors n’importe quel L′ ⊇ L
aura aussi une intersection non vide.
Si L est infini et que son intersection avec L1 est non vide, alors il
suffit d’enlever un mot de L qui n’est pas dans L1 pour avoir un L’
qui a toujours la même intersection non vide avec L1 .
Et les langages finis respectant cette propriété sont dénombrables (on
peut aisément construire leur intersection avec L1 qui est fini).
(b) L ∪ L1 ̸= Σ∗ .
Clairement, LP ∈/ R car P n’est pas triviale (L1 respecte la propriété,
L1 ne la respecte pas).
LP ∈/ RE car la première propriété n’est pas respectée (Exemple :
L = L1 , L′ = Σ∗ ).