 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 15 Jan 2007 15:35 Sujet du message: triplets pythagoriens |
|
|
bonjour,
j'ai fait une procédure pour trouver tous les triplets pythagoriens (tels que x^2+y^2-z^2=0) entre 1 et un nombre donné.
seulement ça ne marche pas!
pour la valeur 16 de n j'obtiens pas de solution! :s
pourriez-vous m'aider? merci.
Code: | triplets:=proc(n::nonnegint)
local S,i,x,y,z;
S:=solve(x^2+y^2-z^2);
x:=subs(S,x);
y:=subs(S,y);
z:=subs(S,z);
if type(x,nonnegint) and x<=n and type(y,nonnegint) and y<=n and type(z,nonnegint) and z<=n then
print(`les solutions sont:`,x, y, z);
else
print(`pas de solution`);
end if;
end proc; |
|
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 15 Jan 2007 17:07 Sujet du message: |
|
|
Je ne sais pas si c'est une bonne idée d'avoir mis la ligne:
> S:=solve(x^2+y^2-z^2);
car vous ne précisez pas les inconnues recherchées.
Je vous suggère le corrigé suivant:
Code: |
n étant un entier >0 donné, écrire une procédure Pythagore( n::posint ) qui affiche tous les triplets [x, y, z] d'entiers pythagoriciens, c'est à dire tels que:
x^2+y^2 = z^2 avec 1 <= x 1 <= y et z <= n
On pourra remarquer que, pour z fixé, avec
z <= n on a alors x <= z et y <= z
> Pythagore:=proc(n::posint)
> local x,y,z;
> for z to n do
> for x to z do
> for y to z do
> if x^2+y^2=z^2 then print([x,y,z]) end if
> end do
> end do
> end do;
> end proc:
>
> Pythagore(16);
[3, 4, 5]
[4, 3, 5]
[6, 8, 10]
[8, 6, 10]
[5, 12, 13]
[12, 5, 13]
[9, 12, 15]
[12, 9, 15]
|
|
|
Revenir en haut de page |
|
 |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 16 Jan 2007 12:31 Sujet du message: |
|
|
bonjour,
merci beaucoup!
effectivement c'est beaucoup plus clair comme ça,
et ça marche! merci. |
|
Revenir en haut de page |
|
 |
F0rM
Inscrit le: 01 Mai 2006 Messages: 15
|
Posté le: 02 Fév 2007 20:13 Sujet du message: triplets pythagoriciens |
|
|
En réponse a ALS, un triplet pythagoricien est défini par 1 seul nombre pair sur les 3 nombres possibles. Aussi, tous les multiples de (3,4,5) sont rejetés, car ils ne constituent pas un truplet au sens de pythagore ; par contre, j'utilise souvent le triplet (6,8,10) pour le tracer sur une feuille et pour circonscrire des cercles.
Aussi, on doit se débarasser des symétries, (6,8,10) et (8,6,10) c'est le meme triplet en fait !
j'ai donc rajouté
if x^2+y^2 = z^2 AND x<y (symétrie) AND gcd(x,y)=1 (multiples) then print(x,y,z) end |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 03 Fév 2007 13:59 Sujet du message: |
|
|
Bonjour, tout dépend de la définition que vous donnez au départ. La mienne est conforme avec celle donnée dans Wikipédia http://fr.wikipedia.org/wiki/Triplet_pythagoricien alors que vous parlez plutôt des triplets pythagoriciens primitifs.
A plus tard. |
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - ©
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|