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

franco_se 150 Messages postés samedi 1 novembre 2003Date d'inscription 14 février 2009 Dernière intervention - 9 août 2006 à 20:17 - Dernière réponse : Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention
- 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
franco_se 150 Messages postés samedi 1 novembre 2003Date d'inscription 14 février 2009 Dernière intervention - 9 août 2006 à 22:00
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 !!!!

Merci franco_se 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de franco_se
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 9 août 2006 à 21:10
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
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 9 août 2006 à 23:20
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.