Bien qu'en Perl, il existe une fonction «Sqrt» permettant de calculer la racine carré, il peut quand même être amusant d'effectuer se genre de calcul nous même. Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci :
- #!/usr/bin/perl
-
- sub SquareRoot() {
- my($X) = @_;
- if($X==0.0) {
- return 0.0;
- } else {
- $M=1.0;
- $XN=$X;
- while($XN>=2.0) {
- $XN=0.25*$XN;
- $M=2.0*$M;
- }
- while($XN<0.5) {
- $XN=4.0*$XN;
- $M=0.5*$M;
- }
- $A=$XN;
- $B=1.0-$XN;
- do {
- $A=$A*(1.0+0.5*$B);
- $B=0.25*(3.0+$B)*$B*$B;
- } while($B>=1.0E-15);
- return $A*$M;
- }
- }
-
- $R=2.0;
- while($R<=1000.0) {
- print "Sqrt(".$R.")=".&SquareRoot($R)."\n";
- $R*=$R;
- }
on obtiendra le résultat suivant :
Sqrt(2)= 1.41421 1.41421Sqrt(4)= 2.0000 2.0000
Sqrt(16)= 4.0000 4.0000
Sqrt(256)= 16.0000 16.0000
Voir également
Dernière mise à jour : Jeudi, le 17 janvier 2019