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

Algorithmes et structures de données Discussion :

Algorithme de la fonction rand()


Sujet :

Algorithmes et structures de données

Vue hybride

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Par défaut Algorithme de la fonction rand()
    Bonjour,
    je cherche des informations sur les implémentations actuelles de la fonction rand() du langage c, sous linux et windows...
    En particulier, existe t-il un moyen, en connaissant les n dernières valeurs retournées par la fonction rand, de trouver la prochaine valeur qui sera retournée?

    Merci de votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut
    je crois que la fonction rand() utilise comme point de départ, l'heure du PC avec une précision allant au millième de secondes ou plus

    Après, je crois que c'est une sorte de polynome de degré 4 ou 5 qui donne le caractère aléatoire

    ==> non je ne pense pas que tu puisses trouver la valeur retrouné à moins d'avoir la formule exacte et de lancer ton programme juste dans le bon timing

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Par défaut
    Je ne crois pas que tu ais raison, vu que quand je lance 2 fois un programme qui affiche un nombre avec rand(), il donne la même valeur

    C'est la fonction srand qui peut être utilisée pour initialiser le générateur de nombres pseudo aléatoires avec la date courante par exemple.

    Ce que je cherche moi c'est des informations sur la fonction rand elle meme...

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Par défaut
    Voici l'algo tiré du K&R :

    #define RAND_MAX 32767 /* (2**15 - 1) */

    SEED = (1103515245*SEED + 12345) mod 2**15
    X = SEED
    Returns integer in range [0, RAND_MAX]


    La valeur de départ de seed est toujours la même, mais on peut la changer avec srand().

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Par défaut
    Merci pour cette réponse...
    J'aurais sans doute du etre plus précis dans ma question :p
    J'ai lu effectivement quelque part que ce générateur avait été utilisé, mais il me semble que ce n'est plus le cas aujourd'hui sous linux... sous windows je n'ai aucune information

    C'est pour ça que je demandais si vous aviez des renseignements sur les implémentations actuelles de la fonction rand, sous linux et windows

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,

    "Sous Linux" "sous Windows" ne signifie rien à ce niveau, c'est l'implémentation de cette fonction faite par les concepteurs du compilateur qui compte.

Discussions similaires

  1. la fonction rand()
    Par bonomsoleil dans le forum C
    Réponses: 10
    Dernier message: 16/11/2006, 22h43
  2. [Mail] valider par mail un formulaire et fonction rand
    Par guillaume2vo dans le forum Langage
    Réponses: 2
    Dernier message: 17/09/2006, 20h37
  3. fonction rand() sur liste ?
    Par debutant-1 dans le forum C
    Réponses: 10
    Dernier message: 24/05/2006, 10h58
  4. Algo de la fonction RAND
    Par booby dans le forum C
    Réponses: 3
    Dernier message: 21/04/2006, 14h25
  5. fonction rand() php
    Par taka10 dans le forum Langage
    Réponses: 5
    Dernier message: 12/04/2006, 13h35

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