View Single Post
  #1  
Old 01-30-2010, 01:37 AM
Quillink Quillink is offline
Member
 
Join Date: Dec 2008
Posts: 93
Credits: 15,469
Quillink
Lightbulb PHP: Have a 1/2 chance to add or subtract 1 ..?

I'm trying to create a code that will take an existing number (from a table) and have a one-in-two chance of adding or subtracting one from it.
This is what I have at the moment:

Code:
// $numnew = new number
// $curnum = current number
// $max = upper limit (5 in this case)

if (rand(1,2) == 1) {
$numnew = ($curnum + rand(-1,1));
}

if ($numnew == 0) {
$numnew = $max;
}

if ($numnew > $max) {
$numnew = 1;
}
I've been trying to figure how to do this all day. This code works... kind of.
It tends to favor staying at either 1 or 5. I heard that the rand() function isn't truly random, so I guess this is what they meant. Is there any workaround?
Also, the number will occasionally and unexplainably jump to 5 no matter what $curnum was. :(

If anyone can help make this work (or better, show me how to write it better from scratch) I'd very much appreciate it. :D


EDIT: Should I be posting these random php questions in the Webmaster Bat Cave, Brandon? I just figured since they apply to my adoptable site they belonged here. :S