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 :

question sur random


Sujet :

Algorithmes et structures de données

  1. #21
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 399
    Par défaut
    Le coup du rand() qui donne toujours la première valeur, il me semble qu'il a déjà été évoqué sur le forum...

    Un truc genre un "bug connu de la libc"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  2. #22
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    bonjour

    à mon avis la méthode de millie est la meilleure tant que l'alphabet n'est pas trop grand

    car dans son algo il s'agit de fabriquer séquentiellement un arrangement de plus en plus grand sur l'alphabet, qui mènera à la fin à une permutation aléatoire de l' ensemble

    sur un alphabet (ordonné!) dont la taille tend vers l'infini, il faudra faire autrement:

    taille de l'aphabet = n
    nb_tires = 0

    faire tirage {
    r = random entre 1 et n-nb_tires
    k = nbr d'elements dans le tableau inférieurs au r ieme element de l'alphabet
    r += k
    mettre r dans le tableau tout en gardant le tableau trié
    nb_tires += 1
    retourner le r ieme element de l'alphabet
    }

    est je pense une solution correcte

  3. #23
    Membre émérite
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Billets dans le blog
    1
    Par défaut
    La question revient en effet à générer une permuation aléatoire d'un ensemble 1,2,3,...N. une fosi la permutation faite, il suffit de prendre dans l'odre les éléments du tableau permuté.
    l'algo pour cela est absolument codifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pour i = 1 à N-1
        tirer un entier j aléatoire dans [i N]
        permuter les éléments i et j
    next
    on vérifie qu'il y a bien selon cet algo N! sorties possibles, ce qui correspond effectivement au nombre de permutations possible. donc ce programme tout simple garatit que toutes les permutations sont équiprobables.

    Note, en matlab, il y a une instruction pour cela : randperm

    OL

Discussions similaires

  1. Question sur le programme Random
    Par domxaline dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 17/05/2010, 19h34
  2. question sur 'threads' et 'random'
    Par Waldung dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/09/2007, 17h14
  3. question sur random
    Par PHPkoala dans le forum C
    Réponses: 9
    Dernier message: 02/06/2007, 01h29
  4. Réponses: 2
    Dernier message: 11/08/2002, 22h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 17h11

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