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

daviddubois Messages postés 92 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 Membre Dernière intervention 4 mars 2013 130
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 12
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 92 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 12
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 92 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 Membre Dernière intervention 4 mars 2013 130
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 12
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
Rejoignez-nous