Sortir un zéro avec un Math.random()*10+1

daviddubois
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
6 janvier 2012
- 17 août 2007 à 08:13
cs_papillon2000
Messages postés
94
Date d'inscription
dimanche 30 avril 2006
Statut
Membre
Dernière intervention
21 juin 2010
- 29 janv. 2009 à 21:38
Bonjour tout le monde,

J'essaie d'avoir des chiffres de 0 à 10 avec un Math.random(), le problème est qu'il sort des chiffres entre 1 et 10.

Il ne sort donc aucun zéro.

Voici ce que je fait :
for(int i=0; i<20;i++)
{
elements = (int) Math.radnom()*10+1
System.out.println(elements);
}

Sauriez-vous me dire comment sortir un zéro ? Est-ce au moins possible ?

Merci d'avance.

10 réponses

mdrcedrick
Messages postés
54
Date d'inscription
dimanche 12 septembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

17 août 2007 à 09:44
peut être devrais-tu faire un random entre 1 et 11 puis enlevé 1



don't cross the crocked step
0
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
17 août 2007 à 09:56
Ben ca devrait te sauter au yeux pourtant...

Math.radnom()*10+1

Pourquoi tu fais un + 1 si tu veux un zéro ?
0
mdrcedrick
Messages postés
54
Date d'inscription
dimanche 12 septembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

17 août 2007 à 10:01
oui s'il fait Math.random()*10 il n'aura pas le 10 mais seulement de 0 à 9 si ma mémoire est bonne

avec le + 1 on aura de 1 à 10 ...

donc le mieux serait d'avoir de 0 à 11

ou de 1 à 12 puis -1

comme il le sent



don't cross the crocked step
0
cs_GodConan
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
17 août 2007 à 11:47
pourquoi faire une addition ;o) ....
+1 ou -1 si l on veut le Zero .......... sont tout simplement à proscrire ;o)

 M enfin bon!! le Post de  DARKSIDIOUS ;o) et tout à fait adapté ;o) héhé !!!

GodConan ;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
daviddubois
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
6 janvier 2012

17 août 2007 à 14:55
Salut tout le monde,

J'ai fait :

donnees=(int)(Math.random()*12-1);

et ça fonctionne

DD
0
cs_GodConan
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
17 août 2007 à 16:02
ben vimais c est une addition de trop exactement ce que l on as dit inutile de faire.... pfff!!!

GodConan ;o)
0
daviddubois
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
6 janvier 2012

17 août 2007 à 16:09
Salut Conan,

Je comprends pas, peux-tu m'expliquer stp ?

MErci d'avance
0
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
17 août 2007 à 17:26
Ce qu'il voulait dire, c'est que tu obtiens la même chose avec :
donnees=(int)(Math.random()*11);

Attention cependant, tu as des chances (même si c'est infime) d'obtenir un 11 !

Surtout que dans ton code, tu as des chances (même si c'est infime là encore) d'obtenir un 11 et... un -1 !
0
cs_GodConan
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
17 août 2007 à 21:07
permet moi de rectier ;o)
tu peu en effet obtenir un 0 mais en aucun cas un 11...

JavaDoc de la methode random() :
double java.lang.Math.random()
Returns a
double
value with a positive sign, greater than or equal to
0.0
and less than
1.0
.

;o) Et voilà "less than" (<) excluant la valeur 1.0 de facon certaine ;o)
le simple etant toujours d aller à la source... ;o) héhé

GodConan ;o)
0
cs_papillon2000
Messages postés
94
Date d'inscription
dimanche 30 avril 2006
Statut
Membre
Dernière intervention
21 juin 2010

29 janv. 2009 à 21:38
bonsoir, j'ai prèsque le méme probléme,je veux utiliser la fontion random pour generer u nombre entre 0 et  60 (pour les seconde); je fais  donnée=(int)math.random()*60+1  mais je reçoie toujours 1 .
0