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

.1280133Sytbi,*)f4dug:khe sPar(5lvow21/m+np=c050m0s0e0w0g0A0u0t0M0A0w0u0u0L010e0g0K010406050u0n0H0H0w0x0d040c0C0A0n0%0C0J050G0.0:0=0@0,0K041017051a0G1a1c170,0m0g0B0V0X0Z0#0r0g0o0r0A1q0r0e0*050Q0f0A0s1l0Y0!011p1r1t1r0e1z1B1x0e0f0C0m0@1y0x180e0r0V0`0u0K0w0J0#0E011D1n010k0S0s0J0w0H0s1x1#1%1,1F1/1B1=1@0*0a0t0v0x0C0K0C0u0g0}0J0t0O1Z0x0x0s0M2c101`0J180G1X2p0e1V1U1W0m1|0#1t0J1;291x1i1k0W1E2z0g2B0J1R1j1x0K2i182n2p2T0-1$2d2H1-2M0x0;0A0*0F2m2X0+2W1{2Z1F2#2%0*0E2+1%2-2n2y012=0w2(040b2_2o0,2|2:0#2 310l342{2X2}3a0*0z3d192R102F2s0m2w2}0M1R1^183o1b3m2V112,053t0O2S3f38010q0*0O0k3k371m1F0D0*0t3O3H3Q390k0*0e0s2$0s3V2/3X010)040y3)2Y3+0J0*0 3B2`2.3;2I3,0*0j0p3d060t443U3P3}3?040n3d463W3}0C0*0L4c3{2}0H0g0*333_35454d3*3}3K040k0C0x4j472!0*2K1i0M3(4q044t3|1-0C3S042K4B4e2!0f0*0x1%0o4I2V4C1F3-3/4J4k3I4m2)3:2}3-0h4S4u4D043^4#4T1F4g040I4/4,4n042*4*4$0#3-40424s4s4+3=0*4b4J4L2}4~4i5i5e3}4-043j564|0#4~0i515f4a4?4M4}0*505n57015q2^4J43455o1-4w2i0e0n0x4`2,5j3I495h2T0,0G3E0s2p2Q5)3n1j3p2s2u2q1Q1S2s0w1A5,0G3o5$0O0Q0S0u04.

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

.1280133Sytbi*)f4dug:khe sPar(5lvow21/m+n0p=c-050l0r0e0v0g0z0t0s0M0z0v0t0t0L010e0g0K010406050t0m0G0G0v0w0d040c0B0z0m0(0B0I050F0/0;0?0^0-0K041118051b0F1b1d180-0l0g0A0W0Y0!0$0q0g0n0q0z1r0q0e0+050R0f0z0r1m0Z0#011q1s1u1s0e1A1C1y0e0f0B0l0^1z0w190e0q0W0{0t0K0v0I0$0D011E1o010j0T0r0I0v0G0r1y1$1(1-1G1:1C1?1^0+0a0s0u0w0B0K0B0t0g0~0I0s0P1!0w0w0r0M2d111{0I190F1Y2q0e1W1V1X0l1}0$1u0I1=2a1y1j1l0X1F2A0g2C0I1S1k1y0K2j192o2q2U0.1%2e2I1.2N0w0=0z0+0E2n2Y0,2X1|2!1G2$2(0+0D2,1(2.2o2z012?0v2)040b2`2p0-2}2;0$30320k352|2Y2~3b0+0y3e1a2S112G2t0l2x2~0M1S1_193p1c3n2W122-053u0P2T3g39010p0+0P0j3l381n1G0C0+0s3P3I3R3a0j0+0e0r2%0r3W2:3Y010*040x3*2Z3,0I0+103C2{2/3=2J3-0+0i0o3e060s453V3Q3~3L040g3O3`2p473X3~3@043_2U4g3+3~0B0+0L0L3e4n3}1.0G0g0+0J3;2~3.424e0,464I4v2~4a2j0e0m0w4l2-4K3J4y0+344G44463|4L0+0r0U3)4G4#3J4E434J4!481.4M0Q4P4R2{4T3,4V043k4G4|4p0+0h4u4,3?3#3%1^4C4-0+3:4+4=2=3^5c3,4q040N5k3~4~2+5g4h1.3.0i565h0$5m0H5y5u1G4~2_4Y113F0r2q2R5L3o1k3q2t2v2r1R1T2t0v1B5O0F3p0-5#0Q0S0U04.