IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

valeur aléatoire de type long


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut valeur aléatoire de type long
    bonjour,

    j'aimerai obtenir une valeur aléatoire de type long, comprise entre 0 et 15000...

    j'ai déjà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Random rnd = new Random(); 
    long tps = rnd.nextLong();
    qui me permet d'avoir une valeur aléatoire de type long...

    je sais que je pourrai boucler avec un while mais je me demandais si il y avait pas une solution plus "directe"...

    merci d'avance!

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    avec Math.random() tu auras une valeur de type double comprise entre 0 et 1.
    A toi de faire une conversion qui te permette d'obtenir un log compris dans ton intervalle.

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Attention, je vais proclamer une hérésie

    Il te suffit de prendre la partie entière de ton long, puis de lui appliquer un modulo 15000.

    C'est une hérésie informatique parceque cette méthode n'assure pas l'équiprobabilité des résultats. Mais si tu n'as pas une contrainte forte sur l'équiprobabilité mathématique de ton nombre aléatoire, ça peut te suffire.

    Sinon, cherche sur Google. Il y a plein d'articles qui expliquent en détail "les bonnes pratiques" pour obtenir un nombre aléatoire compris entre x et y.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    j'ai en partie réussie puisque j'ai les valeurs comprises entre -15000 et 15000...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import java.util.Random;
     
    public class Essai
    {
    	public static void main(java.lang.String[] args)
    	{
    	Random rnd = new Random();
        	long tps = rnd.nextLong() % 15000;
    	System.out.println(" un nombre aléatoire  = " +tps );
    	}
    }
    j'essaye de faire un abs : long t = abs (tps);
    mais ça me renvoie: the methode abs(long) is undefined
    pourtant c'est ce que je devrai faire d'après mes recherches sur internet...

    merci pour vos réponses!

  5. #5
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    tu dois utiliser Math.abs

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    voilà ça marche impeccablement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import java.util.Random;
     
    public class Essai
    {
         public static void main(java.lang.String[] args)
    	{
    	Random rnd = new Random(); 
        	long tps = rnd.nextLong() % 15000;
        	long t = Math.abs (tps);
    		System.out.println(" un nombre aléatoire  = " +t);
    	}
    }
    Citation Envoyé par willoi
    tu dois utiliser Math.abs
    merci pour votre aide!

    par contre, j'ai vu que Math.abs est inclus dans java.lang donc j'essaye de faire un import java.lang.Math
    pour ne faire que abs(long t)
    mais apparement ça n'y est pas? un pb dans mon raisonnement ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/07/2010, 16h49
  2. Réponses: 0
    Dernier message: 23/04/2010, 14h23
  3. une variable type long qui recupère une valeur dans un .properties
    Par zouuc dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 27/02/2009, 17h08
  4. Champ type Float, valeur aléatoire
    Par Just dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/08/2008, 21h58
  5. Réponses: 4
    Dernier message: 27/07/2007, 11h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo