La fonction dlog☘
Attention
Cette page n'est pour le moment pas une priorité. Travaillez là uniquement si vous en avez le temps, c'est à dire si le reste est travaillé et su. Nous reviendrons dessus plus tard dans l'année lorsque nous en aurons besoin.
On définit une fonction sur les entiers > 0.
Note
Ceux qui suivront la spécialité mathématiques en terminale découvriront la fonction "plus générale" logarithme.
Définition
Tout entier naturel n (non nul) est compris entre deux puissances de 10: 10^k \leqslant n < 10^{k+1}.
Le nombre k sera appelé dlog(n).
Remarque
dlog(n) + 1 est le nombre de chiffres de l'écriture décimale de n.
Par exemple: 100 \leqslant 122 < 1000, donc dlog(122) = 2. Et le nombre de chiffres de 122 est 3.
Exercice 1☘
Donner les valeurs de dlog(99), dlog(100), dlog(1000), dlog(101), dlog(1).
Solution
- 10 \leqslant 99 < 10^2 donc dlog(99) = 1.
- 10^2 \leqslant 100 < 10^3 donc dlog(100) = 2.
- 10^2 \leqslant 101 < 10^3 donc dlog(101) = 2.
- 10^3 \leqslant 1000 < 10^4 donc dlog(100) = 3.
- 10^0 \leqslant 1 < 10^1 donc dlog(1) = 0.
Exercice 2☘
Proposer un corps possible pour la fonction python suivante:
def dlog(n):
"""
n -- entier naturel non nul
renvoie dlog(n)
"""
une solution
def Dlog(n):
"""
n -- entier naturel non nul
renvoie dlog(n)
"""
k = 0
while 10**k <= n:
k += 1
return k-1
Proposer maintenant une solution qui n'utilise pas **
pour calculer les puissances de 10 (cet exercice des calculs
des puissances successives sans utiliser **
a déjà
été fait précédemment, vous devriez donc savoir le traiter).
Un code possible
def dlog(n):
"""
n -- entier naturel non nul
renvoie dlog(n)
"""
k = 0
p = 1 # contiendra les puissances de 10 successives
while p <= n:
k += 1
p *= 10
return k-1