Nombres espacés
Pour construire la représentation graphique d'une fonction définie sur un intervalle de type \([a ; b[\) (\(a\) est inclus, \(b\) est exclu), on calcule les images de plusieurs antécédents régulièrement espacés, ce qui permet de placer des points à relier. Encore faut-il disposer des antécédents. Comment les choisir ?
Exemples
Pour une fonction définie sur \([2; 4[\), avec des points régulièrement espacés par pas de \(0,5\), on prend \(2\,;\,2,5\,;\,3\,;\,3,5\).
Pour une fonction définie sur \([5; 6,5[\), avec des points régulièrement espacés par pas de \(0,25\), on prend \(5\,;\, 5,25\,;\, 5,5\,;\, 5,75\,;\, 6\,;\, 6,25\).
Pour cet exercice, on souhaite surtout qu'aucun nombre de la liste ne soit trop proche de \(b\). On veillera donc à ce que tout nombre soit inférieur à \(b - \varepsilon\) où \(\varepsilon\) sera la constante EPS = 10**(-6).
Écrire une fonction qui prend en paramètres les nombres flottants a, b et pas (pas est strictement positif) et telle que arange(a, b, pas) renvoie une liste de flottants qui vérifie :
-
les nombres sont tous strictement inférieurs à
b - EPS; -
le premier, s'il existe, est
a; - les nombres sont rangés dans l'ordre croissant ;
- l'écart entre deux nombres consécutifs est
pas.
Erreur relative
On rappelle qu'on ne fait pas de tests d'égalité entre flottants.
La validation de cet exercice autorise des nombres avec une erreur relative de \(10^{-6}\). En contrepartie, aucun nombre supérieur à b - EPS ne sera accepté dans la réponse.
Concrètement, si vous deviez faire le test \(x < b\) alors vous devrez écrire x < b - EPS.
Exemples
>>> arange(2.0, 4.0, 0.5)
[2.0, 2.5, 3.0, 3.5]
>>> arange(5.0, 6.5, 0.25)
[5.0, 5.25, 5.5, 5.75, 6.0, 6.25]
>>> arange(2.0, 2.0, 0.1)
[]
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)