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 :

Générateur de nombres aléatoires avec contraintes


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é
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Par défaut Générateur de nombres aléatoires avec contraintes
    Bonjour,
    2 topics en un jour et oui ! sur 2 sujet totalement différents mais qui au final se rejoindront dans notre projet.

    Le but de notre générateur est de tenir compte de contraintes imposées par l'utilisateur pour générer au final une expression algébrique aléatoire.
    Notre problème se pose pour la génération d'un nombre, du moment ou nous pouvons en générer un en tenant compte des contraintes les autres suivront le même schéma.

    Par exemple voilà ce que l'utilisateur peut demander pour un nombre donné :
    intervalle : -3..20 et 15..25
    Multiple inclus : 2 et 5
    Multiple exclus : 4
    Ensemble inclus : N et Q
    Ensemble exclus : Z et R

    Bon la l'exemple est vraiment barbare mais c'est pour bien que vous puissiez comprendre toutes les contraintes qui peuvent rentrer en jeu.
    Ici la solution serait visiblement 20 et uniquement 20.

    Le seul problème c'est comment faire pour tenir compte à la fois de toutes les contraintes et de pouvoir conserver un temps de calcul le plus infime possible...

    Nous avions comme idée de départ de réduire le champs de recherche de notre algorithme en le décomposant, nous commencerions par réduire les valeurs possibles aux intervalles que l'utilisateur a choisi de sélectionner. Puis une fois le champs de recherche réduit aux intervalles réduire encore une fois avec les multiples et finir par les ensembles.

    Si l'utilisateur ne choisi aucune contrainte, le nombre est généré aléatoirement parmi tous les ensemble sur l'intervalle -infini ; +infini sachant que ceci n'est pas réaliste, nous limiterons probablement avec des bornes par défaut qu'il nous reste à définir.

    Pour les personnes arrivant à lire ceci jusqu'au bout, je vous remercies de votre attention et de l'aide que vous pourrez nous apporter sur ce problème épineux.

    Cordialement.

  2. #2
    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 byakuichi Voir le message
    intervalle : -3..20 et 15..25
    Multiple inclus : 2 et 5
    Multiple exclus : 4
    Ensemble inclus : N et Q
    Ensemble exclus : Z et R

    Bon la l'exemple est vraiment barbare mais c'est pour bien que vous puissiez comprendre toutes les contraintes qui peuvent rentrer en jeu.
    Ici la solution serait visiblement 20 et uniquement 20.
    Ca correspond à quoi la contrainte "Multiple inclus/exclus" ?

    Parce que pour moi 20 est un multiple de 4.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Par défaut
    Oui autant pour moi xD
    Mais en gros

    Multiple inclus veut dire que le nombre généré doit être un multiple du ou des multiple inclus.
    Multiple exclus veut dire que le nombre générés ne doit pas en faire partie sinon on retire un nombre

  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
    Dans ce cas, la réduction des intervalles me semble effectivement une bonne tactique.

    Le problème c'est que ca peut générer beaucoup d'intervalles. Par exemple:

    limites : -1000,+1000
    multiples exclus : 1
    valeurs dans Q,R

    --> ]-1000,-999[ U ]-999,-998[ U ... U ]998,999[ U ]999,1000[
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Par défaut
    J'avoue que la je suis en panne sèche :/
    Je ne vois vraiment pas comment générer cette chose de façon simple et de façon surtout à ce que l'utilisateur ne poireaute pas plus de 30sec à une minute devant son PC...

    Si j'avais été sous linux on m'avait conseillé de tirer une valeur dans urandom puis de regarder si elle était dans toute les contraintes souhaitées et si elle ne l'était pas de retirer une valeur dans urandom.

    Sous windows je crois pas qu'il n'y ait d'équivalent au urandom des distribs linux...

  6. #6
    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 byakuichi Voir le message
    Sous windows je crois pas qu'il n'y ait d'équivalent au urandom des distribs linux...
    Le plus proche dans windows c'est rand_s() dans l'API stdlib.h

    errno_t rand_s( unsigned int* randomValue);
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/02/2013, 21h02
  2. générateur de nombre aléatoire
    Par ndefta love dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/12/2006, 22h21
  3. Générateur de nombres aléatoires maxwelliens
    Par Selma_2037 dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/11/2006, 15h54
  4. Générateur de nombres aléatoires
    Par Grand sorcier dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 30/07/2006, 22h44
  5. Générateurs de nombres aléatoires
    Par Cheps dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 12/06/2006, 00h37

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