2008/11/22 Tontonq Tontonq <rootdot@xxxxxxxxx>: > sorry i think i did tell u wrong about it problem is not showing name > of it as exaclty i just wanted give a point to it thats not real > problem real problem is i want it be more unpossible when i give the > class's add function's higher value In that case I would go for an algorithm using some kind of gaussian distribution, like the Marsaglia polar method [1]. I once wrote something similar to what (I think) you are asking for ... <?php function marsaglia($likelihood) { // adapted polar-method by marsaglia if (!is_numeric($likelihood) || ($likelihood == 0)) $likelihood = 100; elseif ($likelihood <= 1) return 1; // the greater likelihood, the less the chance of getting the thingy $v = 2; $u1 = $u2 = 1; while ($v > 1) { $u1 = 1/(rand(1, $likelihood)*$likelihood); $u2 = 1/(rand(1, $likelihood)*$likelihood); $v = $u1*$u1 + $u2*$u2; } $p = $u1*sqrt((-2)*(log($v)/$v)); return ($p < 0.85) ? 1 : (int)$p; } ?> The best return of this function would be 1. Now if you call the function with a high $likelihood (say 1000 and more) it gets less likely have 1 returned ( gaussian ). If you want to decrease the chance of getting values close to 1 then you will have to increase $likelihood inside the function or something. [1] http://en.wikipedia.org/wiki/Marsaglia_polar_method -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php