Résultats de 1 à 6 sur 6

Sujet : Nombres aléatoires, srand et rand

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    2

    Nombres aléatoires, srand et rand

    Salut à tous,
    Je suis étudiant en premiere année d\'informatique et j\'aimerais faire un programme pour \"m\'entraîner\".
    Le seul problème est que je ne sais pas comment générer un nombre aléatoire compris entre 1 et 1000 par exemple.
    J\'ai pu lire quelques articles sur la fonction rand() et srand() mais je n\'arrive pas à l\'appliquer (il me sort tjours le nombre 2009179755 alors que RAND_MAX est défini à 1000..)

    Pourriez-vous m\'aider svp?
    merci !

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    salut ludo

    un example entre 1 et 4 dans le code de fin de page a cette adresse :

    http://www.forum.moteurprog.com/index.php?url=FORUM_msg.php&ID_topic=530@C+%26 +C%2B%2B

    :wink:

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    627
    Tu travail sous quel OS? paskeu sous BSD tu peux faire un read de /dev/random
    ... Until then, we're better off dead
    A smile on the lips and a hole in the head ...

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    2
    Merci zeb, j\'essaie ça dès que je peux.
    Pour l\'instant Nothing je suis sou winXP et j\'utilise devC++ car j\'ai téléchargé Linux et je l\'ai gravé 2 fois (une fois en 48x et l\'autre fois en 4x pour éviter les erreurs) mais en vérifiant les CD, j\'ai toujours eu des erreurs (REDHAT Linux 9.0). Soit c\'est le graveur ou des erreurs lors du téléchargement...

  5. #5
    Membre MP
    Inscrit
    août 2013
    Messages
    627
    Moi j\'ai eu des probleme de telechargement et c etait du au fait que quand je telechargais sur un ftp, par default sous windows c est en ascii pas en binaire. si ca peut t aider
    dans ftp tu ta \"bi\" pi ca te met en mode binary et ca marche mieu. maitenant c est tetre pas ca un!
    ... Until then, we're better off dead
    A smile on the lips and a hole in the head ...

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Pour répondre à cette demande de nombres aléatoires.

    On commence par réinitialiser avec

    Code:
    srand(time(NULL));
    A mettre juste après le main.


    Puis, on peut faire ainsi :
    Code:
    int i = rand()%1000;
    On utilise le modulo qui est le reste de la division euclidienne de RAND_MAX par 1000.

    Les puristes ne veulent pas utiliser le modulo car on ne trouve pas des résultats équiprobables.

    En effet, quand on compte de 0 à 65535 (je crois bien que c\'est RAND_MAX à verifier) modulo 1000, les nombres de 0 à 535 reviennent 66 fois et les nombres de 536 à 999 reviennent seuleulement 65 fois. Ce qui nous fait une erreur de 1/65, soit moins de 2%. Si on n\'est pas trop exigeant ca passe no problem.
    De plus, plus on baisse le nombre du modulo plus l\'erreur baisse.

    Donc à vous de voir si vous voulez utiliser cette méthode simple ou une autre bien plus compliqué.
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!