Rechercher : dans
Par :

[JAVA] Math.random()

Dernière réponse le 16 avr 2009 à 17:18:41 ysf.b, le 10 avr 2007 à 21:29:51 
 Signaler ce message aux modérateurs

Salut tout le monde

svp la valeur retourner avec la methode Math.random()
en java est coprise entre -

0<= Math.random() <=1

ou

0<= Math.random() <1

ou

0< Math.random() <1


Merci

Configuration: Mac OS X
Safari 419.3

Meilleures réponses pour « [JAVA] Math.random() » dans :
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
Supprimer les anciennes versions de Java avec JavaRa VoirJavaRa A propos de la gestion des machines virtuelles Java Présentation de JavaRa Exemple de rapport émis par JavaRa A propos de la gestion des machines virtuelles Java Pour des mises à jour ciblées de java Sun a finalement donné une...
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Télécharger Math Educator VoirL'apprentissage des enfants de bas âge n'est pas une mince à faire, surtout lorsqu'on doit aborder les maths. Math Educator est un outil simple et pratique pour l'apprentissage des maths chez les plus jeunes. Il permet d'apprendre l'addition, la...
Javascript - L'objet Math VoirLes particularités de l'objet Math L'objet Math est, comme vous l'imaginez, un objet qui a de nombreuses méthodes et propriétés permettant de manipuler des nombres et qui contient des fonctions mathématiques courantes. Quelque soit la méthode ou la...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...

1

Amel, le 11 avr 2007 à 09:44:54

Je crois que la réponse est 0<= Math.random() <1

mais il y a tellement de possibilité de chiffres que de toute façon, la probabilité d'avoir 0 est infinitésimal, que les bornes soient inclues ounon ne change pas grand chose...

Répondre à Amel

2

Yahyamed, le 30 avr 2007 à 10:20:41

Salut! j'ai programmé plusieurs fois avec la fonction random() et avec differentes methodes on me retourne toujours une valeurs entre 0 et 1. il n'y a vraiment pas une grande chance d'avoir un nombre plus grand que 1.

Répondre à Yahyamed

11

muhinzi, le 28 oct 2008 à 23:34:45

Aucune chance d'avoir plus de 1, par contre tu peux travailler la réponse donnée et avoir plus de 1.
par exemple si Math.random() te retourne 0,6 il suffit de faire 0,6*10 ainsi tu obtients 6 mais ceci est en double. Il faut alors transtype ce 6 pour avoir un int en faisant comme suit: suposons que tu as stocké ta valeur dans temp, tu fait (int)temp.

Suis pas expert Java mais je fais comme ça et ça marche.

Répondre à muhinzi

3

HackTrack, le 1 mai 2007 à 10:55:58
  • +21

Salut!

Extrait de la Javadoc de la class Math:

@return  a pseudorandom double greater than or equal  to 0.0 and less than 1.0.


Pour Yahyamed:

il n'y a vraiment pas une grande chance d'avoir un nombre plus grand que 1.... je dirais même aucune chance puisque l'implémentation de la foction Math.random() retourn une valeur entre 0 inclu et 1 exclus!

Si tu veux par exemple générer un nombre entier entre 12 (inclus) et 29 (exclus), procède comme ceci:

int lower = 12;
int higher = 29;

int random = (int)(Math.random() * (higher-lower)) + lower;


;-)
HackTrack

Répondre à HackTrack

4

Yahyamed, le 1 mai 2007 à 13:35:36

Salut HackTrack!
j'ai reçu ton message et la méthode que tu as proposé été une bonne solution ça marche tres bien. merci

Répondre à Yahyamed

8

matheux, le 15 mai 2008 à 13:04:53

Attention les deux valuers extremes (12 et 29) auront deux fois moins de chance d'etre selectionnees que les autres.

Répondre à matheux

9

FluffMaster, le 9 aoû 2008 à 18:36:55

Je ne comprend pas pourquoi il y aurait moins de chance...

au début, je pensais que tu pensais à l'arondissement, mais en réécrivant la formule, je me rend compte que c'est impossible...

(int)(Math.random *10) + 1

les valeur possible sont de 1.0 à 10.9 périodique, et non 9.9 périorique
0.9 périodique * 10 = 9.9 périodique, mais on veux de 1 à 10...
donc avec le +1, le max est de 10.9 périodique, non ?

et dans ce cas, on as une preuve que l'arrondissement est en fait un floor, puisque en transformant le résultat en int, on n'obtiens JAMAIS 11, ce qui devrai arrivé avec un arrondissement de 9.6 +1 (9.6 deviendrai 10, et + 1 l'emmènerai à 11 !

n'est t-il donc pas logique de prédendre que le (int)(Math.random *10) donne :
(p pour périodique)

0 pour 0.0 à 0.9p
0 pour 1.0 à 1.9p
0 pour 2.0 à 2.9p
0 pour 3.0 à 3.9p
0 pour 4.0 à 4.9p
0 pour 5.0 à 5.9p
0 pour 6.0 à 6.9p
0 pour 7.0 à 7.9p
0 pour 8.0 à 8.9p
0 pour 9.0 à 9.9p

Hésite pas à me coriger si je fait erreur, mais je pense que c'est logique... et même si j'ai tord... comme je l'ai dit, il semble que ce soit un floor... si ça l'est pas... tu fait (int)Math.floor(Math.random *10) +1 et ton problème est réglé...

bref, je crois bien que c'est toujours 50 - 50... ou dans ce cas, plustôt 10 - 10 - 10 - 10 - 10 - 10 - 10 - 10 - 10 - 10... lol

Répondre à FluffMaster

10

FluffMaster, le 9 aoû 2008 à 18:40:58

Désolé, syndrome du copie paste...

0 pour 0.0 à 0.9p
1 pour 1.0 à 1.9p
2 pour 2.0 à 2.9p
3 pour 3.0 à 3.9p
4 pour 4.0 à 4.9p
5 pour 5.0 à 5.9p
6 pour 6.0 à 6.9p
7 pour 7.0 à 7.9p
8 pour 8.0 à 8.9p
9 pour 9.0 à 9.9p

Répondre à FluffMaster

12

kaline, le 21 fév 2009 à 16:49:38
  • +2

Bonjour,
J'ai un pogramme mastermind a développer en java et je souhaite savoir comment utiliser la fontion rand en java
String[]tabchoix=new String[5];// tableau des valeurs initiales
String []choix_ordi=new String[3];//tableau de combi trié de façon aléatoire
tabchoix[0]="Jaune";
tabchoix[1]="Vert";
tabchoix[2]="Bleu";
tabchoix[3]="Rouge";
tabchoix[4]="Blanc";
je voudrais ke l'ordi choisisse de façon aléatoire 3 couleurs parmi celles contenues dans le tableau tabchoix[] et kil les sotcke ensuite dans choix_ordi[].

Répondre à kaline

5

Mahdi, le 10 mai 2007 à 17:34:04

0<= Math.random() <=1

Répondre à Mahdi

6

juliox24, le 18 jan 2008 à 00:19:53

Salut,
Moi, j'aimerai générer un nombre entier entre 12 (inclus) et 29 (inclus)
Quelqu'un à une idée ????

Merci
@+

Répondre à juliox24

7

narco, le 19 jan 2008 à 17:20:21
  • +1

Int lower = 12;
int higher = 29;

int random = (int)(Math.random() * (higher+1-lower)) + lower;

et ton probleme est résolu

Répondre à narco

13

Lonely, le 17 mar 2009 à 19:40:45

Salut,

Si tu fais ça, tu inclus peut être 29 mais tu exclus 12. Il suffit donc de faire:

Int lower = 12;
int higher = 29;

higher++;

int random = (int)(Math.random() * (higher-lower)) + lower;

NB: (int) nombre fait une troncature et pas un arrondi. Les nombre extrêmes qui sont 12 et 29 ont autant de chances d'apparaitre que les autres. Pour preuve, System.out.println((int)10.9); renvoie 10.

Répondre à Lonely

14

Lonely, le 17 mar 2009 à 19:43:53

Nan, j'ai dit des bêtises ^^ autant pour moi... Ca revient au même en fait.

Répondre à Lonely

16

gayou67, le 14 avr 2009 à 20:45:00

Et non ça ne revient pas au même il faut bien mettre le +1 sinon on ne pourra jamais obtenir le 29.

Répondre à gayou67

17

 Lonely, le 16 avr 2009 à 17:18:41

Si ca revient au meme,

la seule différence c'est que au lieu de l'additionner dans la ligne de calcul, j'ai incrémenté higher (ecrit en gras)

Répondre à Lonely
Collection CommentÇaMarche.net