[R] Fonction puissance

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
milka
Niveau 4
Niveau 4
Messages : 55
Enregistré le : sam. 03 avr. 2010 17:00
Status : Hors ligne

[R] Fonction puissance

#1

Message 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.
Modifié en dernier par milka le lun. 27 déc. 2010 19:30, modifié 1 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Fonction puissance

#2

Message par matwachich »

Essay ça:

Code : Tout sélectionner

ConsoleWrite(2 ^ 3 & @CRLF)
PS: Faut apprendre à lire l'aide, et pas seulement "Function Reference"!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
milka
Niveau 4
Niveau 4
Messages : 55
Enregistré le : sam. 03 avr. 2010 17:00
Status : Hors ligne

Re: [..] Fonction puissance

#3

Message par milka »

Ohhhhh !
Je te remercie beaucoup ! Je n'avais jamais remarqué cette fonction =$

Merci beaucoup, milka.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fonction puissance

#4

Message par Tlem »

Heuuuu ...
Rien à voir avec les fonctions. :shock:
Le symbole de la puissance est un simple opérateur. :shock:

Vous n'avez sans doute pas lu ceci : http://www.autoitscript.fr/autoit3/docs ... rators.htm
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [R] Fonction puissance

#5

Message 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
 
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [R] Fonction puissance

#6

Message 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)
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Répondre