Page 1 sur 1
Random($FFFFFFFF)
Publié : lun. 08/août/2005 23:53
par Dr. Dri
la fonction random n'est plus si aléatoire que ca avec cette valeur... chez moi elle ne renvoi que $80000000
Code : Tout sélectionner
RandomSeed( ElapsedMilliseconds() )
For i = 1 To 10
j = Random($FFFFFFFF)
Debug Hex(j)
Next i
Dri
Publié : mar. 09/août/2005 6:24
par comtois
Dans l'aide , tu peux lire ça :
Long 4 octets en mémoire ,plage de -2147483648 à +2147483647
et 2147483647 en Hexa , ça donne $7FFFFFFF
Donc si tu mets Random($7FFFFFFF) , c'est la limite possible .
Du moins je pense ?
Publié : mar. 09/août/2005 12:40
par Dr. Dri
Le problème c'est que Random ne renvoie que des valeurs non signées et prend en paramètre un entier signé (un peu comme la fonction Hex) donc toute valeur négative lui fait perdre ses moyens et au final il renvoie justement la valeur négative la plus petite d'un long...
Il serait peut être bien qu'en interne la fonction gère soit tout de facon non-signée soit faire un Abs() sur le paramètre reçu.
Dri
Publié : ven. 12/août/2005 23:38
par Le Soldat Inconnu
la fonction random n'est plus si aléatoire que ca avec cette valeur...
C'est surtout que $FFFFFFFF = -1
Et un radom sur un nombre négatif, ça ne marche pas. Après le debugger rale pas, c'est un choix ou un oubli
De toute façon, un random ne marche pas avec une valeur signée donc forcément, il va renvoyer ce qu'il peut, la pauvre bête
