Calcul de 2**n avec une boucle conditionnelle

Messages : 0

Inscription : 02 nov. 2019 09:36

Profil de l'utilisateur : Élève de lycée

Calcul de 2**n avec une boucle conditionnelle

Message par gallica » 10 nov. 2019 19:13

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.

Messages : 2326

Inscription : 21 juin 2010 18:57

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par padpad » 10 nov. 2019 22:48

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.

Messages : 0

Inscription : 02 nov. 2019 09:36

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par gallica » 11 nov. 2019 18:24

Ici, e prend la valeur 2.

Messages : 0

Inscription : 04 oct. 2017 15:58

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par Errys » 12 nov. 2019 18:53

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-?

Messages : 0

Inscription : 13 févr. 2018 09:22

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par matmeca_mcf1 » 12 nov. 2019 19:53

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é.
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.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par fakbill » 13 nov. 2019 16:18

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é.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par fakbill » 13 nov. 2019 16:24

def entier(e,n):
R=1
for i in range(0,n):
R=R*e
return R
On te demande 2**n donc inutile d'introduire une variable. Cela dit ça rend ton code plus general.
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é.

Messages : 0

Inscription : 02 nov. 2019 09:36

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par gallica » 14 nov. 2019 19:02

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.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Calcul de 2**n avec une boucle conditionnelle

Message par fakbill » 15 nov. 2019 13:43

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?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

YS1

Messages : 13

Inscription : 06 févr. 2005 11:50

Profil de l'utilisateur : Enseignant (CPGE)

Re: Calcul de 2**n avec une boucle conditionnelle

Message par YS1 » 20 nov. 2019 12:54

fakbill a écrit :
15 nov. 2019 13:43
Quand dira t on aux étudiants de coder en anglais?!?
Quand ils seront en école d'ingénieur et qu'il parleront anglais un peu mieux que des vaches espagnoles.

Répondre