Page 1 sur 1
[R] Fonction puissance
Posté : lun. 27 déc. 2010 19:13
par milka
Bonjour a toutes et a tous, je me suis remis a AutoIt il y a peu de temps et j'aurais voulu faire un programme qui utilise la fonction mathématique "puissance". Étant donné qu'il n'y a pas de fonction existante, j'en ai réalisé une avec une décrémentation mais voilà tout, j'aurais aimé savoir si vous aviez une fonction semblable, sans incrémentation ni décrémentation.
Merci d'avance, milka.
Re: [..] Fonction puissance
Posté : lun. 27 déc. 2010 19:23
par matwachich
Essay ça:
PS: Faut apprendre à lire l'aide, et pas seulement "Function Reference"!
Re: [..] Fonction puissance
Posté : lun. 27 déc. 2010 19:30
par milka
Ohhhhh !
Je te remercie beaucoup ! Je n'avais jamais remarqué cette fonction =$
Merci beaucoup, milka.
Re: [R] Fonction puissance
Posté : lun. 27 déc. 2010 21:39
par Tlem
Heuuuu ...
Rien à voir avec les fonctions.
Le symbole de la puissance est un simple opérateur.
Vous n'avez sans doute pas lu ceci :
http://www.autoitscript.fr/autoit3/docs ... rators.htm
Re: [R] Fonction puissance
Posté : mar. 28 déc. 2010 10:05
par timmalos
Je profite de ce sujet pour attaquer un peu ceux qui prônent le recursif: Un test simple le calcul de puissance, voilà de fonctions que je viens de coder, une de manière iterative, l'autre de manière recursive. Les resultats sont sans appel, le recursif est toujours 2 fois plus long.
Code : Tout sélectionner
$t = TimerInit()
ConsoleWrite(_puissance_iterative(13,13) & @CRLF)
ConsoleWrite(TimerDiff($t) & @CRLF)
$t = TimerInit()
ConsoleWrite(_puissance_recursive(13,13) & @CRLF)
ConsoleWrite(TimerDiff($t) & @CRLF)
Func _puissance_iterative($nombre,$puissance)
If $puissance = 0 Then
$result = 1 ; convention mathematique
Else
$result = 1
For $i = 1 to $puissance
$result *= $nombre
Next
EndIf
Return $result
EndFunc
Func _puissance_recursive($nombre,$puissance)
If $puissance = 0 Then
$result = 1 ; convention mathematique
ElseIf $puissance = 1 Then
$result = $nombre
Else
$result = $nombre * _puissance_recursive($nombre,$puissance-1)
EndIf
Return $result
EndFunc
Re: [R] Fonction puissance
Posté : mar. 28 déc. 2010 10:54
par SrBelial
très bonne comparaison timmalos !!
j'en profite tant qu'on est sur ce cas d'école :
il est possible de réduire encore la complexité de l'exemple en réduisant significativement le nombre d'opérations ainsi :
plutôt que de traduire 2^100 en 2*2^99 = 2*2*2^98 = 2*2*2*2^97, ce qui nous amènera à faire 99 multiplications successives,
il vaudrait sans doute mieux traduire ça ainsi :
2^100 = 2^50 * 2^50 = 2^25 * 2^25 * 2^25 * 2^25
pour ceux qui ne sont pas convaincus, je vous laisse écrire le script qui va bien ! au lieu d'avoir 99 multiplications, on devrait en avoir quelque chose comme log2(100) ... genre une dizaine quoi si mes souvenirs sont bons.
un indice : vous n'avez pas une puissance paire ? hé bien arrangez vous pour que ce soit le cas ! (2^101 = 2 * 2^100)