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

Mathématiques Discussion :

Répartir aléatoirement n éléments dans n cases


Sujet :

Mathématiques

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Répartir aléatoirement n éléments dans n cases
    Bonsoir.
    Cela fait longtemps que je me pose le problème suivant. Étant donnés 10 conteneurs, on veut placer 10 éléments différents, chaque conteneur devant avoir un et un seul élément. La répartition doit être aléatoire. (fonction Rand...)
    Mon but, c'est d'avoir un algorithme non récursif qui fasse ce travail avec la complexité la plus petite possible...

    Comme je suis plutôt débutant, mon premier test, c'était d'effectivement faire pleins d'appels à la fonction Rand jusqu'à obtenir un élément qui n'est pas apparu auparavant. Très très peu efficace.

    Mon deuxième test, c'est d'attribuer 10 nombres réels au hasard aux 10 éléments et comme je dispose de la fonction "trier en ordre croissant", il me suffit de faire ce tri, et d'identifier... Par exemple, pour 3 conteneurs A, B et C et 3 éléments 1,2 et 3, la fonction Rand me donne A: 2.4890, B: 7.6850 et C: 5.4098. Alors dans un tableau à part, je place 2.4890,7.6850 et 5.4098, que je trie. On a alors 2.4890, 5.4098 et 7.6850. Alors, dans mon tableau final, je fais une recherche d'éléments qui me permet d'obtenir une répartition aléatoire : [1;3;2]...
    Algo moyennement efficace tout de même
    J'espère avoir été clair^^

    Je voudrais vous demander comment établir un algorithme qui réponde au problème. J'aurais besoin d'un algo non récursif, mais si vous en avez un récursif, pour l'info, je suis preneur !

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    En bref tu veux obtenir une permutation aléatoire de n éléments ? L'algorithme de Fisher-Yates est la solution, en O(n) il a la meilleure complexité possible.

    --
    Jedaï

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/01/2009, 15h12
  2. Récupérer un élément dans une case d'un Grid
    Par Marcolinho dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/06/2008, 10h36
  3. Ranger 8 éléments 2 par 2 dans 4 cases
    Par sikpy dans le forum MATLAB
    Réponses: 1
    Dernier message: 14/05/2008, 13h23
  4. Comparaison de base et calculs du nombre d'éléments dans Bas
    Par BXDSPORT dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/07/2004, 09h00
  5. Réponses: 14
    Dernier message: 01/12/2003, 18h47

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