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

.12801342ny6g3p )rPv1=;oa_ckmi*u5(,e:tsShl07w+bf/d050R0D0F0s0x0J0G0j0u0J0s0G0G0p010F0x0i010406050G0z0w0w0s0l0e040H0r0J0z0,0r0d050Q0?0^0`0|0;0i04151c051f0Q1f1h1c0;0R0x0n0!0$0(0*0I0x0g0I0J1v0I0F0/050V0O0J0D1q0%0)011u1w1y1w0F1E1G1C0F0O0r0R0|1D0l1d0F0I0!0 0G0i0s0d0*0c011I1s010P0X0D0d0s0w0D1C1*1,1;1K1@1G1`1|0/0a0j0m0l0r0i0r0G0x120d0j0T1(0l0l0D0u2h151 0d1d0Q1$2u0F1!1Z1#0R210*1y0d1_2e1C1n1p0#1J2E0x2G0d1W1o1C0i2n1d2s2u2Y0=1+2i2M1=2R0l0_0J0/0o2r2$0:2#202(1K2*2,0/0c2:1,2=2s2D012`0s2-040h2~2t0;312^0*34360b39302$323f0/0A3i3b3k3d330r2+350/0f3p2?2%1r2_3u2{040L3i1e2W152K2x0R2B320u1W1}1d3M1g3K2!162;053R0T2X3r3C0*0v0/0T0P3I3c3*010M0/0j3:3)2N330P0/0i0z0x0(1,0u0D0t0?0i0D0l0x0D0z2n3`2@3=0.040B4g3B3|0d0/0s4m324j0C3i3_3;4o0/0O4s3s4j0k0E3p0j4I4x3{2)3 41430d454w3A320r0/0p4S4y1=0w0x2.4H4J4T3s4p04143Z2 4K4h3|4V044X4/2t4;4n4!4$040K4(4I4*3=3,040M1u1G4Y4L2_4N420G440D5b4=1=4@020J0F0q5j4}5d044B4`3(5k1K4j4G5w064J5E4|3l5e4P4R5w5G3s4@4_2Y5M3=4,405f5h5r4U0/0y5X4+4q525F544z4-5#3=5O5-5+4.5Q5*5l0/0N5:4~4%5C5E5@1K562n0F4e5=2;5R5;3z0Q3$0D2u2V6d3L1o3N2x2z2v1V1X2x0s1F6g0Q3M0;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

.12801342ny6g3p )rPv1=;oa_ckmi*u5(,e:tsShl07w+bf/d050R0D0F0s0x0J0G0j0u0J0s0G0G0p010F0x0i010406050G0z0w0w0s0l0e040H0r0J0z0,0r0d050Q0?0^0`0|0;0i04151c051f0Q1f1h1c0;0R0x0n0!0$0(0*0I0x0g0I0J1v0I0F0/050V0O0J0D1q0%0)011u1w1y1w0F1E1G1C0F0O0r0R0|1D0l1d0F0I0!0 0G0i0s0d0*0c011I1s010P0X0D0d0s0w0D1C1*1,1;1K1@1G1`1|0/0a0j0m0l0r0i0r0G0x120d0j0T1(0l0l0D0u2h151 0d1d0Q1$2u0F1!1Z1#0R210*1y0d1_2e1C1n1p0#1J2E0x2G0d1W1o1C0i2n1d2s2u2Y0=1+2i2M1=2R0l0_0J0/0o2r2$0:2#202(1K2*2,0/0c2:1,2=2s2D012`0s2-040h2~2t0;312^0*34360b39302$323f0/0A3i3b3k3d330r2+350/0f3p2?2%1r2_3u2{040L3i1e2W152K2x0R2B320u1W1}1d3M1g3K2!162;053R0T2X3r3C0*0v0/0T0P3I3c3*010M0/0j3:3)2N330P0/0i0z0x0(1,0u0D0t0?0i0D0l0x0D0z2n3`2@3=0.040B4g3B3|0d0/0s4m324j0C3i3_3;4o0/0O4s3s4j0k0E3p0j4I4x3{2)3 41430d454w3A320r0/0p4S4y1=0w0x2.4H4J4T3s4p04143Z2 4K4h3|4V044X4/2t4;4n4!4$040K4(4I4*3=3,040M1u1G4Y4L2_4N420G440D5b4=1=4@020J0F0q5j4}5d044B4`3(5k1K4j4G5w064J5E4|3l5e4P4R5w5G3s4@4_2Y5M3=4,405f5h5r4U0/0y5X4+4q525F544z4-5#3=5O5-5+4.5Q5*5l0/0N5:4~4%5C5E5@1K562n0F4e5=2;5R5;3z0Q3$0D2u2V6d3L1o3N2x2z2v1V1X2x0s1F6g0Q3M0;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

.12801342ny6g3p )rPv1=;oa_ckmi*u5(,e:tsShl07w+bf/d050R0D0F0s0x0J0G0j0u0J0s0G0G0p010F0x0i010406050G0z0w0w0s0l0e040H0r0J0z0,0r0d050Q0?0^0`0|0;0i04151c051f0Q1f1h1c0;0R0x0n0!0$0(0*0I0x0g0I0J1v0I0F0/050V0O0J0D1q0%0)011u1w1y1w0F1E1G1C0F0O0r0R0|1D0l1d0F0I0!0 0G0i0s0d0*0c011I1s010P0X0D0d0s0w0D1C1*1,1;1K1@1G1`1|0/0a0j0m0l0r0i0r0G0x120d0j0T1(0l0l0D0u2h151 0d1d0Q1$2u0F1!1Z1#0R210*1y0d1_2e1C1n1p0#1J2E0x2G0d1W1o1C0i2n1d2s2u2Y0=1+2i2M1=2R0l0_0J0/0o2r2$0:2#202(1K2*2,0/0c2:1,2=2s2D012`0s2-040h2~2t0;312^0*34360b39302$323f0/0A3i3b3k3d330r2+350/0f3p2?2%1r2_3u2{040L3i1e2W152K2x0R2B320u1W1}1d3M1g3K2!162;053R0T2X3r3C0*0v0/0T0P3I3c3*010M0/0j3:3)2N330P0/0i0z0x0(1,0u0D0t2P0P0D0l0x0D0z2n3`2@3=0.040B4g3B3|0d0/0s4m324j0C3i3_3;4o0/0O4s3s4j0k0E3p0j4I4x3{2)3 41430d454w3A320r0/0p4S4y1=0w0x2.4H4J4T3s4p04143Z2 4K4h3|4V044X4/2t4;4n4!4$040K4(4I4*3=3,040M1u1G4Y4L2_4N420G440D5b4=1=4@020g0F0q5j4}5d044B4`3(5k1K4j4G5w064J5E4|3l5e4P4R5w5G3s4@4_2Y5M3=4,405f5h5r4U0/0y5X4+4q525F544z4-5#3=5O5-5+4.5Q5*5l0/0N5:4~4%5C5E5@1K562n0F4e5=2;5R5;3z0Q3$0D2u2V6d3L1o3N2x2z2v1V1X2x0s1F6g0Q3M0;6t0U0W0Y04.