Elever à la puissance n un réel

ade67 -  
 neobubble -
Bonjour,

A nouveau un problème de programmation! Je dois faire un programme tel que y=x^n où x est un réel. J'ai déjà tenté plusieurs solutions mais je ne trouves pas! J'ai compris qu'il faut faire x*x*x*x n fois mais je n'arrive pas à le traduire en programmation...
Quelqu'un a une idée?
A voir également:

16 réponses

Mahmah Messages postés 497 Statut Membre 125
 
Voilà.

Avec une approche récursive+:
Fonction Puissance( x, n )
    Si n = 0
        renvoyer 1
    Sinon
        xx = Puissance( x, n/2 )

        Si n est pair
            renvoyer xx * xx
        Sinon
            renvoyer xx * xx * x


cette version soulage le nombre de multiplications.

x^11 = x^5 * x^5 * x
x^5 = x^2 * x^2 * x
x^2 = x^1 * x^1
x^1 = x^0 * x^0 * x
x^0 = 1

soit 7 multiplications contre 11 attendues.

M.
1
picsou
 
Ma petite-fille doit, dans un devoir, trouver le résultat de 17 élevé à la puissance 2007. Idiot, peut-être, mais bien réel.
J'ai crée, en PHP, (langage où je suis débutant), un petit programme pour effectuer ce calcul mais le résultat est : INF
Je suppose que l'ordi ne peut pas afficher ce nombre, sans doute trop grand?
Voila mon programme et surtout, ne rigolez pas...

// <?
// $resultat=1;
// $puissance=2007;
// while ($puissance<>0)
// {
// $resultat=$resultat*17;
// $puissance=$puissance-1;
// }
// echo $resultat;
// ?>

evidemment sans les slashes.
Si quelqu'un peut nous aider, moi et ma petite fille lui serons infiniment reconnaissant...
1
Utilisateur anonyme > picsou
 
C'est en effet ce que l'on obtient à l'aide d'une calculatrice scientifique. Je ne vois pas comment calculer cette expression autrement pour obtenir une valeur :-s
1
neobubble
 
Bonjour picsou, je pense que ton type de variable ne prend pas en compte le nombre énorme qu'est 17^2007.
0
le père
 
elle est facile pout toi
Ne te laisse pas impressionner, ça tient plus de l'habitude que de l'intelligence (mais ça tu devais déjà t'en douter). J'ai posé la question à mon fils (15 ans) grand amateur de casse-têtes mathématiques et il m'a répondu en 10 s. Et sans papier, lui, alors que moi j'avais fait un brouillon pour te répondre.

2007 = 4*k+3
k représente un nombre entier(ici 501 car 4 * 501 +3 = 2007 ). C'est juste pour faire ressortir que quand on compte de 4 en 4 , 2007 et 3 c'est la même chose (pour les matheux : 2007 est congru à 3 modulo 4). Donc 17 puissance 2007 finit par le même chiffre que 2007 puissance 3
1
Mahmah Messages postés 497 Statut Membre 125
 
Bonjour,

Quelque soit le langage les solutions sont identiques.

Avec une approche itérative:
Résultat = 1;
Tant que Puissance >= 1
    Résultat = Résultat * x
    Puissance = Puissance - 1


Avec une approche récursive:
Fonction Puissance( x, n )
    Si n = 0
        renvoyer 1
    Sinon
        Renvoyer x * Puissance( x, n-1 )


M.

PS: Je réfléchis pour la version rigolote...
0
ade67
 
C'est bon ça marche!!
Merci =)!
0
le père
 
Bonjour

17 élevé à la puissance 2007

C'est vraiment ça qu'on lui demande ? ou le chiffre des unités de ça ? ou le reste de la division de ça par autre chose ?
0
picsou
 
en fait, on lui demande le chiffre des unités. Alors je completerais ma question en vous demandant si il existe une solution pour trouver ce chiffre des unités sans faire ce calcul idiot de 17 puissance 2007;
Malgré tout j'aimerais savoir pourquoi mon ordi ne peux pas m'afficher (ou me calculer) le resultat complet?
Merci d'avance de votre réponse.
0
le père
 
ça sent les révisions pour le concours kangourou, ça...

17 à la puissance 2007 est un nombre beaucoup trop grand (environ 3,24 fois 10 puissance 2469) pour les nombres standard de PHP
Mais on peut peut-être le faire avec certaines bibliothèques : voir https://www.php.net/manual/fr/ref.bc.php

Pour le chiffre des unités, c'est facile.
Il faut d'abord remarquer que le chiffre des unités d'une multiplication ne dépend que des chiffres des unités des nombres qu'on multiplie. Donc pas besoin de manipuler des grands nombres, juste les chiffres des unités.
Ensuite, il faut en déduire que la suite des chiffres des unités obtenus à chaque nouvelle multiplication par 17 est périodique : on retombera forcément sur le même chiffre des unités en au plus 10 multiplications, puisqu'il n'y a que 10 chiffres possibles

17 puissance 0 -> 1 finit par 1
17 puissance 1 finit par 7
17 puissance 2 finit comme 7x7 -> 9
17 puissance 3 finit comme 7x9 -> 3
17 puissance 4 finit comme 7x3 -> 1
17 puissance 5 finit comme 7x1 -> 7
17 puissance 6 finit comme 7x7 -> 9

la périodicité est 4
2007 = 4*k+3
=> 17 puissance 2007 finit comme 17 puissance 3 -> 3

vérifie quand même, j'ai pu me tromper
0
picsou > le père
 
demo magistrale pour moi, même si elle est facile pout toi. (Ne pas oublier que j'ai obtenu un BAC littéraire en 1965, sans mise à niveau depuis).

J'ai à peu près suivi le raisonnement, cependant la ligne suivante m'interpelle:
2007 = 4*k+3
Que représente k ?
Une telle incompétence de ma part est sans doute inadmissible, sans il faut que je comprenne tout pour expliquer ensuite.
Encore grand, grand merci.
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
picsou
 
ouais bé pour moi c'est pas gagné.
Je vais passer une partie de la nuit à cogiter ça.
En fait pour ma petite fille de 13 ans, le résultat n'a pas vraiment d'importance; c'est plutôt la demarche pour rechercher la solution...
A mon âge, je n'avais encore pas utilisé de forum pour demander de l'aide, alors j'ai appris quelque chose.
Encore MERCI à toi et ton fils (un costaud celui-là).
Joyeuses fêtes de Pâques
0
le père
 
A mon âge
Je ne suis pas beaucoup plus jeune. Mon âge sera égal aux deux derniers chiffres de mon année de naissance dans 4 ans :-D
Alors j'ai quel âge ?
0
picsou
 
Tu as 56 ans car
2008+4-56=1956

J'accepte la tournée de Amigo mais où? chez moi alors? j'habite dans un endroit ou le code commune est 217 et le département possède bien involontairement un bateau dont il ne sait comment se débarasser.
qu'elle est donc cette commune ?
0
amigo
 
Bonjour,

Je parie la tournée sur 54 ans

Ciao
0
amigo
 
Je vois,

Fluctuat nec mergitur, n'est ce pas? Moi je suis à 350km environ et meme avec un TGV qui bat le record du monde, c'est pas à coté. A ta santé quand même.
0
le père
 
Désolé, vous avez faux tous les deux.
Mais je t'aurais rencontré avec plaisir, dire que j'étais à Douarnenez il y a peu de temps.
0
picsou
 
mais oui!!! mais c'est ,bon sang, bien sûr: tu as 52 ans j'avais oublié d'enlever les 4 ans . Et Douarnenez c'est quand même un petit peu loin pour l'apéro....
0
amigo
 
Tu vois, questions devinettes, tu n'est pas meilleur que moi. Le TGV qui a battu le record du monde de vitesse, c'est sur la ligne Paris - Strasbourg. De chez moi, par beau temps, on peut voir la ligne bleue des Vosges.
Mais c'est vrai, j'aurais préféré voir la mer. :).
0
le père
 
Bravo Picsou

C'est vrai que c'est un peu loin de Douarnenez pour un apéro, mais à moins de 100 km quand même.

Désolé amigo, je crains que ton fluctuat nec mergitur ne soit un peu à côté de la plaque. De 500 km ? ce qui fait 850 de chez toi.
Dire que j'étais à St Dié il y a 15 j, moi qui ne voyage quasiment jamais !

Moi je suis d'Angers, je le dis en bon français sinon nous sommes repartis pour une prise de tête...
0
amigo
 
Ok, j'étais à coté de la plaque, je pensais que tu habitais dans la région parisienne, quant à moi j'habite près de METZ en Moselle.
0
picsou
 
et moi en Vendée.
Le bateau dont je parlais est ce cargo échoué aus sables d'olonne et dont la presse s'est abondamment fait l'écho...même TF1.
j'habite à 50 kms
0
le père
 
Evidemment, partant d'Angers en allant à Douarnenez, je ne me rapproche pas de la Vendée !

J'avais donc tout faux aussi ! Je pensais au Clémenceau que je crois encore être à Brest (mais je suis peut-être en retard...)
D'autant plus inexcusable que je suis Pouzaugeais d'origine !
0
puissance
 
calculer svp 56+6+ et dnner le rep en form 5n merci
0
domino
 
32562*690030 élevé à la puissance 0.1671/52572
0
Jujub'
 
Bonjour, j'ai un casse-tête de mon prof de maths à résoudre et je n'y arrive pas. Pouvez-vous m'aider ? --> "Trouver le chiffre des unités de a^n sachant que a et n appartiennent aux entiers naturels (N)". Voilà le problème, si quelqu'un pourrait m'aider et me donner la solution, je vous en remercie. :)
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Euh, je ne vois pas quoi c'est un casse-tête...
En plus tu n'as pas un chiffre mais plusieurs chiffres puisque si tu prends 1^1 t'obtiens 1 comme réponse, si tu fais 2^1, t'obtiens 2, etc.
Donc tu as tous les chiffres de 0 à 9.
A mon avis, t'as mal compris la question ou le prof s'est trompé, ou tu l'as mal reporté sur le forum.
En plus ici ce n'est pas un forum de math...
0