Tasodifiy raqamlarni yaratish o'yin o'yinlaridan xavfsizlik va kriptografiyagacha bo'lgan dasturlashning ko'plab sohalarida odatiy vazifadir. Ushbu postda siz qanday qilishni o'rganasiz tasodifiy raqamlarni yaratish. Biz PHP-da tasodifiy sonlarni yaratish asoslarini ko'rib chiqamiz va tasodifiy sonlarni yaratishning bir necha usullarini o'rganamiz.
PHP tasodifiy butun sonlarni yaratish uchun turli funktsiyalarga ega. Rand eng muntazam foydalaniladigan funksiyalardan biridir (). Ushbu usul parametr sifatida berilgan ikkita qiymat o'rtasida tasodifiy butun son hosil qiladi. Bu funksiyaning sintaksisi rand (min, max). Masalan, 1 dan 100 gacha tasodifiy sonni yaratish uchun quyidagi koddan foydalaning:
<?php
$random_number = rand(1, 100);
echo $random_number;
?>
Mt_rand() Mersenne Twister texnikasidan foydalangan holda tasodifiy sonni yaratadigan yana bir funktsiyadir. Bu usul rand() funksiyasiga qaraganda kamroq bashorat qilinadigan va tasodifiyroq deb hisoblanadi. U rand() bilan bir xil sintaksisga ega, ammo oldindan aytib bo'lmaydiganlikni talab qilsangiz afzalroqdir.
<?php
$random_number = mt_rand(1, 100);
echo $random_number;
?>
dan foydalanib tasodifiy float raqamini ham yaratishingiz mumkin vazifalari mt rand() va /mt getrandmax() 0 dan 1 gacha bo'lgan kasr qiymatini olish uchun.
<?php
$random_float = mt_rand() / mt_getrandmax();
echo $random_float;
Bundan tashqari, foydalanish mumkin random_int()
dan funksiya random
Kengaytma PHP 7.0 da mavjud va kriptografik xavfsiz tasodifiy tamsayılar hosil qiladi.
<?php
$random_number = random_int(1, 100);
echo $random_number;
Tasodifiy satrlarni yaratish uchun satr belgilarini tasodifiy aralashtiruvchi str_shuffle() usuli ham ishlatilishi mumkin. Quyidagi namuna 10 ta belgidan iborat tasodifiy qatorni yaratadi.
<?php
$random_string = substr(str_shuffle(str_repeat("abcdefghijklmnopqrstuvwxyz", 10)), 0, 10);
echo $random_string;
?>
O'rnatilgan usullardan tashqari, "random_compat" kabi kutubxonalar PHPda kriptografik xavfsiz tasodifiy raqamlarni ishlab chiqarish uchun standart APIni taklif qiladi. Xavfsizlikka sezgir bo'lgan ilovalar uchun tasodifiy butun sonlarni yaratishingiz kerak bo'lsa va random_int() va random_bytes() usullari mavjud bo'lmagan PHP versiyasidan foydalansangiz, bu kutubxona qulay.
Shuni yodda tutish kerakki, bu funktsiyalar tomonidan yaratilgan tasodifiy raqamlar haqiqiy tasodifiy emas, balki deterministik usulning natijasidir. Bu hosil qilingan raqamlar tasodifiy emas, balki psevdo-tasodifiy bo'lishini ko'rsatadi. Aksariyat ilovalar uchun bu muammo emas, lekin agar siz xavfsizlikka sezgir bo'lgan ilovalar uchun haqiqatan ham tasodifiy raqamlarni olishni istasangiz, apparat tasodifiy sonlar generatoridan foydalanishni o'ylab ko'rishingiz mumkin.
Nihoyat, PHP-da tasodifiy sonlarni yaratish oddiy jarayon bo'lib, uni o'rnatilgan usullar yoki kutubxonalardan foydalanish orqali amalga oshirish mumkin. Mavjud bo'lgan turli usullarni va ulardan to'g'ri foydalanishni tushunib, bir qator ilovalar uchun tasodifiy raqamlarni tez va samarali yaratishingiz mumkin. O'yin, xavfsizlik dasturi yoki loyihaning boshqa shakli ustida ishlayapsizmi, tasodifiy raqamlarni yaratish qobiliyati har bir PHP dasturchisi uchun zarurdir.
PS Agar siz hech qanday dastursiz onlayn tasodifiy raqam yaratmoqchi bo'lsangiz, buni tavsiya qilamiz tasodifiy sonlar generatori.