Influencer la génération d'un nombre aléatoire
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Influencer la génération d'un nombre aléatoire



  1. #1
    sandrecarpe

    Influencer la génération d'un nombre aléatoire


    ------

    Bonsoir à tous,

    Je programme une application sous Android, en java, et pour rendre mon application innovante, j'ai besoin des probabilités.
    Mon algorithme à pour but de choisir une chaine de caractère parmi plusieurs.
    Je possède X chaines de caractères (contenu d'un objet List). Chaque chaine de caractère se voit attribuer un facteur compris entre 0 et 1, qui va influencer sa chance de tirage par l'algorithme.

    Je fais appel à vous car je ne vois pas du tout comment mette ça en place. Le comportement le plus proche auquel j'ai pensé et vu lors de mes recherches est la loi normale mais malheureusement elle ne prend pas en compte la probabilité des autres variables

    Avez-vous une loi ou un algorithme vers lequel m'orienter ?
    Merci de votre aide

    -----

  2. #2
    pm42

    Re : Influencer la génération d'un nombre aléatoire

    Une technique simple : tu prends un tableau de réel.
    Dans l'élément 0, tu mets la proba du 1er + celle du 2ndDans l'élément 0, tu mets la proba du 1er
    Dans l'élément 1, tu mets la proba du 1er + celle du 2nd
    Dans l'élément 2, tu mets la proba du 1er + celle du 2nd + celle du 3ème

    Tu tires ensuite un nombre aléatoire entre 0 et le dernier élément de ton tableau.
    Tu choisis le plus grand indice dans ton tableau qui est supérieur à ce tirage et la chaine de même indice.

    A la louche, ça marche mais je ne suis pas complètement réveillé alors je peux avoir loupé quelque chose. Mais c'est lent s'il y a trop de chaines. On peut faire mieux sans aucun doute.

  3. #3
    sandrecarpe

    Re : Influencer la génération d'un nombre aléatoire

    Salut, merci pour ta réponse
    J'ai codé un partie de cet algorithme, mais je ne comprends pas ce que tu veux dire par :

    Tu tires ensuite un nombre aléatoire entre 0 et le dernier élément de ton tableau (=le tirage).
    Tu choisis le plus grand indice dans ton tableau qui est supérieur à ce tirage et la chaine de même indice.
    Je comprends pas trop la dernière phrase ci dessus, en gras
    le tirage c'est bien le nombre aléatoire entre 0 et le dernier élément du tableau de réel ?
    Dernière modification par sandrecarpe ; 23/08/2015 à 11h47.

  4. #4
    andre_teprom

    Re : Influencer la génération d'un nombre aléatoire

    Alors, voulez vous un moyen de générer des valeurs aléatoires pour fonctionner indexé ?

  5. A voir en vidéo sur Futura
  6. #5
    sandrecarpe

    Re : Influencer la génération d'un nombre aléatoire

    Je ne sais pas si c'est le terme. L'idéal serait que les chances de tirage d'une phrase soit directement lié à sa probabilité ET celle des autres. Une phrase À de proba 0.8 aura deux fois plus de chance d'être tiré qu'une phrase B de proba 0.4
    Vous voyez ?

    Je suis en train de réfléchir à une solution

  7. #6
    minushabens

    Re : Influencer la génération d'un nombre aléatoire

    tu n'as qu'à ordonner tes phrases et inverser la fonction de répartition, comme te l'a dit pm42.

  8. #7
    sandrecarpe

    Re : Influencer la génération d'un nombre aléatoire

    Je veux bien essayer la méthode de pm42 mais je ne comprends pas son avant dernier paragraphe :/
    Pouvez-vous l'éclaircir ?
    Merci pour vos messages

  9. #8
    sandrecarpe

    Re : Influencer la génération d'un nombre aléatoire

    Citation Envoyé par minushabens Voir le message
    tu n'as qu'à ordonner tes phrases et inverser la fonction de répartition, comme te l'a dit pm42.
    Je trie par ordre croissant mes phrases selon leur probabilité, mais ensuite ?

    Merci de votre aide

  10. #9
    CM63

    Re : Influencer la génération d'un nombre aléatoire

    Bonjour,

    Moi je trouve bizarre qu'il ne soit pas "très simple" de définir, dans quelque langage de programmation que ce soit, une variable aléatoire à partir de sa densité de probabilité, donnée par exemple dans un tableau. Ce n'est qu'un problème d'intégration numérique, si j'en ai le temps (ou le courage ) j'y réfléchirai, mais normalement ça doit être assez "trivial" comme disait mon prof de RDM. Mais bon excusez mon arrogance .

    A plus
    Dernière modification par CM63 ; 28/08/2015 à 08h58.

  11. #10
    pm42

    Re : Influencer la génération d'un nombre aléatoire

    Citation Envoyé par sandrecarpe Voir le message
    le tirage c'est bien le nombre aléatoire entre 0 et le dernier élément du tableau de réel ?
    Oui, je n'étais pas clair. Tu tires entre 0 et le contenu du dernier élément de ton tableau.

    Petit exemple :
    - String "Hello", probabilité 0.1
    - String "World", probabilité 0.3
    - String "!!!", probabilité 0.2

    Ton tableau va donc contenir :
    T[0] = 0.1
    T[1] = 0.4 (0.1+0.3)
    T[2]= 0.6 (0.1+0.3+0.2)

    Ensuite, tu tires des nombres aléatoires entre 0 et 0.6
    Si le nombre est <= 0.1 (T[0]) tu choisis, la chaine 0 "Hello"
    Sinon mais si le nombre est <= 0.4 (T[1]) tu choisis, la chaine 1 "World"
    Sinon mais si le nombre est <= 0.6 (T[2]) tu choisis, la chaine 2 "!!!"

    Donc tu fais une boucle qui trouve le plus grand indice I du tableau tel que ton nombre aléatoire soit < T[I] et tu renvoies la chaine indexée par I.

  12. #11
    sandrecarpe

    Re : Influencer la génération d'un nombre aléatoire

    Ah super ! Je pense avoir compris, j'applique ça de suite !
    Merci !

  13. #12
    CM63

    Re : Influencer la génération d'un nombre aléatoire

    Ah oui c'est pas mal

Discussions similaires

  1. Génération aléatoire d'une séquence binaire en VHDL
    Par ioro dans le forum Électronique
    Réponses: 3
    Dernier message: 10/04/2015, 10h45
  2. generateur de nombre aleatoire ?!
    Par mslm dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 29/09/2012, 12h55
  3. Nombre Aléatoire TIBasic
    Par DDEE07 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 16/03/2011, 08h14
  4. Nombre aléatoire en C
    Par inviteba67e777 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 30/11/2008, 15h49
  5. nombre Aléatoire
    Par invite13666a33 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 23/08/2006, 15h47