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\)\(\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)
[]
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.128013s3_8ufv»Iy n7aS1me(P24C:tw«i][çh*)6o;bcdg/0lqp.rL,=+k95Rxé050O0s0z0o0C0S0b0l0N0S0o0b0b0Z010z0C0U010406050b0f0r0r0o0W0k040p0K0S0f0~0K0m0l020o0r0U0L0l0(0s180W0T0f0s0b050Q1517191b130U041z1G051J0Q1J1L1G130O0C0h0?0^0`0|0G0C0P0G0S1Z0G0z11050.0M0S0s1U0_0{011Y1!1$1!0z1,1.1*0z0M0K0O1b1+0W1H0z0G0?1e0b0U0o0m0|0v011:1W010g0:0s0m1m0s1*2b2d2i1=2l1.2o0r2q040a0l0u0W0K0U0K0b0C1h1j0,290W0W0s0N2L1z2s0m1H0Q272X0z2524260O2u0|1$0m2n2I1*1R1T0@1;2+0C2-0m211S1*0U2Q1H2V2X32142c1j2?2j2{0W180S110q2U3612352t381=3a3c110v3g2d3i2V2*013n0o3d040c3r2W133u3l0|3x3z0w3C3t363v3I110%3L3E3N3G3w0K3b3y110J3S3j371V3m3X3o040n3$3F3)3H3+3Z040e3/3U3;3W3Y3z0$3L1I301z2;2!0O2(3v0N212A0+1S1H2 0s313h414a0,4i3k3|0#110,0g413:2@010A110l4u3{4w0m0g11192d0P0s4B4o4w10040t4L3(4D4G4R3v4O0Y3L4A4v39110M4V3V4X4Z3%3O112c1y1A4j4#1=4O0I0y3S0l4}4!4C4$040m4,4@0|0K110Z54501=0r0C110R4|4~4-3V0m110K1g5a4M2j5704594=3s4 5q4^110E0D5h4}5j3|5l040h3y0s0f0W5p4S5r585O4.040o5S3V5s0!5W5G11535v2W5x5P1=5s0H5!4T044:5D5*3v4q040A1Y1.5/515J1.5M5~5,11020S0z0L633H4%4)3|4O4{5(124~6j5@5k5m5o6h5F4w5s0V6d5:0o0U0U2n0O6u2j4O4Q6p553w11605L5N6F5b0|4_5?6j6q515%326l3|5Y5u6V6S5c5e043f6h066k5i6G5H6J626h6W6r5R6=6#6b5U6a015Y6}5H6U3h6?5Q045.6_6.4/0_5?6`015_2Q0z5M725w7d5H5n0z3$0Q4l4h427s0Q451z0z477x2$2Y20222!0o1-7u451F4n5+0|2Q0r0d0g0o0#0s0d0G0c111r1t1v1x0l6g341M3i1G0X0o0l0g1i2S0C1i4A7r5U0W4I4K7q4b040l0m007.0o0f0N0f1j7{6x3X0z0l0o0h2R0l1.0l0r0K8d0g7{0m0F0/0=0B8e2P7|0l0i6t7*7K7-7/7;2L7^7 4H0m4J1z7_0l0s0)0C0b0z1/0O2d0=8j8l0O0f8j057_0m160U0k8M7 0l1p0N001x8d880l5J0P1w0l0*1v1S5K0m8d2N8%7 8p8L7~4m8e8g0N0l0,0=0g0S8m0.920b0V0l0j0S8O8S0l0b5n0G0/1|8U1/0b1/4:9B0W9e008^8T9q0P2F0=8Z8#1/1v2d2)8;8?0l2H0`0C7H9n0x0-8O0)0s0W0N0C0N1/8l922Q29172n8d4a0m8S0W0f0C9=0^8E0m7=7@954m8J988N8 9r8@0~8j2H5M9e7$2Q2 0*9B920o2L0=9L6w1Y7#9m1I3i7v0-0/0;04.