Calcul de 2**n avec une boucle conditionnelle

Messages : 21

Enregistré le : 02 nov. 2019 09:36

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 : 4560

Enregistré le : 21 juin 2010 18:57

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.

Messages : 21

Enregistré le : 02 nov. 2019 09:36

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

Message par gallica » 11 nov. 2019 18:24

Ici, e prend la valeur 2.

Messages : 313

Enregistré le : 04 oct. 2017 15:58

Classe : MP

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

Messages : 1654

Enregistré le : 13 févr. 2018 09:22

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)
Les opinions exprimées ci-dessus sont miennes et ne reflètent pas la position officielle de l'école dans laquelle j'enseigne.

Messages : 11291

Enregistré le : 30 juil. 2008 16:59

Classe : Dr.-Ing

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 : 11291

Enregistré le : 30 juil. 2008 16:59

Classe : Dr.-Ing

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 : 21

Enregistré le : 02 nov. 2019 09:36

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 : 11291

Enregistré le : 30 juil. 2008 16:59

Classe : Dr.-Ing

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 : 71

Enregistré le : 06 févr. 2005 11:50

Classe : MPSI, PCSI, MP*, PC*

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