random double

random double - Java - Programmation

Marsh Posté le 26-01-2005 à 15:15:34    

voici mon problème...
 
j'aimerai générer une liste aléatoire de chiffre à virgule flottante...
 
voici ce que j'ai pour des entiers:
 
 Random rand = new Random();
 i = rand.nextInt(10);
 
quelle est la solution pour générer par exemple 2,5 ou autre chiffres à virgule flottante...
 
je débute mais je persévère.. :sweat:
a+ et merci


---------------
La droite est nulle, la gauche est nulle... je vote nul
Reply

Marsh Posté le 26-01-2005 à 15:15:34   

Reply

Marsh Posté le 26-01-2005 à 15:24:47    

nextDouble() : 0.0 -> 1.0
nextDouble() * 10 : 0.0 -> 10.0
...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 26-01-2005 à 15:39:29    

Merci bien père de mara
 
un autre problème survient néanmoins, je m'explique:
 
lorsque j'exécute ce programme:
 

Code :
  1. import java.io.*;
  2. import java.util.*;
  3. public class Exercice38
  4. {
  5. public static void main(String[] args) throws IOException
  6. {
  7.  BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) ;
  8.  // variables
  9.  double poidsPrise;
  10.  double pecheTotaleJour;
  11.  double limitePecheJour;
  12.  System.out.println("Entrez la limite journalière de pêche en kg?" );
  13.  limitePecheJour = Double.parseDouble(in.readLine());
  14.  pecheTotaleJour = 0;
  15.  do
  16.   {
  17.    Random rand = new Random();
  18.    poidsPrise = rand.nextDouble() * 10;
  19.    pecheTotaleJour = pecheTotaleJour + poidsPrise;
  20.    System.out.println(poidsPrise);
  21.    System.out.println(pecheTotaleJour);
  22.   }
  23.  while (pecheTotaleJour < limitePecheJour);
  24. }
  25. }


 
le random me génère de nombres (même à virgule flottante) similaires dans disons 30% à 50% des cas. est-ce du à une vitesse de calcul ou il y a-t'il une solution??


---------------
La droite est nulle, la gauche est nulle... je vote nul
Reply

Marsh Posté le 26-01-2005 à 15:51:41    

dans les 3 semaines précédentes, y'a eu au moins 2 topics sur le random en java, merci d'y jeter un oeil.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-01-2005 à 15:53:47    

Fais un seul new Random(), là tu repart du début à chaque fois...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 26-01-2005 à 16:12:26    

Daddy,
 
mon ignorance me couvre de honte mais je vais jouer la carte de l'humilité.
 
donc voici une nouvelle version de mon code.

Code :
  1. import javax.swing.*;
  2. import java.io.*;
  3. import java.util.*;
  4. public class Exercice38
  5. {
  6. public static void main(String[] args) throws IOException
  7. {
  8.  BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) ;
  9.  // variables
  10.  double poidsPrise;
  11.  double pecheTotaleJour;
  12.  double limitePecheJour;
  13.  System.out.println("Entrez la limite journalière de pêche en kg?" );
  14.  limitePecheJour = Double.parseDouble(in.readLine());
  15.  pecheTotaleJour = 0;
  16.  do
  17.   {
  18.    Random rand = new Random();
  19.    poidsPrise = rand.nextDouble() * 10; // je considère que les poissons ne pèsent pas plus de 10 kg
  20.    poidsPrise = Math.floor(poidsPrise*100)/100; // j'arrondis à 3 chiffres après la virgule
  21.    System.out.println(poidsPrise);
  22.    pecheTotaleJour = pecheTotaleJour + poidsPrise;
  23.    pecheTotaleJour = Math.floor(pecheTotaleJour*100)/100; // arrondi
  24.    System.out.println(pecheTotaleJour + " till now" );
  25.    if (pecheTotaleJour > limitePecheJour)
  26.     System.out.println("Vous avez depasse la limite journaliere de peche" );
  27.   }
  28.  while (pecheTotaleJour < limitePecheJour);
  29. }
  30. }


 
ma nieme question est : comment faire un seul random s'il se trouve dans la boucle? :sweat: :sweat: :sweat: :sweat: :sweat:


---------------
La droite est nulle, la gauche est nulle... je vote nul
Reply

Marsh Posté le 26-01-2005 à 16:15:00    

Faire le new Random() en dehors de la boucle ...

Reply

Marsh Posté le 26-01-2005 à 16:15:07    

Code :
  1. import javax.swing.*;
  2. import java.io.*;
  3. import java.util.*;
  4. public class Exercice38
  5. {
  6. public static void main(String[] args) throws IOException
  7. {
  8.  BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) ;
  9.  // variables
  10.  double poidsPrise;
  11.  double pecheTotaleJour;
  12.  double limitePecheJour;
  13.  Random rand = new Random();
  14.  System.out.println("Entrez la limite journalière de pêche en kg?" );
  15.  limitePecheJour = Double.parseDouble(in.readLine());
  16.  pecheTotaleJour = 0;
  17.  do
  18.   {
  19.    poidsPrise = rand.nextDouble() * 10; // je considère que les poissons ne pèsent pas plus de 10 kg
  20.    poidsPrise = Math.floor(poidsPrise*100)/100; // j'arrondis à 3 chiffres après la virgule
  21.    System.out.println(poidsPrise);
  22.    pecheTotaleJour = pecheTotaleJour + poidsPrise;
  23.    pecheTotaleJour = Math.floor(pecheTotaleJour*100)/100; // arrondi
  24.    System.out.println(pecheTotaleJour + " till now" );
  25.    if (pecheTotaleJour > limitePecheJour)
  26.     System.out.println("Vous avez depasse la limite journaliere de peche" );
  27.   }
  28.  while (pecheTotaleJour < limitePecheJour);
  29. }
  30. }


 
Ne pas le mettre DANS la boucle...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 26-01-2005 à 16:32:23    

:sweat:
 
merci beaucoup
 
:sweat:
 
ça vient, ça vient :)


---------------
La droite est nulle, la gauche est nulle... je vote nul
Reply

Marsh Posté le 26-01-2005 à 16:39:13    

the real moins moins a écrit :

dans les 3 semaines précédentes, y'a eu au moins 2 topics sur le random en java, où les memes questions ont été posées, merci d'y jeter un oeil.



---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed