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 :

utilisation de random


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 76
    Points : 41
    Points
    41
    Par défaut utilisation de random
    je dois créer une methode hasard qui doi renvoyer un nombre entre 0 et le nombre ke jentre en parametre.mais de ce que jai lu dans la api java sur random me dit qu'il renvoit tjs entre 0 ou 1.
    comment faire?
    comment faire egalement pour renvoyer un nombre entre 1 et le nombre entré en parametre?
    merci.

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par nelob
    je dois créer une methode hasard qui doi renvoyer un nombre entre 0 et le nombre ke jentre en parametre.mais de ce que jai lu dans la api java sur random me dit qu'il renvoit tjs entre 0 ou 1.
    comment faire?
    comment faire egalement pour renvoyer un nombre entre 1 et le nombre entré en parametre?
    merci.
    Pour un nombre entre 0 et x, il suffit de mutliplier le résultat du random par x.

    Pour un nombre de x à y, il suffit de multiplier le résultat du random par y et ensuite lors de la récupération, faire un test et rajouter x si le nombre est plus petit que x.

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Points : 109
    Points
    109
    Par défaut
    Dans la section tutoriels, tu trouveras quelquechose d'assez complet sur l'api random. Notamment ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Random rand = new Random(); // constructeur
    int i = rand.nextInt(10);
    Qui permet de faire exactement ce que tu veux, ici un entier entre 0 et 9.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Et si on veux par exemple mettre un nombre au hasard entre 40et99, comment on fait?

  5. #5
    Membre actif
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Points : 278
    Points
    278
    Par défaut
    jettes aussi un œuil sur ce cours :
    http://cyberzoide.developpez.com/java/random/

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Heu... j'ai pas compris comment faire XD
    Tu pourrai me l'expliquer stp?

    Edit: heu, je vien d'y penser, il y a moyen de faire cela, au moins?

  7. #7
    Membre régulier Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 107
    Points
    107
    Par défaut
    pour créer un nombre aléatoire compris entre x et y il faut:
    calculer z, la différence entre x et y,
    créer un nombre aléatoire entre 0 et z avec rand.nextInt(z);
    dans tous les cas additioner x au nombe obtenu.

    Attention à bien tenir compte des >, >=, < et <=, le calcul de la différence ne sera pas forcément le meme (parfois z-1) et il faudra peut etre ajouter x+1 (si x n'est pas inclus)

    Bon code,
    kerinel

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Donc, si j'ai bien compris, je vais devoir faire 99-40 (59)
    et faire
    Val= nbrand.nextInt(59)
    Val=Val+40
    ?

  9. #9
    Membre actif
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Points : 278
    Points
    278
    Par défaut
    presque, car Random.nextInt(n) renvoie un entier entre 0 inclus et n exclu.

    Donc, tu devras faire : 40 + nbrand.nextInt(99+1-40)
    Sinon, il existe des bibliothèques plus évoluées pour la génération de nombres pseudo-aléatoires, cf la section des API. Par exemple Colt ou SSJ.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Ok merci^^...
    Tant que j'y suis avec mes questions de noob chiant, comment on peut faire pour creer un programme qui serait capable de lire 3 chaine de caractére aléatoire?
    Les chaines de caractére, sa se fait avec string, non?

Discussions similaires

  1. Utilisation de random
    Par hatenuke dans le forum Langage
    Réponses: 3
    Dernier message: 22/11/2012, 17h20
  2. Réponses: 4
    Dernier message: 17/05/2011, 17h28
  3. utilisation de random ?
    Par infose dans le forum C#
    Réponses: 4
    Dernier message: 20/10/2010, 12h33
  4. Utilisation de random avec une liste
    Par husobom dans le forum Prolog
    Réponses: 4
    Dernier message: 24/11/2007, 23h43

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