Calcul de 2**n avec une boucle conditionnelle
Calcul de 2**n avec une boucle conditionnelle
Bonjour,
On me demande de calculer 2**n en utilisant utilisant une boucle for et une boucle conditionnelle.
Pour la boucle for, j'ai le programme suivant:
def entier(e,n):
R=1
for i in range(0,n):
R=R*e
return R
Mais pour ce qui est de la boucle conditionnelle if je ne sais pas comment m'y prendre.
Merci par avance pour votre aide.
On me demande de calculer 2**n en utilisant utilisant une boucle for et une boucle conditionnelle.
Pour la boucle for, j'ai le programme suivant:
def entier(e,n):
R=1
for i in range(0,n):
R=R*e
return R
Mais pour ce qui est de la boucle conditionnelle if je ne sais pas comment m'y prendre.
Merci par avance pour votre aide.
Re: Calcul de 2**n avec une boucle conditionnelle
et e est initialisé comment ?
Celui qui entre dans le moule de la pensée unique ne doit pas s'étonner d'en sortir avec la pensée unique d'une moule.
Ou si vous préférez, plus on essaie de rentrer dans le moule plus on ressemble à une tarte.
Ou si vous préférez, plus on essaie de rentrer dans le moule plus on ressemble à une tarte.
Re: Calcul de 2**n avec une boucle conditionnelle
Ici, e prend la valeur 2.
Re: Calcul de 2**n avec une boucle conditionnelle
Essaie de ne pas utiliser de variable i, juste la variable n.
Lycée Édouard Branly 2015-2018
LLG HX1 2018-2019
LLG MP*3 2019-2020
Ulm 2020-?
LLG HX1 2018-2019
LLG MP*3 2019-2020
Ulm 2020-?
Re: Calcul de 2**n avec une boucle conditionnelle
Au passage, l'algorithme utilisé n'est pas optimal. La complexité de cet algorithme est linéaire, en $ O(n) $, il est possible de calculer une puissance avec une complexité lograithmique $ O(log(n)) $ en représentant $ n $ en base 2 et en remarquant que si $ n=\sum_{k=0}^{s}b_k2^k $ avec $ b_k\in\{0,1\} $, alors $
p^n=\prod_{k,b_k=1}p^{2^k}
$ et on calcule $ p^{2^{k+1}} $ en passant $ p^{2^k} $ au carré.
p^n=\prod_{k,b_k=1}p^{2^k}
$ et on calcule $ p^{2^{k+1}} $ en passant $ p^{2^k} $ au carré.
Ancien ENS Cachan (maths) 1999--2003
Enseignant-Chercheur à l'Enseirb-Matmeca (Bordeaux INP) filière matmeca
Les opinions exprimées ci-dessus sont miennes et ne reflètent pas la position officielle de l'école dans laquelle j'enseigne.
Enseignant-Chercheur à l'Enseirb-Matmeca (Bordeaux INP) filière matmeca
Les opinions exprimées ci-dessus sont miennes et ne reflètent pas la position officielle de l'école dans laquelle j'enseigne.
Re: Calcul de 2**n avec une boucle conditionnelle
?!?la boucle conditionnelle if
Ca n'existe pas.
Qu'est ce que tu appelles une "boucle conditionnelle"?? un while?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Calcul de 2**n avec une boucle conditionnelle
On te demande 2**n donc inutile d'introduire une variable. Cela dit ça rend ton code plus general.def entier(e,n):
R=1
for i in range(0,n):
R=R*e
return R
Quelle idée de l'appeller e??? x ok mais e???
Quelle idée d'appeller la function "entier"??? le nom d'un function doit refléter ce qu'elle fait. Ici tu peux l'appeller PowerOfTwo par exemple.
Le nom des variables est très important dans un code car de mauvais noms rendent la chose illisible.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Calcul de 2**n avec une boucle conditionnelle
Bonsoir,
Oui effectivement c'était une boucle while qu'il fallait utiliser. J'ai choisi d'appeler ma variable e car elle faisait référence à un entier qui ici est 2.
Le choix du nom de ma fonction n'était en effet pas judicieux.
Merci pour votre aide.
Oui effectivement c'était une boucle while qu'il fallait utiliser. J'ai choisi d'appeler ma variable e car elle faisait référence à un entier qui ici est 2.
Le choix du nom de ma fonction n'était en effet pas judicieux.
Merci pour votre aide.
Re: Calcul de 2**n avec une boucle conditionnelle
e comme entier Quand dira t on aux étudiants de coder en anglais?!?
Un entier qui ne mérite pas de nom plus précis, c'est plutôt I,j,k,l,m,n,p...
Un float qui ne mérite pas de nom plus précis, c'est plutôt x, y, u t, ou des choses de ce genre.
e c'est plutôt un epsilon.
M c'est une matrice.
et donc ce code avec une boucle while?
Un entier qui ne mérite pas de nom plus précis, c'est plutôt I,j,k,l,m,n,p...
Un float qui ne mérite pas de nom plus précis, c'est plutôt x, y, u t, ou des choses de ce genre.
e c'est plutôt un epsilon.
M c'est une matrice.
et donc ce code avec une boucle while?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.