Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Algorithme, puissance

Posté par
Iderden
09-10-17 à 13:23

Bonjour à la communauté !

Toujours avec mes problèmes d'algorithme...

Je cherche à écrire un algorithme me permettant de trouver l'entier n tel que 2^{2^n} \ge 10^{10}.

J'avoue en avoir marre de galérer sur ces questions-là, donc si vous pouviez me guider, que je puisse comprendre le truc.

Merci !

Posté par
sanantonio312
re : Algorithme, puissance 09-10-17 à 13:35

Bonjour,
Quel problème est ce que ça te pose?
Tu peux peut être  ommencer par simplifier là question posée à l'aide du logarithme décimal.
Ensuite, une boucle sur n avec un test.

Posté par
Iderden
re : Algorithme, puissance 09-10-17 à 13:48

Bonsoir,

J'aurais dû le préciser, mais je ne souhaite pas utiliser le logarithme, ce qui de toute façon n'enlève rien au fond du problème.

C'est exactement ça, une boucle sur n avec un test, oui.
Intuitivement, c'est logique.
Je ne sais pas comment l'écrire.

Je propose ceci :

variable
n : entier
début algorithme
Calculer 2^(2^n) pour n=0
Tant que
2^(2^n) < 10^10
Ajouter 1 à n
Fin Tant que
Lorsque 2^(2^n)>10^10

Posté par
Glapion Moderateur
re : Algorithme, puissance 09-10-17 à 14:02

Lorsque 2^(2^n)>10^10 à la fin est fantaisiste
simplement : afficher n

(et au début mettre plus simplement n = 1, à quoi ça sert de mettre Calculer 2^(2^n) pour n=0 ? )

Posté par
Glapion Moderateur
re : Algorithme, puissance 09-10-17 à 14:05

Cela dit comme c'est des grands nombres, ça peut créer des dépassements de capacité suivant le langage dans lequel ça sera codé. Par exemple je ne sais pas si ça passe dans algobox (d'où l'idée de faire le test sur les logarithmes qu'a proposée sanantonio312).

Posté par
alb12
re : Algorithme, puissance 09-10-17 à 14:43

Iderden @ 09-10-2017 à 13:23

Bonjour à la communauté !
Je cherche à écrire un algorithme me permettant de trouver l'entier n tel que 2^{2^n} \ge 10^{10}.


tu cherche un algo ou tu cherches n ?
parce que n n'est pas tres grand !

Posté par
Iderden
re : Algorithme, puissance 09-10-17 à 15:24

Effectivement, n n'est pas très grand.

Je cherche simplement à comprendre comment l'écrire sous forme algorithmique.

Donc avec les corrections de Glapion :

variable
n : entier
début algorithme
n=1
Tant que
2^(2^n) < 10^10
Ajouter 1 à n
Fin Tant que
Afficher n

C'est plus correct ?

Posté par
Iderden
re : Algorithme, puissance 09-10-17 à 15:38

Avec Algobox, ça ne tourne pas, j'essaie de voir pourquoi. Voilà pour l'instant ce que j'ai rentré :

VARIABLES
  n EST_DU_TYPE ENTIER

DEBUT_ALGORITHME
n=1
TANT_QUE (2^(2^n)<10^10) FAIRE
AJOUTER 1 à n
FIN_TANT_QUE
AFFICHER n
FIN_ALGORITHME

Posté par
mathafou Moderateur
re : Algorithme, puissance 09-10-17 à 16:00

bonjour,

a^b ne veut pas dire a puissance b sur algobox
mais a ou exclusif b en binaire

pour a puissance b c'est pow(a, b)

Posté par
Iderden
re : Algorithme, puissance 09-10-17 à 16:02

Merci !

Posté par
Iderden
re : Algorithme, puissance 09-10-17 à 16:03

FONCTIONS_UTILISEES
VARIABLES
  n EST_DU_TYPE ENTIER

DEBUT_ALGORITHME
n=1
TANT_QUE (pow(2,pow(2,n))<pow(10,10) FAIRE
AJOUTER 1 à n
FIN_TANT_QUE
AFFICHER n
FIN_ALGORITHME

Posté par
Iderden
re : Algorithme, puissance 09-10-17 à 16:12

Si vous avez des idées, là où il y a un dysfonctionnement...

Posté par
mathafou Moderateur
re : Algorithme, puissance 09-10-17 à 16:28

de type ENTIER ça n'existe pas

il n'existe que les types NOMBRE, CHAINE, LISTE

n=1 ça n'existe pas

c'est n PREND_LA_VALEUR 1

AJOUTER 1 à n ça n'existe pas
c'est n PREND_LA_VALEUR n+1

bref
avec Algobox (c'est son intérêt et c'est même le seul) on ne TAPE pas des commandes en imaginant des trucs qui n'existent pas ou en faisant des fautes de frappe, remplacer des minuscules par des majuscules ou le contraire, oublier un _ etc

on utilise les commandes toutes faites de l'interface "à cliquer" de Algobox...

Posté par
alb12
re : Algorithme, puissance 09-10-17 à 18:11

il serait peut etre temps de passer à un autre langage

Posté par
mathafou Moderateur
re : Algorithme, puissance 09-10-17 à 18:25

cela n'empêchera pas l'exigence de rigueur dans l'écriture, en particulier le respect des normes d'écritures, répertoire de fonctions etc du langage choisi quel qu'il soit ....

et puis pour te faire encore plus souffrir, alb12, je proposerais bien Scratch ... (je plaisante)

Posté par
alb12
re : Algorithme, puissance 09-10-17 à 18:29

dans les offres d'emploi on voit rarement "competences en algobox"
En revanche "competences en python" devient la regle ...

Posté par
Glapion Moderateur
re : Algorithme, puissance 09-10-17 à 18:31

pauvre alb12 qui voulait caser son Xcas chouchou. Pour changer.

Posté par
alb12
re : Algorithme, puissance 09-10-17 à 18:44

Xcas est compatible python

Posté par
Glapion Moderateur
re : Algorithme, puissance 09-10-17 à 18:48

ha, je suis rassuré alors

Posté par
alb12
re : Algorithme, puissance 09-10-17 à 18:50

et tout ça sans debourser un kopeck

Posté par
Iderden
re : Algorithme, puissance 10-10-17 à 03:47

Bonjour tout le monde,

Merci de votre aide !

Le programme suivant, corrigé à l'aide de vos indications, semble tourner, mais ne ressort pas de n spécifique.
Comme le suggérait Glapion, c'est peut-être dû aux grands nombres mis en jeu.


1   FONCTIONS_UTILISEES
2   VARIABLES
3     n EST_DU_TYPE NOMBRE
4   DEBUT_ALGORITHME
5     AFFICHER n
6     n PREND_LA_VALEUR 1
7     TANT_QUE (pow(2,pow(2,n))<pow(10,10) FAIRE
8     n PREND_LA_VALEUR n+1
9     FIN_TANT_QUE
10  FIN_ALGORITHME

Posté par
Iderden
re : Algorithme, puissance 10-10-17 à 04:18

Un autre qui ne fonctionne pas :

FONCTIONS_UTILISEES
VARIABLES
n EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
n PREND_LA_VALEUR 1
TANT_QUE 10*log(10)/(log(2)*log(2)) < n FAIRE
n PREND_LA_VALEUR n+1
FIN_TANT_QUE
AFFICHER n
FIN_ALGORITHME

Posté par
sanantonio312
re : Algorithme, puissance 10-10-17 à 06:29

A 3h47, tu n'as pas affiché n à la fin.

Posté par
sanantonio312
re : Algorithme, puissance 10-10-17 à 06:35

A 4h18: d'où sort 10log (10)/log (2)*log (2)?
Ça fait un peu plus de 110. Tu n'entres donc jamais dans la boucle "Tant que".

Posté par
mathafou Moderateur
re : Algorithme, puissance 10-10-17 à 09:45

ces histoire de logarithme sont fausses, on était parti sur des puissances pow() qui sont justes


certes on peut aussi calculer avec des logarithmes, mais le calcul que tu fais avec n'a rien à voir avec le vrai.

la condition cherchée est

2^{2^n} \ge 10^{10}.

si on prend le logarithme (décimal) des deux membres ça fait
2^n \log 2 \ge 10

2^n \ge \dfrac{10}{\log 2}

reprenons une nouvelle fois le logarithme
n\log 2 \ge \log 10 - \log(\log 2) = 1 - \log(\log 2) avec des logarithmes décimaux

\boxed{n \ge \dfrac{1-\log(\log 2)}{\log 2}}

il n'y a alors plus besoin d'aucun programme du tout puisque le membre de droite est une simple valeur numérique que l'on peut calculer directement et c'est tout !!
(résolution mathématique du problème au lieu d'utiliser un algorithme)



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1741 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !