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

.128013:pbv(40i2+edm3;s7= 1o5wlSnatf-)h6crg.*yPku8/050m0l0C0B0i0y0q0t0I0y0B0q0q0s010C0i0c010406050q0Q0n0n0B0J0N040z0v0y0Q0-0v0A050S0@0_0{0}0=0c04161d051g0S1g1i1d0=0m0i0e0#0%0)0+0G0i0K0G0y1w0G0C0:050W0d0y0l1r0(0*011v1x1z1x0C1F1H1D0C0d0v0m0}1E0J1e0C0G0#100q0c0B0A0+0j011J1t010D0Y0l0A0B0n0l1D1+1-1=1L1^1H1{1}0:0a0t0O0J0v0c0v0q0i130A0t0U1)0J0J0l0I2i16200A1e0S1%2v0C1#1!1$0m220+1z0A1`2f1D1o1q0$1K2F0i2H0A1X1p1D0c2o1e2t2v2Z0?1,2j2N1?2S0J0`0y0:0u2s2%0;2$212)1L2+2-0:0j2;1-2?2t2E012{0B2.040o2 2u0=322_0+35370g3a312%333g0:0w3j3c3l3e340v2,360:0H3q2@2(1s2`3v2|040r3j1f2X162L2y0m2C330I1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0P0:0U0D3J3d3+010x0:0t3;3*2O340D0:0q0l0Q0Y3{2^3?0/040f453C3}0A0:2W2p0i2g144b33480F0b3q0t4r3`3=4d0:153!304t3|1?0v0:0s3j4A463}0n0i0:0h4q4s3B3m0:0Q4G4Q3t4D044F4y2u4H4c1?4K2/4O4r4V3?3-040x1v1H4U4u2*0d0:0B0d0q4l3t484a4!3)4I2*4S4@4B1L4X0E58551L4)040j0R4 470:0F5d4%5a0:020K0C0p5o4R044g0I4i0i4k534-3}484p53064s5L4$5x4x2Z5N4W4E5w3t4e045P2=5R3?4X0k5U3?5g2:5J5M4P4^2`57535!3}4X4Z5Q5F4(3 040h0L0r3p5=5{5q040M5(4v044T635/0+5$684(4L3H4+5?1?4/2o0C0Q0J5Y4z643f4w3A0S3%0l2v4g2v3W2w3P162z2y1W1Y2y4|1H6D1p2?0S0U0W0Y0q04.

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

.128013:pbv(40i2+edm3;s7= 1o5wlSnatf-)h6crg.*yPku8/050m0l0C0B0i0y0q0t0I0y0B0q0q0s010C0i0c010406050q0Q0n0n0B0J0N040z0v0y0Q0-0v0A050S0@0_0{0}0=0c04161d051g0S1g1i1d0=0m0i0e0#0%0)0+0G0i0K0G0y1w0G0C0:050W0d0y0l1r0(0*011v1x1z1x0C1F1H1D0C0d0v0m0}1E0J1e0C0G0#100q0c0B0A0+0j011J1t010D0Y0l0A0B0n0l1D1+1-1=1L1^1H1{1}0:0a0t0O0J0v0c0v0q0i130A0t0U1)0J0J0l0I2i16200A1e0S1%2v0C1#1!1$0m220+1z0A1`2f1D1o1q0$1K2F0i2H0A1X1p1D0c2o1e2t2v2Z0?1,2j2N1?2S0J0`0y0:0u2s2%0;2$212)1L2+2-0:0j2;1-2?2t2E012{0B2.040o2 2u0=322_0+35370g3a312%333g0:0w3j3c3l3e340v2,360:0H3q2@2(1s2`3v2|040r3j1f2X162L2y0m2C330I1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0P0:0U0D3J3d3+010x0:0t3;3*2O340D0:0q0l0Q0Y3{2^3?0/040f453C3}0A0:2W2p0i2g144b33480F0b3q0t4r3`3=4d0:153!304t3|1?0v0:0s3j4A463}0n0i0:0h4q4s3B3m0:0Q4G4Q3t4D044F4y2u4H4c1?4K2/4O4r4V3?3-040x1v1H4U4u2*0d0:0B0d0q4l3t484a4!3)4I2*4S4@4B1L4X0E58551L4)040j0R4 470:0F5d4%5a0:020K0C0p5o4R044g0I4i0i4k534-3}484p53064s5L4$5x4x2Z5N4W4E5w3t4e045P2=5R3?4X0k5U3?5g2:5J5M4P4^2`57535!3}4X4Z5Q5F4(3 040h0L0r3p5=5{5q040M5(4v044T635/0+5$684(4L3H4+5?1?4/2o0C0Q0J5Y4z643f4w3A0S3%0l2v4g2v3W2w3P162z2y1W1Y2y4|1H6D1p2?0S0U0W0Y0q04.