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

.128013s3o8;bcdufvg/0ly n7apS.r1-me(P2=4:+twki5h*)6050i0C0K0u0N0p0b0r0h0p0u0b0b0G010K0N0v010406050b0j0B0B0u0y0q040w0d0p0j0-0d0s050n0@0_0{0}0=0v04161d051g0n1g1i1d0=0i0N0l0#0%0)0+0P0N0m0P0p1w0P0K0:050W0g0p0C1r0(0*011v1x1z1x0K1F1H1D0K0g0d0i0}1E0y1e0K0P0#100b0v0u0s0+0F011J1t010k0Y0C0s0u0B0C1D1+1-1=1L1^1H1{1}0:0a0r0E0y0d0v0d0b0N130s0r0U1)0y0y0C0h2i16200s1e0n1%2v0K1#1!1$0i220+1z0s1`2f1D1o1q0$1K2F0N2H0s1X1p1D0v2o1e2t2v2Z0?1,2j2N1?2S0y0`0p0:0z2s2%0;2$212)1L2+2-0:0F2;1-2?2t2E012{0u2.040c2 2u0=322_0+35370H3a312%333g0:0O3j3c3l3e340d2,360:0S3q2@2(1s2`3v2|040t3j1f2X162L2y0i2C330h1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0M0:0U0k3J3d3+010L0:0r3;3*2O340k0:0b0C0j0Y3{2^3?0/040D453C3}0s0:2W2p0N2g144b33480R0I3q0r4r3`3=4d0:153!304t3|1?0d0:0G3j4A463}0B0N0:0o4q4s3B3m0:0j4G4Q3t4D044F4y2u4H4c1?4K2/4O4r4V3?3-040L1v1H4U4u2*0g0:0u0g0b4l3t484a4!3)4I2*4S4@4B1L4X0A58551L4)040F0e4 470:0R5d4%5a0:020m0K0f5o4R044g0h4i0N4k534-3}484p53064s5L4$5x4x2Z5N4W4E5w3t4e045P2=5R3?4X0J5U3?5g2:5J5M4P4^2`57535!3}4X4Z5Q5F4(3 040o0x0t3p5=5{5q040Q5(4v044T635/0+5$684(4L3H4+5?1?4/2o0K0j0y5Y4z643f4w3A0n3%0C2v4g2v3W2w3P162z2y1W1Y2y4|1H6D1p2?0n0U0W0Y0b04.

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

.128013s3o8;bcdufvg/0ly n7apS.r1-me(P2=4:+twki5h*)6050i0C0K0u0N0p0b0r0h0p0u0b0b0G010K0N0v010406050b0j0B0B0u0y0q040w0d0p0j0-0d0s050n0@0_0{0}0=0v04161d051g0n1g1i1d0=0i0N0l0#0%0)0+0P0N0m0P0p1w0P0K0:050W0g0p0C1r0(0*011v1x1z1x0K1F1H1D0K0g0d0i0}1E0y1e0K0P0#100b0v0u0s0+0F011J1t010k0Y0C0s0u0B0C1D1+1-1=1L1^1H1{1}0:0a0r0E0y0d0v0d0b0N130s0r0U1)0y0y0C0h2i16200s1e0n1%2v0K1#1!1$0i220+1z0s1`2f1D1o1q0$1K2F0N2H0s1X1p1D0v2o1e2t2v2Z0?1,2j2N1?2S0y0`0p0:0z2s2%0;2$212)1L2+2-0:0F2;1-2?2t2E012{0u2.040c2 2u0=322_0+35370H3a312%333g0:0O3j3c3l3e340d2,360:0S3q2@2(1s2`3v2|040t3j1f2X162L2y0i2C330h1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0M0:0U0k3J3d3+010L0:0r3;3*2O340k0:0b0C0j0Y3{2^3?0/040D453C3}0s0:2W2p0N2g144b33480R0I3q0r4r3`3=4d0:153!304t3|1?0d0:0G3j4A463}0B0N0:0o4q4s3B3m0:0j4G4Q3t4D044F4y2u4H4c1?4K2/4O4r4V3?3-040L1v1H4U4u2*0g0:0u0g0b4l3t484a4!3)4I2*4S4@4B1L4X0A58551L4)040F0e4 470:0R5d4%5a0:020m0K0f5o4R044g0h4i0N4k534-3}484p53064s5L4$5x4x2Z5N4W4E5w3t4e045P2=5R3?4X0J5U3?5g2:5J5M4P4^2`57535!3}4X4Z5Q5F4(3 040o0x0t3p5=5{5q040Q5(4v044T635/0+5$684(4L3H4+5?1?4/2o0K0j0y5Y4z643f4w3A0n3%0C2v4g2v3W2w3P162z2y1W1Y2y4|1H6D1p2?0n0U0W0Y0b04.