Почему rand () не является случайным?
Я хотел поставить случайные точки на изображении (звезды в космосе для небольшого забавного побочного проекта)
У меня есть этот простой сценарий.
<?php
$gd = imagecreatetruecolor(1000, 1000);
$white = imagecolorallocate($gd, 255, 255, 255);
for ($i = 0; $i < 100000; $i++)
{
$x = rand(1,1000);
$y = rand(1,1000);
imagesetpixel($gd, round($x),round($y), $white);
}
header('Content-Type: image/png');
imagepng($gd);
?>
Имейте в виду, что это только для тестирования, поэтому я положил 100000 вfor
цикл, поэтому он показывает шаблон, который я заметил появление. У нас есть 1 миллион пикселей, все еще случайный X и Y вместо этого создает этот шаблон:
Так что это далеко не случайно. Я знаю, что ранд не является случайным, поэтому он не подходит для криптографии. Но я не нахожу информации о том, как это работает и что я должен делать, чтобы избежать подобных шаблонов.