Détermination d'un seuil (2)

Soit \((u_n)\) la suite définie pour tout entier naturel \(n\) par :

\[ \begin{cases} u_0 = 1 \\ u_{n+1} = 0,75 u_n + 7 \quad \text{ pour }n \geqslant 0 \end{cases} \]

On peut montrer que cette suite tend vers \(28\) quand \(n\) tend vers \(+\infty\). Cela signifie que pour toute valeur de \(\epsilon > 0\), il existe un rang \(N\) à partir duquel on a, pour tout \(n \geqslant N\) :

\[28 - \epsilon \leqslant u_n \leqslant 28 + \epsilon\]

La dernière condition peut aussi s'écrire de façon plus concise:

\[|u_n - 28| \leqslant \epsilon\]

On rappelle à ce titre que \(|a - b|\) est la valeur absolue de \(a-b\) et peut s'interpréter comme la distance entre les nombres \(a\) et \(b\). Python permet de calculer la valeur absolue d'un nombre x en faisant abs(x).

Écrire le code de la fonction seuil qui prend en paramètre le nombre precision et renvoie la valeur du plus petit entier tel que l'on ait \(|u_n - 28| \leqslant \text{precision}\).

On garantit que precision est un nombre réel supérieur ou égal à \(10^{-14}\).

assert ?

Le mot clé assert est utilisé en Python afin de vérifier que des propositions sont vraies.

Ainsi, l'instruction assert 3 + 5*7 == 38 permet de vérifier que l'expression 3 + 5*7 est bien évaluée à 38.

Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.

La vidéo ne s'affiche pas... ?

Il peut arriver que les vidéos ne s'affichent pas sur des navigateurs basés sur Chrome, ou si un ad-blocker est activé sur le navaigateur. Essayer avec un autre navigateur si vous êtes dans ce cas (FireFox, typiquement), ou désactivez l'ad-blocker.

Exemples
>>> seuil(1)    # u_12 ≃ 27,1 et ǀ27,1 - 28ǀ ⩽ 1
12
>>> seuil(0.1)  # u_20 ≃ 27,91 et ǀ27,91 - 28ǀ ⩽ 0,1
20

###(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

.128013buS-34l.(wn/)p8aPk0;:hors1*v7c256mgydieft =+050L0N0P0q0M0h0z0Q0E0h0q0z0z0R010P0M0o010406050z0c0I0I0q0y0K040d0x0h0c0-0x0l050m0@0_0{0}0=0o04161d051g0m1g1i1d0=0L0M0C0#0%0)0+0w0M0J0w0h1w0w0P0:050W0b0h0N1r0(0*011v1x1z1x0P1F1H1D0P0b0x0L0}1E0y1e0P0w0#100z0o0q0l0+0F011J1t010O0Y0N0l0q0I0N1D1+1-1=1L1^1H1{1}0:0a0Q0r0y0x0o0x0z0M130l0Q0U1)0y0y0N0E2i16200l1e0m1%2v0P1#1!1$0L220+1z0l1`2f1D1o1q0$1K2F0M2H0l1X1p1D0o2o1e2t2v2Z0?1,2j2N1?2S0y0`0h0:0A2s2%0;2$212)1L2+2-0:0F2;1-2?2t2E012{0q2.040f2 2u0=322_0+35370g3a312%333g0:0G3j3c3l3e340x2,360:0H3q2@2(1s2`3v2|040D3j1f2X162L2y0L2C330E1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0s0:0U0O3J3d3+010k0:0Q3;3*2O340O0:0z0N0c0Y3{2^3?0/040j453C3}0l0:2W2p0M2g144b33480n0v3q0Q4r3`3=4d0:153!304t3|1?0x0:0R3j4A463}0I0M0:0t4q4s3B3m0:0c4G4Q3t4D044F4y2u4H4c1?4K2/4O4r4V3?3-040k1v1H4U4u2*0b0:0q0b0z4l3t484a4!3)4I2*4S4@4B1L4X0e58551L4)040F0p4 470:0n5d4%5a0:020J0P0u5o4R044g0E4i0M4k534-3}484p53064s5L4$5x4x2Z5N4W4E5w3t4e045P2=5R3?4X0S5U3?5g2:5J5M4P4^2`57535!3}4X4Z5Q5F4(3 040t0i0D3p5=5{5q040B5(4v044T635/0+5$684(4L3H4+5?1?4/2o0P0c0y5Y4z643f4w3A0m3%0N2v4g2v3W2w3P162z2y1W1Y2y4|1H6D1p2?0m0U0W0Y0z04.

###(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

.128013buS-34l.(wn/)p8aPk0;:hors1*v7c256mgydieft =+050L0N0P0q0M0h0z0Q0E0h0q0z0z0R010P0M0o010406050z0c0I0I0q0y0K040d0x0h0c0-0x0l050m0@0_0{0}0=0o04161d051g0m1g1i1d0=0L0M0C0#0%0)0+0w0M0J0w0h1w0w0P0:050W0b0h0N1r0(0*011v1x1z1x0P1F1H1D0P0b0x0L0}1E0y1e0P0w0#100z0o0q0l0+0F011J1t010O0Y0N0l0q0I0N1D1+1-1=1L1^1H1{1}0:0a0Q0r0y0x0o0x0z0M130l0Q0U1)0y0y0N0E2i16200l1e0m1%2v0P1#1!1$0L220+1z0l1`2f1D1o1q0$1K2F0M2H0l1X1p1D0o2o1e2t2v2Z0?1,2j2N1?2S0y0`0h0:0A2s2%0;2$212)1L2+2-0:0F2;1-2?2t2E012{0q2.040f2 2u0=322_0+35370g3a312%333g0:0G3j3c3l3e340x2,360:0H3q2@2(1s2`3v2|040D3j1f2X162L2y0L2C330E1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0s0:0U0O3J3d3+010k0:0Q3;3*2O340O0:0z0N0c0Y3{2^3?0/040j453C3}0l0:2W2p0M2g144b33480n0v3q0Q4r3`3=4d0:153!304t3|1?0x0:0R3j4A463}0I0M0:0t4q4s3B3m0:0c4G4Q3t4D044F4y2u4H4c1?4K2/4O4r4V3?3-040k1v1H4U4u2*0b0:0q0b0z4l3t484a4!3)4I2*4S4@4B1L4X0e58551L4)040F0p4 470:0n5d4%5a0:020J0P0u5o4R044g0E4i0M4k534-3}484p53064s5L4$5x4x2Z5N4W4E5w3t4e045P2=5R3?4X0S5U3?5g2:5J5M4P4^2`57535!3}4X4Z5Q5F4(3 040t0i0D3p5=5{5q040B5(4v044T635/0+5$684(4L3H4+5?1?4/2o0P0c0y5Y4z643f4w3A0m3%0N2v4g2v3W2w3P162z2y1W1Y2y4|1H6D1p2?0m0U0W0Y0z04.