الفرق بين المراجعتين لصفحة: «PHP/mt srand»
< PHP
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
طلا ملخص تعديل |
||
سطر 19: | سطر 19: | ||
استعمل أحد الثوابت الموضَّحة في الجدول التالي لتحديد طريقة عمل الخوارزميَّة. | استعمل أحد الثوابت الموضَّحة في الجدول التالي لتحديد طريقة عمل الخوارزميَّة. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الثابت | |||
!الوصف | |||
|- | |- | ||
|<code>MT_RAND_MT19937</code> | |<code>MT_RAND_MT19937</code> | ||
سطر 34: | سطر 34: | ||
== سجل التغييرات == | == سجل التغييرات == | ||
{| class="wikitable" | {| class="wikitable" | ||
!الإصدار | |||
!الوصف | |||
|- | |- | ||
|7.1.0 | |7.1.0 |
مراجعة 15:09، 23 مارس 2018
(PHP 4, PHP 5, PHP 7)
تحدِّد الدالة mt_srand()
البذرة (seed) المستعملة في خوارزميَّة Mersenne Twister لتوليد أعداد عشوائيَّة.
الوصف
void mt_srand ([ int $seed [, int $mode = MT_RAND_MT19937 ]] )
تحدِّد هذه الدالة قيمة البذرة المستعملة في خوارزميَّة Mersenne Twister عند توليد أعداد عشوائيَّة. تكون قيمة البذرة هي المعامل seed
المُمرَّر إلى الدالة، وإن لم يُعطَ هذا المعامل فستكون قيمة البذرة هي قيمة عشوائيَّة.
ملاحظة: لا حاجة لتحديد قيمة البذرة باستدعاء هذه الدالة أو الدالة srand()
في كل مرة تريد فيها توليد أعداد عشوائيَّة، سواءً باستعمال الدالة rand()
أو الدالة mt_rand()
، إذ تُحدَّد قيمة البذرة آنذاك تلقائيًّا.
المعاملات
seed
قيمة عدديَّة صحيحة التي ستُحدِّد قيمة البذرة.
mode
استعمل أحد الثوابت الموضَّحة في الجدول التالي لتحديد طريقة عمل الخوارزميَّة.
الثابت | الوصف |
---|---|
MT_RAND_MT19937
|
استعمال خوارزميَّة Mersenne Twister المعدَّلة الصحيحة التي أصبحت متاحة منذ إصدار PHP 7.1.0. |
MT_RAND_PHP
|
استعمال خوارزمية Mersenne Twister التي تحوي بعض الأخطاء في طريقة عملها والتي تُعدُّ الخوارزميَّة الافتراضيَّة حتى إصدار PHP 7.1.0. أتيح هذا الوضع من أجل استعمال الإصدار السابق، غير المعدَّل، من الخوارزميَّة. |
القيم المعادة
لا توجد أي قيمة معادة.
سجل التغييرات
الإصدار | الوصف |
---|---|
7.1.0 | أصبحت الدالة srand() اسمًا بديلًا عن الدالة mt_srand() أي أنَّها تشير إليها.
|
7.1.0 | تستعمل الدالة mt_rand() النسخة المعدَّلة الصحيحة من خوارزمية Mersenne Twister. يمكن الرجوع إلى النسخة السابقة -ما قبل التعديل- بتحديد الثابت MT_RAND_PHP للمعامل mode في الدالة mt_srand() .
|
5.2.1 | تستعمل الخوارزميَّة Mersenne Twister أثناء تنفيذها الآن خوارزميَّة جديدة لاختيار البذرة التي أنشأها Richard Wagner. لن تُولَّد بعد الآن سلسلة الأعداد العشوائيَّة ذاتها عند استعمال البذرة ذاتها كما في النسخة السابقة. من غير المتوقع تغيير طريقة العمل هذه مرة أخرى، ومع ذلك تُعدُّ هذه الطريقة غير آمنة للاعتماد عليها. |
أمثلة
المثال 1: استعمال الدالة mt_srand()
<?php
// تحديد البذرة باستعمال الثواني
function make_seed()
{
list($usec, $sec) = explode(' ', microtime());
return $sec + $usec * 1000000;
}
mt_srand(make_seed());
$randval = mt_rand();
?>
انظر أيضًا
- الدالة
mt_rand()
: تولِّد قيمة عدديَّة عشوائيَّة صحيحة باستعمال خوارزمية Mersenne Twister. - الدالة
mt_getrandmax()
: تعيد أكبر قيمة عدديَّة عشوائيَّة يمكن أن تولِّدها الدالةmt_rand()
. - الدالة
srand()
: تحديد البذرة المستعملة في خوارزميَّة توليد أعداد عشوائيَّة.