Nombre aléatoire entre -16 et 82

Fermé
Steven Daniel - 25 sept. 2016 à 16:51
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 - 25 sept. 2016 à 18:37
Bonjour,
j'aimerai avoir la syntaxe pour générer des nombre aléatoire compris entre -16 et 82
comment faire


A voir également:

3 réponses

Steven Daniel
25 sept. 2016 à 17:26
générer un entre -10 et 10,
Sub rando() 'nom de ma procedure
Dim r As Double, r2 As Double
' je génere d'abord une valeur que j'arrondi( resultat : 0 ou 1)
r2 = Round(Rnd())
en fonction de r2, je me branche sur l'une des plages
If (r2 = 0) Then
r = (-10 * Rnd) ' nombre entre -10 et 0
Else
r = (10 * Rnd) ' nombre entre 0 et 10
End If
' Je fait une troncature sur r
r2 = Left(r, 8)
MsgBox "tronquée est " & r2 & " r = " & r
End Sub
0
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
Modifié par luckydu43 le 25/09/2016 à 17:53
J'aurais donc fait :
Sub rando() 'nom de ma procedure
Dim r As Double
' je génère d'abord une valeur que j'arrondis( résultat : entre 0 et 100, décimaux compris)
r = Round(Rnd() * 100)
'A ce stade, r2 ne contient que des nombres entiers de 0 à 100 
' (et encore, c'est à voir... Peut-être que 0 et/ou 100 ne sont pas compris.)
If (r >= 99) 
Then r = r - 2
End If
r = r - 16
MsgBox "tronquée est " & r
End Sub

A voir si ça marche...

P.S. : n'oublie jamais les balises de code...
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
25 sept. 2016 à 18:28
Bonjour à tous

Pour créer un entier aléatoire de min à max compris
a=min + Int((max - min + 1) * Rnd)

Cdlmnt
0
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
25 sept. 2016 à 18:37
Ca dépend du langage... en Basic, c'est Int(((Max+1) - (Min+1))*Rand()) + (Min-1) ;-)
Le tout dépend de la façon dont est gérée la valeur entière d'un aléat par l'interpréteur...
0
luckydu43 Messages postés 3484 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 30 juin 2022 815
Modifié par luckydu43 le 25/09/2016 à 17:13
Bonjour !

Je ne sais pas, je ne connais pas le VBA. Mais vous pouvez décomposer le traitement ^^

1.
Générer un nombre aléatoire entre 0 et 100
2.
Retirer 2 (on a donc un nombre entre -2 et 98)
Recommencer si nombre négatif (on a un nombre entre 0 et 98)
2 bis.
Si nombre supérieur ou égal à 99, retirer 2 ou recommencer la génération
3.
Retirer 16 (on a donc un nombre entre -16 et 82)

Il y a sûrement plus propre ;-)

Bonne journée !

Luc

Les 3 plus grands mensonges du dev : 1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
-1