|
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Guimzo
Inscrit le: 02 Juin 2012 Messages: 209
|
Posté le: 24 Mai 2015 12:40 Sujet du message: différence de carrés p = x² - y² |
|
|
Bonjour ALS,
Me revoilà pour une nouvelle méthode: )
J'espère que ça va et que je ne vous ai pas trop manqué : )
Alors je viens solliciter votre aide s'il vous plaît pour un nouveau algorithme, qui a pour but de factoriser un nombre donné sous forme de différence de deux carrés par une méthode "intuitive".
Le programme consisterait à faire comme ça :
Soit p =77.
1. On calcule floor(sqrt((p)) ici floor(sqrt(77)) = 8
2.On calcule q:= (floor(sqrt((p)))² - (floor(sqrt((p))-1)²
Ici q= 8²-7² = 15
3. On calcule a:= p- floor(sqrt((p))²
Ici a= 77-8² = 77 - 64 = 13
4. C'est là que le programme à proprement parler commence véritablement :
On fait les soustractions successives de a-(q+2)-(q+4)-(q+6)...
Jusqu'à tomber sur la partie absolue d'un carré :
Exemple :
Pour 77 :
13-17 = -4 et abs( -4) est 2² Donc fin le résultat cherché est 4.
On vérifie et on a bien 77+4 = 81 qui est un carré et 4 aussi.
Sinon dans l'autre sens ça donnerait tout simplement ça :
77+( 1+3+5+7+9.....)= ..??
On s'arrête quand on tombe sur un carré.
J'ai préféré commencé à partir de p - floor(sqrt(p))² pour aller plus vite qu'en commençant par p lui même car dans certains cas c'est nettement plus long que le cas de 77 où on tombe directement en 2 itérations sur 77+(1+3) =81
Alors que par exemple pour 88447 on a :
88447+1+3+5+7+9+11+13+15+17+19+21+23+25+27+29+31+33+35+37+39+41+43+45+47+49+51+53+55+57+59+61+63+65+67+69+71+73+75+77+79+81+83+85+87+89+91+93+95+97+99+101+103+105+107+109+111+113+115+117+119+121+123+125 = 92416 qui est le carré de 304
et
88447-1-3-5-7-9-11-13-15-17-19-21-23-25-27-29-31-33-35-37-39-41-43-45-47-49-51-53-55-57-59-61-63-65-67-69-71-73-75-77-79-81-83-85-87-89-91-93-95-97-99-101-103-105-107-109-111-113-115-117-119-121-123-125-127-129-131-133-135-137-139-141-143-145-147-149-151-153-155-157-159-161-163-165-167-169-171-173-175-177-179-181-183-185-187-189-191-193-195-197-199-201-203-205-207-209-211-213-215-217-219-221-223-225-227-229-231-233-235-237-239-241-243-245-247-249-251-253-255-257-259-261-263-265-267-269-271-273-275-277-279-281-283-285-287-289-291-293-295-297-299-301-303-305-307-309-311-313-315-317-319-321-323-325-327-329-331-333-335-337-339-341-343-345-347-349-351-353-355-357-359-361-363-365-367-369-371-373-375-377-379-381-383-385-387-389-391-393-395-397-399-401-403-405-407-409-411-413-415-417-419-421-423-425-427-429-431-433-435-437-439-441-443-445-447-449-451-453-455-457-459-461-463-465-467-469-471-473-475-477-479-481-483-485-487-489-491-493-495-497-499-501-503-505-507-509-511-513-515-517-519-521-523-525-527-529-531-533-535-537-539-541-543-545-547-549-551-553-555-557-559-561-563-565-567-569-571-573-575-577-579-581-583-585-587-589-591-593-595-597-599-601-603-605-607
= 3969 qui est le carré de 63.
Alors que si on commence à partir de 88447-floor(sqrt(88447))² c'est à dire 238 on a :
238-595-597-599-601-603-605-607 = -3969 c'est à dire abs(3969)= un carré
Soit seulement 7 itérations.
Comment savoir qu'on reprend à partir de 595 les nombres impairs..?
On fait juste la différence floor(sqrt(88447))² - (floor(sqrt(88447))-1)²
= 297² - 296² = 593
Donc on reprend avec 593+2 c'est à dire 595.
J'ai l'impression que c'est pas très clair tout ça, mais je vous fais confiance ; alors ALS, si vous pouviez m'aider s'il vous plaît encore une éniéme fois : ) |
|
Revenir en haut de page |
|
|
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 25 Mai 2015 10:43 Sujet du message: |
|
|
Bonjour guimzo,
Le programme demandé est très simple à mettre en place:
Code: |
> p:=88447:
> q:= floor(sqrt(p))^2 - (floor(sqrt(p))-1)^2;
> a:= p- floor(sqrt(p))^2;
q := 593
a := 238
> r:=q:
> do
> r:=r+2:
> if is(sqrt(abs(a-r)),integer) then break end if:
> a:=a-r
> od:
> abs(a-r),p+abs(a-r);
3969, 92416
|
r évolue de 2 en 2 à partir de la valeur initiale q:
On sort de la boucle lorsque a-r est un carré c'est à dire lorsque sqrt(abs(a-r)) est entière.
Dans ce cas on affiche abs(a-r) et p+abs(a-r).
A plus tard. |
|
Revenir en haut de page |
|
|
Guimzo
Inscrit le: 02 Juin 2012 Messages: 209
|
Posté le: 25 Mai 2015 13:25 Sujet du message: |
|
|
Bonjour ALS,
Merci encore une fois : )
La séquence fonctionne nickel mais toujours le même probléme...des "grands" nombres...
Bonne fête de Pentecôte : )
À bientôt mon prof préféré : )
P.S.: Sinon, il y à une solution graphique pour factoriser p semi-premier, c'est en utilisant des fonctions avec les parties entières, plus précisément l'intersection de ces deux fonctions :
f(x)= floor(p/x)
g(x) = p / (floor(sqrt(x²-1))+1)
( La partie des courbes qui nous intéresse est entre la droite d'équation y=x et la droite d'équation y=2x )
Si vous tracez les deux courbes f(x) et g(x), vous remarquerez que les deux courbes se superposent sauf à un point précis où les courbes sont sur la même droite, et ces points sont solutions de la factorisation de p.
Graphique :
https://scontent-cdg2-1.xx.fbcdn.net/hphotos-xfp1/v/t1.0-9/11009178_1606605106286491_3715175350776020919_n.jpg?oh=69444fc072fdf19203c9e4546893bc31&oe=560D422A |
|
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.
|