Exponentiation rapide

Description

Ce code donne la valeure de l'exposant d'un nombre, l'ordre de grandeur et la rapidité sont de l'ordre de l'exposant pas défaut de Windows, il est possible de le vérifier avec le zip qui contient les deux facons de calculer et qui mesure le temps d'execution.

MERCI A PCPT POUR QueryPerformance AINSI QUE POUR SES NOMBREUSES CONTRIBUTIONS SUR LE FORUM VBFRANCE.

Source / Exemple :


Function EXPO(x As String, n As Integer) As String

r = 1  'initialisation de ce qui sera le résultat

If n = 0 Then
   EXPO = 1
End If

'Nous prendrons par convention 0^0=1

Do

   If n Mod 2 = 0 Then
      n = n / 2
      x = x * x
      
   Else: n = (n - 1) / 2
      r = r * x
      
      If n <> 0 Then
         x = x * x
      
      End If
     
   End If
   
   
Loop While n <> 0

'Cette méthode est tres simple à comprendre sur un exemple
'13^5,  5 est impair et 13^5 = 13*(13^2)^2

EXPO = r

End Function

Conclusion :


Cette méthode est assez rapide mais elle n'est pas parfaite, en la mettant sur ce sit je veux bien sur la partager mais j'espere aussi qu'on me donnera des conseils afin d'améliorer encore la vitesse de calcul.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.