Comment influencer rand par un "facteur chance"? ......

Résolu
franco_se Messages postés 151 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 juillet 2018 - 9 août 2006 à 20:17
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 9 août 2006 à 23:20
bonjour

Voila, j'ai un probleme mathematiquement simple, ms pour le transcrire en php , je rame....
Mon but est d'influencer la valeur de sortie de la fonction rand() par un "facteur chance" .

Par exemple, si on a rand(1, 2) , il y a 50% de propabilité que l'on est 1, et 50% que l'on est 2.
Or mon but serait de modifier ces probabilités pour avoir par ex 25% de chance de tomber sur 1 et 75 sur 2 ........

ds cette exemple, j'avais d'abord penser a un truc du type
if(rand(1, 4)=="1") echo "1"
else echo "2";

mais je veux obtenir directement un entier reel , et non passer par des conditionnels .......

si qlq'un a une idée ...........

merci

3 réponses

franco_se Messages postés 151 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 juillet 2018 2
9 août 2006 à 22:00
je me suis trompé, je voulais dire un entier naturel.

http://fr.wikipedia.org/wiki/Entier_naturelen fait, je suis en train de faire un script de jeu: en l'occurence, il s'agit d'un script de chasse. Il faut donc prendre en compte la population des proies ( noté P ) et  les capacités du chasseur ( dexterité, force etc) (notée C), pour avoir le nombre de proies attrappées (X )

ds un monde parfait, je ferais rand(0, P). mais , et je veux que le resultat de rand soit influencer par C, cad les capacites du chasseur, et là est tout le probleme: je ne sais pas comment faire ..........
il faut que j'obtienne un nombre X inferieur  a P ( normal, on n'attrappe pas + qu'il y a ) mais en sachant que + C est grand, plus le resultat X tendra vers P .....

MERCI EVANGUN !!!!!
non pas pour ta reponse (dsl lol ) mais en tappant l'explication, j'ai eu l'illumination !
c'est une equation du type  X = P - P/<sub> C+1
</sub>au final , mon code est :

$P = rand(0, $proie);
$X =  round($P - ($P / ($C+1) ), 0) ;

c'etait tellement simple, et je n'y avais pas penser !!!!
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
9 août 2006 à 21:10
Salut,
je ne comprends pas bien ton problème, ça veut dire quoi obtenir un entier réel ?

tu n'as quà faire une fonction qui fait excatement ce que tu dis avec comme paramètre i,
genre :

function f($i){
    if(rand(1, $i)==1) return true;
    else return false;
}
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
9 août 2006 à 23:20
Bon bah si t'as ce que tu veux c'est cool
pense à fermer le topic.
à+
0
Rejoignez-nous