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
![rand](https://i.stack.imgur.com/Fy0Sw.png)
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()).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…