rand()
function returns a pseudorandom number .
This does NOT mean that the next
number can be predicted.
However this image can explain the concept of word pseudorandom
You can read this article
the image is generated from a simple loop with rand
function on windows system.
header("Content-type: image/png");
$im = imagecreatetruecolor(512, 512) or die("Cannot Initialize new GD image stream");
$white = imagecolorallocate($im, 255, 255, 255);
for ($y = 0; $y < 512; $y++) {
for ($x = 0; $x < 512; $x++) {
if (rand(0, 1)) {
imagesetpixel($im, $x, $y, $white);
}
}
}
imagepng($im); imagedestroy($im);
It's not so random, really? But now that you know it... you can predict the next number?
The difference between true random number generators (TRNGs) and pseudo-random number generators (PRNGs) is that TRNGs use an unpredictable physical means to generate numbers (like atmospheric noise), and PRNGs use mathematical algorithms (completely computer-generated)
[...]
Not many PRNGs will produce an obvious visual pattern like this, it just so happens to be a really bad combination of language (PHP), operating system (Windows), and function (rand()).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…