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

JavaScript Discussion :

Idée de script pour les probabilités


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut Idée de script pour les probabilités
    Bonjour à tous,

    Je pars un peu dans tout les sens, mais je n'ai pas vraiment idée comment réaliser cette fonction, je m'explique.
    Le but de ma fonction, est que en fonction d'un paramètre "victoire", la probabilité de gagné pour les autres est augmenté.
    J'aurais toujours que 3 choix possibles, donc il faut que je parte sur une probabilité équilatéral, c'est à dire 1 chance sur 3 de gagner.

    Quand je dis "les autres", c'est l'IA que je développe en JavaScript.
    J'aimerais donc que lorsque le joueur gagne trop, les IA est plus de chance de sélectionner la bonne réponse.

    Mais alors niveau probabilité en JavaScript, je ne vois vraiment pas comment partir...

    Une idée ?
    Un exemple ?

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Qui dit proba dit tirage aléatoire.

    1 chance sur 6 : Math.random()*6 < 1
    3 chances sur 7 : Math.random()*7 < 3
    A partir de là, il suffit d'établir des variables et de les ajuster selon ton paramètre victoire, avec une fonction à déterminer.
    Si on imagine qu'une variable score va de 0 à 100, 100 étant la victoire totale, et que le joueur a 1 chance sur 3 de gagner au début puis 1 chance sur 103 à score=100 en suivant une fonction linéaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function gagneOuPas(score){
       return Math.random()*(3+score) < 1;
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Bonjour,

    Tout d'abord je tiens à te remercier, cela me permet d'y voir plus claire.

    Je bloque sur deux trois éléments par rapport à ta réponse.

    Je comprends que cette ligne veut dire que si le Math.random()*6 est inférieur à 1 alors on retourne true sinon false, mais à quoi cela sert-il ?
    Donc est-ce que cela veut dire que pour toute valeur compris entre 0 et 1, c'est la bonne réponse ?

    Si on imagine qu'une variable score va de 0 à 100
    Donc d'accord pour le principe, je compte faire une variable qui ira jusque 10. Sachant qu'il faut aussi que je gère les victoires de l'IA.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function gagneOuPas(score){
       return Math.random()*(3+score) < 1;
    }
    Si j'ai bien compris ton idée, le "3" serait ma variable victoire par la suite ? Et le score serait le bon prix à trouver ?


    Si je réexplique l'idée, c'est que en fonction du nombre de victoire d'un joueur ( maximum 10 victoire ), alors mes IA vont devoir tirer au hasard un prix ( toujours 3 choix de prix ). Il faut aussi prendre en compte la probabilité qui augmente suivant le nombre de victoire du joueur ( ou qui baisse dans le cas contraire ). Une idée de script ?

    [EDIT] Grâce à tes conseils j'ai réussi à faire ce petit script qui me permet de comprendre un peu les probas en JavaScript, si je ne me trompe pour 1 chance sur 3 cela donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while(i < 100) {
    	var nombreDeReponse = 3;
    	var probabilite = Math.random()*3;
    	var gagnantOuPas = probabilite < 1;
    	if(gagnantOuPas) {
    		console.log("Gagné");
    	}
    	i++;
    }
    Maintenant, je dois mettre en place, en fonction du parametre victoire du joueur, le changement de la probabilité de gagner pour l'IA. Je dois changer la valeur 3 et la valeur 1 ?
    Mais comment ? [/EDIT]

    Merci de tes réponses en tout cas

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Math.random() renvoie un chiffre décimal aléatoire entre 0 et 1. Tu multiplies par 6, tu as 1 chance sur 6 que le résultat soit compris entre 0 et 1, et 1 chance sur 2 que le résultat soit compris entre 0 et 3.

    Pour moi la variable score était ta variable victoire, dans le sens où tu mesures le score du joueur en fonction du nombre de ces victoires ???

    Tu as déjà une idée de à quoi ressemblerait la courbe d'évolution de la proba en fonction du nombre de victoires ? Linéaire, exponentielle ? Il faudrait commencer par là.

  5. #5
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Tu as déjà une idée de à quoi ressemblerait la courbe d'évolution de la proba en fonction du nombre de victoires ? Linéaire, exponentielle ? Il faudrait commencer par là.
    Sacré question à laquelle je viens de me poser à l'instant et que j'allais te poser.

    Pour y avoir réfléchis un peu, j'aurais bien vu quelque chose comme :

    La probabilité de l'IA = | 1/3 + 2/3(perfJoueur + PerfOrdi) |

    Soit perfJoueur = Bonne reponse du joueur / le nombre de partie
    Soit perfOrdi = Bonne reponse du joueur / le nombre de partie

    Tu en pense quoi ?
    Comme ça j'ai ma probabilité qui fluctue en fonction du ratio de victoire du joueur et de l'ordi.

    Je pense que ma formule est bonne, j'ai fais plusieurs test.
    Mais alors pour le faire en JavaScript...

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     //renvoie true si gagné, false si perdu
    function gagneOuPas(bonnesReponsesJoueur, bonnesReponsesIA, nombreParties){
    var perfJoueur = bonnesReponsesJoueur / nombreParties;
    var perfOrdi = bonnesReponsesIA / nombreParties;
    var probIA = 1/3 + 2/3(perfJoueur + perfOrdi);
    return Math.random() < probIA;
    }
    Tout simplement

  7. #7
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Y'a un truc que je pige pas. perfJoueur + perfOrdi ça fait 1 non ? (une autre façon de dire que bonnesReponsesJoueur + bonnesReponsesIA = nombreParties). Ou alors il y a des parties où personne ne répond juste ?

  8. #8
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    C'est exact William, il y a des parties où personne ne répond juste

    Merci Sylvain pour le code c'est super, et cela m'a permis de comprendre mieux l'implémentation des probabilités en JavaScript

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script pour les profil itinerant?
    Par delphino7 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 31/03/2008, 13h48
  2. Script pour les infos système
    Par soulhouf dans le forum Linux
    Réponses: 14
    Dernier message: 12/04/2006, 16h03

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