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

.1280132mh)SclP=u3tfnp:avgbys5or 1(k+*4wied,/050K0J0m0r0I0h0w0A0g0h0r0w0w0j010m0I0p010406050w0k0c0c0r0z0v040f0y0h0k0%0y0o050M0.0:0=0@0,0p040517101a0M170,0K0I0s0V0X0Z0#0d0I0t0d0h1o0d0m0*050Q0u0h0J1j0Y0!011n1p1r1p0m1x1z1v0m0z180m0d0V0`0w0p0r0o0#0b011B1l010n0S0J0o0r0c0J1v1U1W1#1D1(1z1+1-0*0a0A0i0z0y0p0y0w0I0}0o0A0O1S0z0z0J0g25101:0o180M1Q2i1N1P1O1w0K1=0#1r0o1*221v1g1i0W1C2s0I2u0o0y2y1v0p2b182g2i2M0-1V262A1$2F0z0;0h0*0B2f2Q0+2P1;2S1D2U2W0*0b2!1W2$2g2r012+0r2X040l2/2h0,2=2)0#2^2`0G2}2;2Q2?330*0x361b2K102y2l0K1P2q31010g2G1.183h193f2O112#053o0O2L383m0D0*0O0n3d301k1D0H0*0A3I3C3K320n0*0m0J2V0J3P2(3R010)040C3Z2R3#0o0*0 3w2:2%3+2B3$0*0e0q36060A3~3O3J3@3-040k36403Q3@0y0*0j463=2?0c0I0*2|3:2~3 473!3@3E040n0y0z4d412T0*2D1g0g3Y4k044n3?1$0y3M042D4v482T0u0*0z1W0t4C2O4w1D3%3)4D4e3m4g2Y3*2?3%0L4M4o4x043/4V4N1D4a040E4)4$4h042Z4!4W0#3%3`3|4m4m4#3,0*454D4F2?4^4c5c583@4%043c504?0#4^0F4{59444-4G4@0*4`5h51015k2.4D3}3 5i1$4q2b0m0k0z4;2#5d3m435b2M0,0M3z0J2i2J5Z3g1h3i2l2o2j0r1y5$0M3h5W0O0Q0S0w04.

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

.1280132mhS)cle-P=3tfnp:avgbys50or 1(k+*4iwud/050M0i0n0s0J0h0x0C0g0h0s0x0x0l010n0J0q010406050x0L0c0c0s0B0w040e0A0h0L0(0A0p050N0/0;0?0^0-0q040518111b0N180-0M0J0t0W0Y0!0$0d0J0u0d0h1p0d0n0+050R0v0h0i1k0Z0#011o1q1s1q0n1y1A1w0n0B190n0d0W0{0x0q0s0p0$0b011C1m010o0T0i0p0s0c0i1w1V1X1$1E1)1A1,1.0+0a0C0k0B0A0q0A0x0J0~0p0C0P1T0B0B0i0g26111;0p190N1R2j1O1Q1P1x0M1?0$1s0p1+231w1h1j0X1D2t0J2v0p0A2z1w0q2c192h2j2N0.1W272B1%2G0B0=0h0+0D2g2R0,2Q1=2T1E2V2X0+0b2#1X2%2h2s012,0s2Y040m2:2i0-2?2*0$2_2{0I2~2=2R2@340+0y371c2L112z2m0M1Q2r32010g2H1/193i1a3g2P122$053p0P2M393n0F0+0P0o3e311l1E0K0+0C3J3D3L330o0+0n0i2W0i3Q2)3S010*040E3!2S3$0p0+103x2;2(3,2C3%0+0f0r37060C3 3P3K3^3F040J3I3;2i413R3^3.043:2N4a3#3^0A0+0l0l374h3@1%0c0J0+0z3+2@3(3|480,404C4p2@442c0n0L0B4f2$4E3n4s0+2}4A3~403?4F0+0i0U3Z4A4V3n4y3}4D4U421%4G0Q4J4L2;4N3$4P043d4A4?4j0+0H4o4$3-3V3X1.4w4%0+3*4#4,2+3/563$4k040j5e3^4^2!5a4b1%3(0f505b0$5g0G5s5o1E4^2/4S113A0i2j2K5F3h1i3j2m2p2k0s1z5I0N3i0-5S0Q0S0U04.