Comment influencer rand par un "facteur chance"? ...... [Résolu]

Messages postés
151
Date d'inscription
samedi 1 novembre 2003
Dernière intervention
30 juillet 2018
- - Dernière réponse : Evangun
Messages postés
1982
Date d'inscription
dimanche 20 février 2005
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
151
Date d'inscription
samedi 1 novembre 2003
Dernière intervention
30 juillet 2018
3
Merci
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 !!!!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 118 internautes nous ont dit merci ce mois-ci

Commenter la réponse de franco_se
Messages postés
1982
Date d'inscription
dimanche 20 février 2005
Dernière intervention
24 septembre 2012
3
0
Merci
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;
}
Commenter la réponse de Evangun
Messages postés
1982
Date d'inscription
dimanche 20 février 2005
Dernière intervention
24 septembre 2012
3
0
Merci
Bon bah si t'as ce que tu veux c'est cool
pense à fermer le topic.
à+
Commenter la réponse de Evangun

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.