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 :

Algo pour nombre aléatoire


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Par défaut Algo pour nombre aléatoire
    Bonjour tout le monde !

    Je cherche un algorithme permettant de calculer un nombre pseudo-aléatoire, sachant que je peux utiliser seulement les opérations de base (+, -, *, /, mais avec on peut recréer %, ², racine carrée ... facilement).
    J'ai entendu parlé des algorithmes de Neumann et de Fibonacci, mais je n'ai pas trouvé de doc dessus.
    Donc si pouviez m'expliquer comment ils marchent ou si vous connaissez d'autres algo simples, merci de me le faire savoir !

    Merci d'avance !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Par défaut
    bonjour,

    j'ai retrouvé dans un vieux cours de proba l'algo suivant :

    G(u) = (16807 (=7^5) * U) mod (2^31 -1).

    où u est un nombre entier quelconque.

  3. #3
    Membre confirmé Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Par défaut
    Salut, merci de ta réponse !

    Mais j'ai quelques questions : à quoi correspondent G et U, pourquoi y a t-il un égal avant 7^5 et est-ce que c'est 2^(31-1) ou (2^31)-1 ?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Electroniktor Voir le message
    Mais j'ai quelques questions : à quoi correspondent G et U, pourquoi y a t-il un égal avant 7^5 et est-ce que c'est 2^(31-1) ou (2^31)-1 ?
    Ce genre de fonction génère une nouvelle valeur aléatoire a partir de la valeur aléatoire précédente:

    • G() c'est la fonction qui genere un nombre aléatoire
    • U c'est la dernière valeur calculée.

    G(U) donne une nouvelle valeur aléatoire. On va stocker cette nouvelle valeur dans U, puis recalculer G(U) pour avoir encore une nouvelle valeur aléatoire, et ainsi de suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int u=0; // valeur initiale
    int random() {
      u = (16807 * u) mod ( (2^31) -1);  // nouvelle valeur
      return u;
    }
    Il y a d'autres fonctions possibles:
    http://en.wikipedia.org/wiki/Linear_...tial_generator
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut !

    Tu trouvera tout ce dont tu as besoin dans Numerical Recipes ou dans le vol. 2 de The Art of Computer Programming de D.E. Knuth.

    Jean-Marc Blanc

  6. #6
    Membre confirmé Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Par défaut
    OK, merci pour ces renseignements !

    Je vais aller faire un tour du coté des deux livres (si je les trouve), sinon la solution de Lowelace et de PseudoCode marche très bien !

    Sinon je me demandais comment faire pour que le nombre généré soit compris dans un interval donné, comme [0;100] ?

    Merci beaucoup !

Discussions similaires

  1. Algo pour crée une chaîne en fonction d'un nombre
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/01/2011, 18h12
  2. nombres aléatoires pour remplissage cryptographique
    Par Taka's tiger dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 27/05/2007, 08h47
  3. Algo pour générer des nombres aléatoires
    Par Admin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 12/06/2006, 09h06
  4. Réponses: 8
    Dernier message: 02/12/2005, 18h07
  5. recherche algo de génération de nombre aléatoire
    Par Pascale38 dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 14h20

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