Page 1 sur 1

[R] Code pour avoir un numéros aléatoire

Posté : lun. 13 juin 2011 02:35
par aviations
Bonsoir, je suis débutant en codage autoit et sa fait très longtemps que j ai pas codé donc je vous demande de l aide :

Je souhaiterais faire un petit programme qui serre a trouver un numéros aléatoire qui est entre 2 numéros qui sont dans des inputs j ai commencer a faire la GUI et je suis carrément bloquer au codage ...

Voila ma GUI :

Code : Tout sélectionner

#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=C:\Users\kevin\Downloads\koda_2007-12-15\Forms\Form11.kxf
$Form1 = GUICreate("Form1", 206, 199, 279, 238)
$Group1 = GUICtrlCreateGroup("Choix Distance", 8, 0, 185, 105)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$ChoixMini = GUICtrlCreateInput("1", 133, 28, 49, 20)
GUICtrlSetLimit(-1, 2)
$ChoixMaxy = GUICtrlCreateInput("2", 133, 60, 49, 20)
GUICtrlSetLimit(-1, 2)
$Label1 = GUICtrlCreateLabel("Planet Mini :", 21, 28, 102, 24)
$Label2 = GUICtrlCreateLabel("Planet Maxy :", 21, 60, 110, 24)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Go = GUICtrlCreateButton("Go", 64, 120, 75, 25, 0)
$Resultat = GUICtrlCreateInput("", 56, 160, 89, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
            
    EndSwitch
WEnd
 
Merci d'avance à tout les gens qui vont m'aider

Re: [..]

Posté : lun. 13 juin 2011 03:41
par matwachich
Voila votre script, mais faudrait mettre un titre à votre message, sinon vous allez vous faire botter les fesses par le big bosse lol!

Code : Tout sélectionner

#include <GUIConstants.au3>
#include <EditConstants.au3>

#Region ### START Koda GUI section ### Form=C:\Users\kevin\Downloads\koda_2007-12-15\Forms\Form11.kxf
$Form1 = GUICreate("Form1", 206, 199, 279, 238)
$Group1 = GUICtrlCreateGroup("Choix Distance", 8, 0, 185, 105)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$ChoixMini = GUICtrlCreateInput("1", 133, 28, 49, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2)
$ChoixMaxy = GUICtrlCreateInput("2", 133, 60, 49, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2)
$Label1 = GUICtrlCreateLabel("Planet Mini :", 21, 28, 102, 24)
$Label2 = GUICtrlCreateLabel("Planet Maxy :", 21, 60, 110, 24)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Go = GUICtrlCreateButton("Go", 64, 120, 75, 25, 0)
$Resultat = GUICtrlCreateInput("", 56, 160, 89, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Go
            _NombreAleatoire()
           
    EndSwitch
WEnd

Func _NombreAleatoire()
    Local $min = GuiCtrlRead($ChoixMini)
    Local $max = GuiCtrlRead($ChoixMaxy)
    ; ---
    ; pour des nombres entier uniquement, rajouté le flag correspondant
    ; à la fonction Random (voir l'aide)
    Local $nbrMaxApresLaVirgule = 5
    Local $entiersUniquement = 0
    ; ---
    Local $nbrAleatoire = Random($min, $max, $entiersUniquement)
    $nbrAleatoire = Round($nbrAleatoire, $nbrMaxApresLaVirgule)
    ; ---
    GuiCtrlSetData($Resultat, $nbrAleatoire)
EndFunc

Re: [..]

Posté : lun. 13 juin 2011 04:09
par aviations
Oui je viens de le remarquer merci beaucoup je testerais sa demain et je vais mettre un titre de ce pas

Re: [..] Code pour avoir un numéros aléatoire

Posté : lun. 13 juin 2011 13:13
par pierrotm777
J'avais trouvé deux petites fonction sur le forum us afin d'améliorer la fonction Random()

La première utilise internet:
► Afficher le texte
► Afficher le texte

Re: [..] Code pour avoir un numéros aléatoire

Posté : lun. 13 juin 2011 13:45
par aviations
Merci à vous.

Le code de
matwachich
satisfait mes attente.

Donc merci encore et bonne journée

Re: [R] Code pour avoir un numéros aléatoire

Posté : lun. 13 juin 2011 15:43
par jchd
@pierrotm777,
Ta seconde fonction revient à accéder successivement à chaque élément d'une permutation de $min à $max choisie pseudo-aléatoirement.
Le principe que cette implémentation emploie est terriblement inefficace.
L'algorithme à employer pour obtenir une permutation pseudo-aléatoire est celui-ci :
► Afficher le texte
Un tirage de type loto peut utiliser ces fonctions :
► Afficher le texte
Pour information, la fonction Random() d'AutoIt est une excellente fonction pseudo-aléatoire qu'il n'y a pas lieu de remplacer par une fonction externe et très lente dans l'immense majorité des cas.

Re: [R] Code pour avoir un numéros aléatoire

Posté : dim. 19 juin 2011 11:16
par pierrotm777
Bonjour,
Merci de votre avis que je prends en considération.

J'avais simplement testé la fonction random sur un min max de 1 à 100 et trouvé que le résultat était souvent le même.
Cette fonction Random est surement plus efficace avec un min max plus grand, non ?

Re: [R] Code pour avoir un numéros aléatoire

Posté : dim. 19 juin 2011 12:16
par jchd
Souvent le même ?
Je demande à voir un test statistique qui différencie la sortie pseudo-aléatoire de Random() d'AutoIt d'un tirage aléatoire vrai. AMTHA c'est assez cher.
Source