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

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

Votre réponse

3 réponses

Meilleure réponse
Messages postés
151
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
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 144 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
Statut
Membre
Dernière intervention
24 septembre 2012
4
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
Statut
Membre
Dernière intervention
24 septembre 2012
4
0
Merci
Bon bah si t'as ce que tu veux c'est cool
pense à fermer le topic.
à+
Commenter la réponse de Evangun