- #1
jscix
- 2
- 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>";
}
?>
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: