abdelkaderg54
Messages postés63Date d'inscriptiondimanche 18 mars 2007StatutMembreDernière intervention27 avril 2013
-
23 avril 2007 à 23:37
cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 septembre 2008
-
24 avril 2007 à 09:38
SAlut tt le monde...
Je suis un debutant en assembleur et je cherche les programmes suivants:
1/Resoudre une equation de 2emme degre.
2/Faire la permutation entre deux blocs de memoire le premier bloc commance de l'adresse 1 à 10 et l'autre de 12 à 22.
Et en fin j'aimerai bien avoire des reponses convencontes et merci
cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 septembre 20083 24 avril 2007 à 09:38
Bonjour,
Pour le point n°1, à savoir la résolution d'une équation polynomiale du second degré il faut:
- connaitre la méthode mathématique de résolution de ce type d'équation (dans l'espace des réels ou des complexes ?)
- soit de disposer d'un coprocesseur mathématique qui permet de travailler avec des nombres en virgule flottante et a la fonction racine carrée
- soit d'utiliser les algorithmes d'extraction de racines tel l'algorithme d'Héron d'Alexandrie
Il fonctionne ainsi
Soit n le nombre dont on veut extraire la racine et x0 une racine initiale comprise entre 1 et n
Il faut trouver x tel que x²= n soit 2x²=x²+n
Soit x=(x²+n)/(2x) soit x=(x+n/x)/2
On calcule la suite de:
xi+1=(xi+n/xi)/2
La convergence est rapide si x0 est judicieusement choisi (par exemple en ne prenant que les bits de poids fort et en n'en prenant que la moitié du nombre de bits. Par exemple pour n=25000 (base dix)
soit en binaire 11000011 0101000 (base 2). On gardera soit
x0 =1100001 (base 2) = 97 (base dix), soit 11000011 (base2) =195 (dix)
on aura
x1=10110001(base 2)=177 soit x1=10100001(base2)=161
x2=10111000(base 2)=184 soit x2=10011110(base2)=158
x3=10011111(base 2)=159 soit x3=10011110(base 2)=158
x4=10011110(base 2)=158 soit x4=10011110(base 2)=158
x5=10011110(base 2)=158 soit x5=10011110(base 2)=158
Il sera sans doute nécessaire de multiplier par un coefficient convenable si on veut avoir la précision souhaitée.
A+