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

Java Discussion :

Différence entre Random() et Random(long seed)


Sujet :

Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 6
    Par défaut Différence entre Random() et Random(long seed)
    Bonjour à tous,

    j'aimerais connaître la différence entre utiliser un random() directement comme cela et lui rajouter en paramètre un long. Je ne comprends pas très bien à quoi sert le long mis en paramètre ?

    Merci d'avance !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 7
    Par défaut
    Bonjour,

    L'appel comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Random rnd = new Random(long Seed)
    permet de toujours retrouver la même suite de nombre aléatoire. Tu peux test ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Random rnd = new Random(1);	
    for (int i = 0; i < 10; i++) {
    	System.out.println(rnd.nextInt());
    }
    Tu retrouveras toujours les mêmes nombres en sortie.

    En gros comme je comprends, l'aléatoire n'existe pas vraiment, c'est juste une suite de nombre prévu pour sortir dans l'ordre. Ce qui compte c'est à quelle "seed" est créé ton objet Random.
    Si tu veux seulement tirer des nombres aléatoire oublie la "seed". Mais cette méthode est utile pour le debug, comme ca tu peux enlever l'aléatoire du test et retrouver les mêmes valeurs à chaque test.

    J'espère que j'ai été assez clair

  3. #3
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Pour completer ce qu'a dit jejelenew,

    La "seed" (graine) est le nombre qui de base que va utiliser l'algorithme de génération de nombre pseudo-aléatoire. En effet on ne sait pas faire du vrai aléatoire, du coup on utilise un algotihme qui crée un sensation d'aléatoire.
    Mais ce n'est qu'une illusion, si tu utilise la même seed, tu retrouvera la même suite de nombre.

    Pour créer un aléatoire plus réaliste, il faut changer de seed à chaque fois. Le plus simple est d'utiliser Random() car l'appelle de ce constructeur fait appelle à Random(long seed) mais en utilisant le temps en milliseconde comme seed.
    Ainsi la seed est tout le temps différente, et donc on se retrouve avec des résultats en tout point similaire à de l'aléatoire.

    Le plus simple et efficace est donc d'utiliser Random()

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 6
    Par défaut
    Merci de vos réponses ! J'y vois plus clair maintenant

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

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. différence entre long et double
    Par bolltt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/03/2008, 18h46
  3. difference entre rnadom et randomize
    Par hamadibensassi dans le forum C++
    Réponses: 4
    Dernier message: 13/06/2006, 08h28
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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