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, 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\]
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 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 soit 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)
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(lbsSetph4rd;5f10uma"ov+w7g,_/3=in 6k:)y *2Pc030g0a0b0o0B06080J0N060o08080A0p0b0B0c0p020D03080m0n0n0o0f0I02090q060m0'0q0C030y0.0:0=0@0,0c020317101a0y170,0g0B0r0W0Y0!0$0d0B0v0d061o0d0b0*030R07060a1j0Z0#0p1n1p1r1p0b1x1z1v0b0f180b0d0W0`080c0o0C0$0L0p1B1l0p0j0T0a0C0o0n0a1v1U1W1#1D1'1z1*1,0*040J0M0f0q0c0q080B0}0C0J0P1S0f0f0a0N24101/0C180y1Q2h1N1P1O1w0g1;0$1r0C1)211v1g1i0X1C2r0B2t0C0q2x1v0c2a182f2h2L0-1V252z1$2E0f0;060*0k2e2P0+2O1:2R1D2T2V0*0L2Z1W2#2f2q0p2)0o2W020z2-2g0,2:2'0$2?2^0e2{2/2P2;310*0i342}362 2=0q2U2@0*0E3b2$2Q1k2(3g2*020u341b2J102x2k0g1P2p3e0N2F1-183y193w2N112!033E0P2K3d3o0$0F0*0P0j340J3m370j0*0c0m0B0!1W0N0a0x0.0c0a0f0B0a0m2a3u2~3T0p0)02053{3S2A2=0*0o422%3}3 0w3Z3#3e0C0*07483n443 0H0G3b0J4q3!3|444g023(3*083,0a4d4t1$0q0*0A4C431$0n0B2X4p4r4e3}4v0 3M2.4s4J1D4F024H4U2g4W49444L0*0l4O4q4Q443V020t1n1z4I4(2S3'3)3+0C3-4_4k4E0*00060b0h51374h4j2;3 4o4$0+4r5i4'522(4|4y4A593e4Z4#2L5k5a4w4}4z4 4B5g5v5r0*0K5q4R464-5j4/4{024T5u5M4Y4G5H4u0*5P2!5D3}4Z0s5U4K4M022Y5g0D5i5R3U0*2a0b3_5X4V5.455O3l0y3P0a2h2I5 3x1h3z2k2n2i0o1y620y3y0,6c0Q0S0U02.

###(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(lbsSetph4rd;5f10uma"ov+w7g,_/3=in 6k:)y *2Pc030g0a0b0o0B06080J0N060o08080A0p0b0B0c0p020D03080m0n0n0o0f0I02090q060m0'0q0C030y0.0:0=0@0,0c020317101a0y170,0g0B0r0W0Y0!0$0d0B0v0d061o0d0b0*030R07060a1j0Z0#0p1n1p1r1p0b1x1z1v0b0f180b0d0W0`080c0o0C0$0L0p1B1l0p0j0T0a0C0o0n0a1v1U1W1#1D1'1z1*1,0*040J0M0f0q0c0q080B0}0C0J0P1S0f0f0a0N24101/0C180y1Q2h1N1P1O1w0g1;0$1r0C1)211v1g1i0X1C2r0B2t0C0q2x1v0c2a182f2h2L0-1V252z1$2E0f0;060*0k2e2P0+2O1:2R1D2T2V0*0L2Z1W2#2f2q0p2)0o2W020z2-2g0,2:2'0$2?2^0e2{2/2P2;310*0i342}362 2=0q2U2@0*0E3b2$2Q1k2(3g2*020u341b2J102x2k0g1P2p3e0N2F1-183y193w2N112!033E0P2K3d3o0$0F0*0P0j340J3m370j0*0c0m0B0!1W0N0a0x0.0c0a0f0B0a0m2a3u2~3T0p0)02053{3S2A2=0*0o422%3}3 0w3Z3#3e0C0*07483n443 0H0G3b0J4q3!3|444g023(3*083,0a4d4t1$0q0*0A4C431$0n0B2X4p4r4e3}4v0 3M2.4s4J1D4F024H4U2g4W49444L0*0l4O4q4Q443V020t1n1z4I4(2S3'3)3+0C3-4_4k4E0*00060b0h51374h4j2;3 4o4$0+4r5i4'522(4|4y4A593e4Z4#2L5k5a4w4}4z4 4B5g5v5r0*0K5q4R464-5j4/4{024T5u5M4Y4G5H4u0*5P2!5D3}4Z0s5U4K4M022Y5g0D5i5R3U0*2a0b3_5X4V5.455O3l0y3P0a2h2I5 3x1h3z2k2n2i0o1y620y3y0,6c0Q0S0U02.
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 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 soit 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)
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(lbsSetph4rd;5f10uma"ov+w7g,_/3=in 6k:)y *2Pc030g0a0b0o0B06080J0N060o08080A0p0b0B0c0p020D03080m0n0n0o0f0I02090q060m0'0q0C030y0.0:0=0@0,0c020317101a0y170,0g0B0r0W0Y0!0$0d0B0v0d061o0d0b0*030R07060a1j0Z0#0p1n1p1r1p0b1x1z1v0b0f180b0d0W0`080c0o0C0$0L0p1B1l0p0j0T0a0C0o0n0a1v1U1W1#1D1'1z1*1,0*040J0M0f0q0c0q080B0}0C0J0P1S0f0f0a0N24101/0C180y1Q2h1N1P1O1w0g1;0$1r0C1)211v1g1i0X1C2r0B2t0C0q2x1v0c2a182f2h2L0-1V252z1$2E0f0;060*0k2e2P0+2O1:2R1D2T2V0*0L2Z1W2#2f2q0p2)0o2W020z2-2g0,2:2'0$2?2^0e2{2/2P2;310*0i342}362 2=0q2U2@0*0E3b2$2Q1k2(3g2*020u341b2J102x2k0g1P2p3e0N2F1-183y193w2N112!033E0P2K3d3o0$0F0*0P0j340J3m370j0*0c0m0B0!1W0N0a0x2C0j0a0f0B0a0m2a3u2~3T0p0)02053{3S2A2=0*0o422%3}3 0w3Z3#3e0C0*07483n443 0H0G3b0J4q3!3|444g023(3*083,0a4d4t1$0q0*0A4C431$0n0B2X4p4r4e3}4v0 3M2.4s4J1D4F024H4U2g4W49444L0*0l4O4q4Q443V020t1n1z4I4(2S3'3)3+0C3-4_4k4E0*000v0b0h51374h4j2;3 4o4$0+4r5i4'522(4|4y4A593e4Z4#2L5k5a4w4}4z4 4B5g5v5r0*0K5q4R464-5j4/4{024T5u5M4Y4G5H4u0*5P2!5D3}4Z0s5U4K4M022Y5g0D5i5R3U0*2a0b3_5X4V5.455O3l0y3P0a2h2I5 3x1h3z2k2n2i0o1y620y3y0,6c0Q0S0U02.