Puissances d'un nombre

On s'intéresse dans cette page à deux problèmes traitant du calcul des puissances d'un nombre strictement positif.

On rappelle que si \(a\) est un nombre réel strictement positif et \(n\) un entier naturel, alors on a :

\[ a^n =\begin{cases} 1&\text{ si }n=0\\ a\times \dots \times a \text{ avec }n\text{ facteurs}&\text{ sinon} \end{cases} \]

Par exemple :

\[3^4=3\times3\times3\times3=81\]
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.

Puissances croissantes

Soient \(a\) et \(b\) deux entiers strictement positifs. \(a\) est différent de \(1\).

Si \(a\) est strictement supérieur à \(1\), les puissances de \(a\) successives sont croissantes.

Considérons par exemple les puissances de \(2\) : Puissances de \(2\)

  • \(2^0=1\)

  • \(2^1=2\)

  • \(2^2=4\)

  • \(2^3=8\)

  • ...

  • \(2^{8}=256\)

On peut démontrer que, quelle que soit la valeur de \(b\) positif, il existe une certaine puissance de \(a\) supérieure ou égale à \(b\).

Par exemple, en prenant \(a=2\) et \(b = 999\), il faut attendre \(a^{10}=1~024\) pour dépasser \(b\).

On demande d'écrire la fonction puissance_superieure qui :

  • prend en paramètres les entiers a et b ;

  • renvoie la première valeur de l'entier n telle que a puissance n est supérieure ou égale à b.

Exemples
>>> puissance_superieure(2, 1)  # on a 2^0 = 1
0
>>> puissance_superieure(2, 8)  # on a 2^3 = 8
3
>>> puissance_superieure(5, 130)  # on a 5^3 = 125 et 5^4 = 625
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,n w*5e(3m=0p)rhkuois;cb/6S1vt_dg:ay24P+fl7050G0h0E0J0u0Q0v0d0x0Q0J0v0v0l010E0u0n010406050v0s0k0k0J0p0K040B0t0Q0s0,0t0c050z0?0^0`0|0;0n04151c051f0z1f1h1c0;0G0u0D0!0$0(0*0q0u0H0q0Q1v0q0E0/050V0y0Q0h1q0%0)011u1w1y1w0E1E1G1C0E0y0t0G0|1D0p1d0E0q0!0 0v0n0J0c0*0L011I1s010P0X0h0c0J0k0h1C1*1,1;1K1@1G1`1|0/0a0d0N0p0t0n0t0v0u120c0d0T1(0p0p0h0x2h151 0c1d0z1$2u0E1!1Z1#0G210*1y0c1_2e1C1n1p0#1J2E0u2G0c1W1o1C0n2n1d2s2u2Y0=1+2i2M1=2R0p0_0Q0/0C2r2$0:2#202(1K2*2,0/0L2:1,2=2s2D012`0J2-040j2~2t0;312^0*34360M39302$323f0/0g3i3b3k3d330t2+350/0A3p2?2%1r2_3u2{040R3i1e2W152K2x0G2B320x1W1}1d3M1g3K2!162;053R0T2X3r3C0*0r0/0T0P3I3c3*010e0/0d3:3)2N330P0/0n0s0u0(1,0x0h0F0?0n0h0p0u0h0s2n3`2@3=0.040i4g3B3|0c0/0J4m324j0b3i3_3;4o0/0y4s3s4j0o0I3p0d4I4x3{2)3 41430c454w3A320t0/0l4S4y1=0k0u2.4H4J4T3s4p04143Z2 4K4h3|4V044X4/2t4;4n4!4$040m4(4I4*3=3,040e1u1G4Y4L2_4N420v440h5b4=1=4@020Q0E0w5j4}5d044B4`3(5k1K4j4G5w064J5E4|3l5e4P4R5w5G3s4@4_2Y5M3=4,405f5h5r4U0/0f5X4+4q525F544z4-5#3=5O5-5+4.5Q5*5l0/0O5:4~4%5C5E5@1K562n0E4e5=2;5R5;3z0z3$0h2u2V6d3L1o3N2x2z2v1V1X2x0J1F6g0z3M0;6t0U0W0Y04.

###(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,n w*5e(3m=0p)rhkuois;cb/6S1vt_dg:ay24P+fl7050G0h0E0J0u0Q0v0d0x0Q0J0v0v0l010E0u0n010406050v0s0k0k0J0p0K040B0t0Q0s0,0t0c050z0?0^0`0|0;0n04151c051f0z1f1h1c0;0G0u0D0!0$0(0*0q0u0H0q0Q1v0q0E0/050V0y0Q0h1q0%0)011u1w1y1w0E1E1G1C0E0y0t0G0|1D0p1d0E0q0!0 0v0n0J0c0*0L011I1s010P0X0h0c0J0k0h1C1*1,1;1K1@1G1`1|0/0a0d0N0p0t0n0t0v0u120c0d0T1(0p0p0h0x2h151 0c1d0z1$2u0E1!1Z1#0G210*1y0c1_2e1C1n1p0#1J2E0u2G0c1W1o1C0n2n1d2s2u2Y0=1+2i2M1=2R0p0_0Q0/0C2r2$0:2#202(1K2*2,0/0L2:1,2=2s2D012`0J2-040j2~2t0;312^0*34360M39302$323f0/0g3i3b3k3d330t2+350/0A3p2?2%1r2_3u2{040R3i1e2W152K2x0G2B320x1W1}1d3M1g3K2!162;053R0T2X3r3C0*0r0/0T0P3I3c3*010e0/0d3:3)2N330P0/0n0s0u0(1,0x0h0F0?0n0h0p0u0h0s2n3`2@3=0.040i4g3B3|0c0/0J4m324j0b3i3_3;4o0/0y4s3s4j0o0I3p0d4I4x3{2)3 41430c454w3A320t0/0l4S4y1=0k0u2.4H4J4T3s4p04143Z2 4K4h3|4V044X4/2t4;4n4!4$040m4(4I4*3=3,040e1u1G4Y4L2_4N420v440h5b4=1=4@020Q0E0w5j4}5d044B4`3(5k1K4j4G5w064J5E4|3l5e4P4R5w5G3s4@4_2Y5M3=4,405f5h5r4U0/0f5X4+4q525F544z4-5#3=5O5-5+4.5Q5*5l0/0O5:4~4%5C5E5@1K562n0E4e5=2;5R5;3z0z3$0h2u2V6d3L1o3N2x2z2v1V1X2x0J1F6g0z3M0;6t0U0W0Y04.
Puissances décroissantes

Soient \(a\) et \(b\) deux entiers strictement positifs. \(a\) est différent de \(1\).

Si \(a\) est strictement inférieur à \(1\), les puissances de \(a\) successives sont décroissantes.

Considérons par exemple les puissances de \(\dfrac12\) : Puissances de \(2\)

  • \(\left(\dfrac12\right)^0=1\)

  • \(\left(\dfrac12\right)^1=\dfrac{1}{2}=0,5\)

  • \(\left(\dfrac12\right)^2=\dfrac{1}{4}=0,25\)

  • \(\left(\dfrac12\right)^3=\dfrac{1}{8}=0,125\)

  • ...

  • \(\left(\dfrac12\right)^{8}=\dfrac{1}{256}=0,00390625\)

On peut démontrer que, quelle que soit la valeur de \(b\) positif, il existe une certaine puissance de \(a\) inférieure ou égale à \(b\).

Par exemple, en prenant \(a=\dfrac{1}{10}\) et \(b = 0,0002\), il faut attendre \(a^{4}=0,0001\) pour être inférieur ou égal à \(b\).

On demande d'écrire la fonction puissance_inferieure qui :

  • prend en paramètres les entiers a et b ;

  • renvoie la première valeur de l'entier n telle que a puissance n est inférieure ou égale à b.

Exemples
>>> puissance_inferieure(1/2, 1)  # (1/2)^0 = 1
0
>>> puissance_inferieure(1/2, 1/8)  # (1/2)^3 = 1/8
3
>>> puissance_inferieure(1/10, 0.0002)  # (1/10)^3 = 0,001 et (1/10)^4 = 0,0001
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,n w*5e(3m=0p)rhkuois;cb/6S1vt_dg:ay24P+fl7050G0h0E0J0u0Q0v0d0x0Q0J0v0v0l010E0u0n010406050v0s0k0k0J0p0K040B0t0Q0s0,0t0c050z0?0^0`0|0;0n04151c051f0z1f1h1c0;0G0u0D0!0$0(0*0q0u0H0q0Q1v0q0E0/050V0y0Q0h1q0%0)011u1w1y1w0E1E1G1C0E0y0t0G0|1D0p1d0E0q0!0 0v0n0J0c0*0L011I1s010P0X0h0c0J0k0h1C1*1,1;1K1@1G1`1|0/0a0d0N0p0t0n0t0v0u120c0d0T1(0p0p0h0x2h151 0c1d0z1$2u0E1!1Z1#0G210*1y0c1_2e1C1n1p0#1J2E0u2G0c1W1o1C0n2n1d2s2u2Y0=1+2i2M1=2R0p0_0Q0/0C2r2$0:2#202(1K2*2,0/0L2:1,2=2s2D012`0J2-040j2~2t0;312^0*34360M39302$323f0/0g3i3b3k3d330t2+350/0A3p2?2%1r2_3u2{040R3i1e2W152K2x0G2B320x1W1}1d3M1g3K2!162;053R0T2X3r3C0*0r0/0T0P3I3c3*010e0/0d3:3)2N330P0/0n0s0u0(1,0x0h0F2P0P0h0p0u0h0s2n3`2@3=0.040i4g3B3|0c0/0J4m324j0b3i3_3;4o0/0y4s3s4j0o0I3p0d4I4x3{2)3 41430c454w3A320t0/0l4S4y1=0k0u2.4H4J4T3s4p04143Z2 4K4h3|4V044X4/2t4;4n4!4$040m4(4I4*3=3,040e1u1G4Y4L2_4N420v440h5b4=1=4@020H0E0w5j4}5d044B4`3(5k1K4j4G5w064J5E4|3l5e4P4R5w5G3s4@4_2Y5M3=4,405f5h5r4U0/0f5X4+4q525F544z4-5#3=5O5-5+4.5Q5*5l0/0O5:4~4%5C5E5@1K562n0E4e5=2;5R5;3z0z3$0h2u2V6d3L1o3N2x2z2v1V1X2x0J1F6g0z3M0;6t0U0W0Y04.