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.

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

.128013ukrm cpiy/2P)tl=hsebwS*53(av,1:n4dg+of050I0t0o0B0i0p0s0f0g0p0B0s0s0q010o0i0h010406050s0b0e0e0B0d0j040w0L0p0b0%0L0G050k0.0:0=0@0,0h041017051a0k1a1c170,0I0i0C0V0X0Z0#0r0i0J0r0p1q0r0o0*050Q0u0p0t1l0Y0!011p1r1t1r0o1z1B1x0o0u0L0I0@1y0d180o0r0V0`0s0h0B0G0#0l011D1n010M0S0t0G0B0e0t1x1#1%1,1F1/1B1=1@0*0a0f0m0d0L0h0L0s0i0}0G0f0O1Z0d0d0t0g2c101`0G180k1X2p0o1V1U1W0I1|0#1t0G1;291x1i1k0W1E2z0i2B0G1R1j1x0h2i182n2p2T0-1$2d2H1-2M0d0;0p0*0E2m2X0+2W1{2Z1F2#2%0*0l2+1%2-2n2y012=0B2(040z2_2o0,2|2:0#2 310H342{2X2}3a0*0y3d192R102F2s0I2w2}0g1R1^183o1b3m2V112,053t0O2S3f38010c0*0O0M3k371m1F0v0*0f3O3H3Q390M0*0o0t2$0t3V2/3X010)040A3)2Y3+0G0*0 3B2`2.3;2I3,0*0n0F3d060f443U3P3}3?040b3d463W3}0L0*0q4c3{2}0e0i0*333_35454d3*3}3K040M0L0d4j472!0*2K1i0g3(4q044t3|1-0L3S042K4B4e2!0u0*0d1%0J4I2V4C1F3-3/4J4k3I4m2)3:2}3-0D4S4u4D043^4#4T1F4g040K4/4,4n042*4*4$0#3-40424s4s4+3=0*4b4J4L2}4~4i5i5e3}4-043j564|0#4~0x515f4a4?4M4}0*505n57015q2^4J43455o1-4w2i0o0b0d4`2,5j3I495h2T0,0k3E0t2p2Q5)3n1j3p2s2u2q1Q1S2s0B1A5,0k3o5$0O0Q0S0s04.

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

.128013urkm cpiy/2tP)=lh0sebwS*53(-av1:n4dg+of050J0u0m0D0i0q0t0f0g0q0D0t0t0p010m0i0h010406050t0b0e0e0D0c0j040x0M0q0b0(0M0H050k0/0;0?0^0-0h041118051b0k1b1d180-0J0i0E0W0Y0!0$0r0i0K0r0q1r0r0m0+050R0v0q0u1m0Z0#011q1s1u1s0m1A1C1y0m0v0M0J0^1z0c190m0r0W0{0t0h0D0H0$0l011E1o010N0T0u0H0D0e0u1y1$1(1-1G1:1C1?1^0+0a0f0n0c0M0h0M0t0i0~0H0f0P1!0c0c0u0g2d111{0H190k1Y2q0m1W1V1X0J1}0$1u0H1=2a1y1j1l0X1F2A0i2C0H1S1k1y0h2j192o2q2U0.1%2e2I1.2N0c0=0q0+0F2n2Y0,2X1|2!1G2$2(0+0l2,1(2.2o2z012?0D2)040A2`2p0-2}2;0$30320I352|2Y2~3b0+0z3e1a2S112G2t0J2x2~0g1S1_193p1c3n2W122-053u0P2T3g39010d0+0P0N3l381n1G0w0+0f3P3I3R3a0N0+0m0u2%0u3W2:3Y010*040B3*2Z3,0H0+103C2{2/3=2J3-0+0o0G3e060f453V3Q3~3L040i3O3`2p473X3~3@043_2U4g3+3~0M0+0p0p3e4n3}1.0e0i0+0s3;2~3.424e0,464I4v2~4a2j0m0b0c4l2-4K3J4y0+344G44463|4L0+0u0U3)4G4#3J4E434J4!481.4M0Q4P4R2{4T3,4V043k4G4|4p0+0y4u4,3?3#3%1^4C4-0+3:4+4=2=3^5c3,4q040C5k3~4~2+5g4h1.3.0o565h0$5m0L5y5u1G4~2_4Y113F0u2q2R5L3o1k3q2t2v2r1R1T2t0D1B5O0k3p0-5#0Q0S0U04.