PHP Random number generator (Need help)

jscix
Messages
2
Reaction score
0
Okay, What I am trying to do is create a create a random number generator, that outputs 1 and 2 (coin toss)

From what I understand, the more coin tosses (the more times I generate a random 1 or 2) the more uniform the pattern should be.

EG: After generating a random 1-2 sequence, 1,000,000 times.. i should have 500,000 (1s) and 500,000 (2s).. am I wrong?

Anyway, I'm not sure what I am doing wrong but the more numbers I generate, the more deviation I am getting.

Here is how I'm doing this.. (I know I probably did this all wrong.. if so someone just tell me lols)

thank you in advance

(I know most won't know PHP but I am providing the code, in case)

OTHERWISE--

basically what I am doing is.

I have a value that begins at 0. ( $dev )

I generate a random 1 or 2

if it's one, I increment the value ($dev++)
if it's two, I decrement the value. ($dev--)

the final deviation, displayed after it finishes generating the numbers.



Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>Coin Toss</title>
</head>
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
$submit = ($_POST['Toss']);
$values = ($_POST['select']);
if (!$submit) {
?>
<body><center>
<p align="center">Coin Toss Deviation
<form method="post" action="Cointoss.php">
<select name="select">
<option value="none">How many coin tosses?</option>
<option value="one">One Hundred</option>
<option value="two">One Thousand</option>
<option value="three">One-Hundred Thousand</option>
</select><input type="submit" name="Toss" value="Toss" />
</form>
</center></body></p>

</html>
<?php
}
else {

switch ($values) {

case "none":
die ("Select number of tosses");
break;
case "one":
$total = "100";
break;
case "two":
$total = "1000";
break;
case "three":
$total = "100000";
break;
}
$dev = 0;
$i = 0;

while ($i < $total) {

$cur = mt_rand(1,2);
//print $i . " = $cur <br>";

if ($cur == "1") {
$dev++;
$one++;
}

if ($cur == "2") {
$dev--;
$two++;
}
$i++;
}
unset ($submit);
print "<center>ones: $one <br>twos: $two<br>";
print "total: " . $dev . " point deviation.<br><br>";

print <<< DUH
Average deviation is 0 points<br>
The more tosses, the lower the deviation should be. (Closer to 0)<br>
DUH;

print "<a href=\"Cointoss.php\">Try Again!</a>";
}
?>
 
Last edited by a moderator:
Mathematics news on Phys.org
The "uniformity" of your random numbers is geven by $dev/$count where $count is the number of numbers generated. This should tend to zero.
 
Anyway, I'm not sure what I am doing wrong but the more numbers I generate, the more deviation I am getting.

No that's exactly what you should expect. What you're looking at is a one dimensional random walk, the expected value of the absolute distance from the starting point is proportional to \sqrt{n}

See: http://en.wikipedia.org/wiki/Random_walk
 
Last edited:
After 1000000 tosses you certainly should not have 500000 heads and 500000 tails! That is the most likely outcome but there are so many different outcomes that the probability of getting that particular result is vanishingly small (it is 10000000C5000002-1000000).

Nor should you expect the difference between the number of heads and tails to go to 0 as you increase the number of tosses. As uart said, that difference will actually increase, as \sqrt{n}, as n increases. What goes to 0 (by the "law of large numbers") is that difference as a ratio of the number of tosses: (difference between number of heads and tails)/n. Since the difference increases as \sqrt{n}, that ratio decreases as \sqrt{n}/n= 1/\sqrt{n}.
 
Insights auto threads is broken atm, so I'm manually creating these for new Insight articles. In Dirac’s Principles of Quantum Mechanics published in 1930 he introduced a “convenient notation” he referred to as a “delta function” which he treated as a continuum analog to the discrete Kronecker delta. The Kronecker delta is simply the indexed components of the identity operator in matrix algebra Source: https://www.physicsforums.com/insights/what-exactly-is-diracs-delta-function/ by...
Fermat's Last Theorem has long been one of the most famous mathematical problems, and is now one of the most famous theorems. It simply states that the equation $$ a^n+b^n=c^n $$ has no solutions with positive integers if ##n>2.## It was named after Pierre de Fermat (1607-1665). The problem itself stems from the book Arithmetica by Diophantus of Alexandria. It gained popularity because Fermat noted in his copy "Cubum autem in duos cubos, aut quadratoquadratum in duos quadratoquadratos, et...
I'm interested to know whether the equation $$1 = 2 - \frac{1}{2 - \frac{1}{2 - \cdots}}$$ is true or not. It can be shown easily that if the continued fraction converges, it cannot converge to anything else than 1. It seems that if the continued fraction converges, the convergence is very slow. The apparent slowness of the convergence makes it difficult to estimate the presence of true convergence numerically. At the moment I don't know whether this converges or not.
Back
Top