Suite mathématique

Soit la suite définie par récurrence par :

\[ \left\{ \begin{array}{ll} u_0 = 3 \\ u_{n+1} = 5 \times u_n+2\\ \end{array} \right. \]

On souhaite créer la fonction terme qui calcule le terme de cette suite au rang n.

On pourra utiliser une méthode itérative ou récursive.

Traduction d'une suite en algorithme

\(u_0=3\) signifie que pour \(n=0\) alors le terme \(u =3\). On initialise donc les variables n et u aux valeurs correspondantes.

Ensuite, connaissant le terme d'indice \(n\), on calcule le terme suivant, celui d'indice \(n+1\), grâce à l'instruction :

🐍 Script Python
u = 5*u + 2

L'expression est exécutée en débutant par le membre de droite : 5*u + 2 est tout d'abord évalué, puis le résultat est affecté à la variable u. Cette variable contient donc successivement les différentes valeurs de \(u_n\).

Calculer un terme au rang n non nul revient donc à calculer chaque terme du rang \(1\) au rang \(n\).

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.

range ?

La fonction range permet de générer une série de nombres entiers. On l'utilise régulièrement dans les boucles for. Elle a trois syntaxes différentes :

  • range(fin) : génère les entiers compris entre 0 (inclus) et fin (exclu). On répète donc les instructions fin fois ;

  • range(debut, fin) : génère les entiers compris entre debut (inclus) et fin (exclu) ;

  • range(debut, fin, pas) : génère les entiers compris entre debut (inclus) et fin (exclu) en les parcourant de pas en pas.

Donc :

  • for i in range(5) : parcourt les entiers i dans [0, 1, 2, 3, 4] ;

  • for i in range(1, 5) : parcourt les entiers i dans [1, 2, 3, 4] ;

  • for i in range(1, 5, 3) : parcourt les entiers i dans [1, 4].

###(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:pv(4ui+2edm3s=1 o5wlSnatf)h,crg*yPkb/050l0k0z0y0h0v0o0r0E0v0y0o0o0p010z0h0c010406050o0g0m0m0y0F0I040w0s0v0g0%0s0x050M0.0:0=0@0,0c041017051a0M1a1c170,0l0h0d0V0X0Z0#0C0h0G0C0v1q0C0z0*050Q0L0v0k1l0Y0!011p1r1t1r0z1z1B1x0z0L0s0l0@1y0F180z0C0V0`0o0c0y0x0#0j011D1n010A0S0k0x0y0m0k1x1#1%1,1F1/1B1=1@0*0a0r0J0F0s0c0s0o0h0}0x0r0O1Z0F0F0k0E2c101`0x180M1X2p0z1V1U1W0l1|0#1t0x1;291x1i1k0W1E2z0h2B0x1R1j1x0c2i182n2p2T0-1$2d2H1-2M0F0;0v0*0q2m2X0+2W1{2Z1F2#2%0*0j2+1%2-2n2y012=0y2(040n2_2o0,2|2:0#2 310f342{2X2}3a0*0t3d192R102F2s0l2w2}0E1R1^183o1b3m2V112,053t0O2S3f38010K0*0O0A3k371m1F0u0*0r3O3H3Q390A0*0z0k2$0k3V2/3X010)040e3)2Y3+0x0*0 3B2`2.3;2I3,0*0B0b3d060r443U3P3}3?040g3d463W3}0s0*0p4c3{2}0m0h0*333_35454d3*3}3K040A0s0F4j472!0*2K1i0E3(4q044t3|1-0s3S042K4B4e2!0L0*0F1%0G4I2V4C1F3-3/4J4k3I4m2)3:2}3-0D4S4u4D043^4#4T1F4g040i4/4,4n042*4*4$0#3-40424s4s4+3=0*4b4J4L2}4~4i5i5e3}4-043j564|0#4~0H515f4a4?4M4}0*505n57015q2^4J43455o1-4w2i0z0g0F4`2,5j3I495h2T0,0M3E0k2p2Q5)3n1j3p2s2u2q1Q1S2s0y1A5,0M3o5$0O0Q0S0o04.

###(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+edm3s= 1o5wlSnatf-)hcrg*yPku/050m0l0A0z0i0w0p0r0F0w0z0p0p0q010A0i0c010406050p0M0n0n0z0G0J040x0t0w0M0(0t0y050N0/0;0?0^0-0c041118051b0N1b1d180-0m0i0e0W0Y0!0$0E0i0H0E0w1r0E0A0+050R0d0w0l1m0Z0#011q1s1u1s0A1A1C1y0A0d0t0m0^1z0G190A0E0W0{0p0c0z0y0$0j011E1o010B0T0l0y0z0n0l1y1$1(1-1G1:1C1?1^0+0a0r0K0G0t0c0t0p0i0~0y0r0P1!0G0G0l0F2d111{0y190N1Y2q0A1W1V1X0m1}0$1u0y1=2a1y1j1l0X1F2A0i2C0y1S1k1y0c2j192o2q2U0.1%2e2I1.2N0G0=0w0+0s2n2Y0,2X1|2!1G2$2(0+0j2,1(2.2o2z012?0z2)040o2`2p0-2}2;0$30320g352|2Y2~3b0+0u3e1a2S112G2t0m2x2~0F1S1_193p1c3n2W122-053u0P2T3g39010L0+0P0B3l381n1G0v0+0r3P3I3R3a0B0+0A0l2%0l3W2:3Y010*040f3*2Z3,0y0+103C2{2/3=2J3-0+0D0b3e060r453V3Q3~3L040i3O3`2p473X3~3@043_2U4g3+3~0t0+0q0q3e4n3}1.0n0i0+0h3;2~3.424e0,464I4v2~4a2j0A0M0G4l2-4K3J4y0+344G44463|4L0+0l0U3)4G4#3J4E434J4!481.4M0Q4P4R2{4T3,4V043k4G4|4p0+0I4u4,3?3#3%1^4C4-0+3:4+4=2=3^5c3,4q040C5k3~4~2+5g4h1.3.0D565h0$5m0k5y5u1G4~2_4Y113F0l2q2R5L3o1k3q2t2v2r1R1T2t0z1B5O0N3p0-5#0Q0S0U04.