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'expression 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)
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 : 5/5

.128013(lbsSetph4rd5f1uma"ov+wg,/3=in k:)y *2Pc030g0a0b0m0x06080E0I060m08080w0n0b0x0c0n020z03080k0l0l0m0f0D02090o060k0Z0o0y030u0)0+0-0/0'0c0203120{150u120'0g0x0p0R0T0V0X0d0x0s0d061j0d0b0$030M07060a1e0U0W0n1i1k1m1k0b1s1u1q0b0f130b0d0R0=080c0m0y0X0G0n1w1g0n0i0O0a0y0m0l0a1q1P1R1W1y1Z1u1$1'0$040E0H0f0o0c0o080x0^0y0E0K1N0f0f0a0I1 0{1*0y130u1L2c1I1K1J1r0g1,0X1m0y1#1|1q1b1d0S1x2m0x2o0y0o2s1q0c25132a2c2G0(1Q202u1X2z0f0,060$0j292K0%2J1+2M1y2O2Q0$0G2U1R2W2a2l0n2#0m2R020v2(2b0'2+2Z0X2.2:0e2?2*2K2,2|0$0h2 162E0{2s2f0g1K2k2`0n0I2A1(133a14382I0|2V033h0K2F313f0A0$0K0i2 0E2X2L1f2!0i0$0b0a2P0a362_3F0X0#02053N3v3P2-0$0`3p2)3D2,3R0C0B2 0z0E3,3C3O2v3X020k3B3$3f0o0$0w3@3/1X0l0x0$2=3!2@3-3.3V3:3x020i0o0f3}482N0$2x1b0I3M4402472Y3W0o0r4i3Z2G4p3E3:0y070$0f1R0s4m2I3~1y3R3T4n3^3W402S3U4q3:3R0t4f4S4h024v3q4I0X3`020q4R4y3 41022T4M4$0n3'3)4n3+463-4N4z0$3?4n4x2,4'3|504|4,344*520$0F593f0y4~4W4+1y4'4)554;4P022'4^46561y4a250b0k0f4!2)515e5g4^0{3s0a2c2D5I391c3b2f2i2d0m1t5L0u3a0'5V0L0N0P02.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
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 : 5/5

.128013(lbsSet-ph4rd5f10uma"ov+g/3=in k:)y *2Pc030h0a0b0o0x06080E0I060o08080w0p0b0x0d0p020z03080m0n0n0o0g0D02090q060m0Z0q0y030u0)0+0-0/0'0d0203120{150u120'0h0x0r0R0T0V0X0e0x0t0e061j0e0b0$030M07060a1e0U0W0p1i1k1m1k0b1s1u1q0b0g130b0e0R0=080d0o0y0X0G0p1w1g0p0j0O0a0y0o0n0a1q1P1R1W1y1Z1u1$1'0$040E0H0g0q0d0q080x0^0y0E0K1N0g0g0a0I1 0{1*0y130u1L2c1I1K1J1r0h1,0X1m0y1#1|1q1b1d0S1x2m0x2o0y0q2s1q0d25132a2c2G0(1Q202u1X2z0g0,060$0k292K0%2J1+2M1y2O2Q0$0G2U1R2W2a2l0p2#0o2R020v2(2b0'2+2Z0X2.2:0f2?2*2K2,2|0$0i2 162E0{2s2f0h1K2k2`0p0I2A1(133a14382I0|2V033h0K2F313f0A0$0K0j2 0E2X2L1f2!0j0$0b0a2P0a362_3F0X0#02053N3v3P2-0$0`3p2)3D2,3R0C0B2 0z0E3,3C3O2v0p3x020x3A3!2b3.3V3:0y3Y3B3$3f0q0$0w0w403/1X0n0x0$0l3U2Y3W3R3)3_0%3-4l3{4f3:3=250b0m0g3Z2G4n3E3:4a0$2=4j3+3-413W3=0a0P3M4j4G3:4h3*4m4F481y4q0L4t4v2V4x2,4A02354j4!420$0F473|2N3I3K1'4e4y1X3R3T4M4T2{3 4{4.1y43020c4?4#4b022T4 4o4^0$0C4-5b510$0s5f4@1y4$2'4D0{3s0a2c2D5s391c3b2f2i2d0o1t5v0u3a0'5F0L0N0P02.