Bonjour, je souhaite générer des entiers aléatoirement entre un min et un max.
Pour cela, j'utilise la fonction nextInt de la classe Random.
Cette fonction génère des entiers entre 0 et le max passé en paramètre. Or je souhaiterai générer des entiers entre un min et un max passés en paramètres.
Le principe de ma fonction est le suivant : tant que le nombre généré entre 0 et le max par nextInt est inférieur au min, on regénère un nouveau nombre aléatoire :
voici le code :
voici les résultats :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public class Test_aleatoire_method { /*methode générant des nombres entiers aleatoires entre les bornes passées en paramètres * @ param min, max * @return alea, le nombre aleatoire généré */ public static int gen_aleat_born (int min, int max) { int alea; Random rando = new Random(); alea=rando.nextInt(max); while (alea<min){ alea=rando.nextInt(max); } return alea ; } public static void main(String[] args) { int min, max, nb, i; System.out.print("saisir la borne min de l'intervalle : "); min=Clavier.readInt (); System.out.println("------------------"); System.out.print("saisir la borne max de l'intervalle : "); max=Clavier.readInt (); System.out.println("------------------"); System.out.print("saisir le nombre de valeurs à génerer : "); nb=Clavier.readInt (); System.out.println("------------------"); for (i=1;i<=nb;i++){ System.out.println("valeur # " + i + " : " + gen_aleat_born(min,max)); } } }
Comme vous pouvez le voir les nombres générés se suivent, comment faire pour obtenir des nombres générés aléatoirement entre un min et un max ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 saisir la borne min de l'intervalle : 10 ------------------ saisir la borne max de l'intervalle : 20 ------------------ saisir le nombre de valeurs à génerer : 500 ------------------ valeur # 1 : 12 valeur # 2 : 12 valeur # 3 : 12 valeur # 4 : 12 valeur # 5 : 12 valeur # 6 : 12 valeur # 7 : 12 valeur # 8 : 12 valeur # 9 : 11 valeur # 10 : 11 valeur # 11 : 11 valeur # 12 : 11 valeur # 13 : 11 valeur # 14 : 11 valeur # 15 : 11 valeur # 16 : 11 valeur # 17 : 11 valeur # 18 : 11 valeur # 19 : 11 valeur # 20 : 11 valeur # 21 : 11 valeur # 22 : 11 valeur # 23 : 15 valeur # 24 : 15 valeur # 25 : 15 valeur # 26 : 15 valeur # 27 : 15 valeur # 28 : 15 valeur # 29 : 15 valeur # 30 : 15 valeur # 31 : 15 valeur # 32 : 15 valeur # 33 : 15 valeur # 34 : 15 valeur # 35 : 15 valeur # 36 : 15 valeur # 37 : 15 valeur # 38 : 18 valeur # 39 : 18
Partager