الفرق بين المراجعتين لصفحة: «JavaScript/Math/random»
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 73: | سطر 73: | ||
* معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-15.8.2.14 ECMAScript 5.1]. | * معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-15.8.2.14 ECMAScript 5.1]. | ||
* معيار [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf ECMAScript 1st Edition] . | * معيار [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf ECMAScript 1st Edition] . | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Global Objects]] | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Math]] | [[تصنيف:JavaScript Math|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:42، 28 يناير 2018
الدالة Math.random()
تعيد عددًا عشوائيًا زائفًا (pseudo-random number) عشريًا بين 0 (دون تضمين 0) و 1 (مع تضمين 1)، يمكنك بعد ذلك تحويل العدد الناتج إلى المجال الذي تريده. لاحظ أنَّ البذرة (seed) المُستخدمة في خوارزمية توليد الأرقام العشوائية سيختارها مُحرِّك JavaScript، ولا يمكن ضبطها من المستخدم.
تحذير: الدالة Math.random()
لا توفِّر أعدادًا عشوائيةً يمكن استخدامها في التشفير. لذا لا تستخدمها لأيّ غرض يتعلق بالحماية.
البنية العامة
Math.random()
القيمة المعادة
عددٌ عشوائيٌ زائفٌ (pseudo-random number) عشريٌ بين 0 (دون تضمين 0) و 1 (مع تضمين 1).
الوصف
لمّا كانت الدالة random
هي دالةٌ ساكنة (static method) تابعةٌ للكائن Math، فيجب عليك استخدامها دومًا بالشكل Math.random()
، إذ لا تستطيع استخدامها كجزء من كائن Math
خاص بك (تذكر أنَّ الكائن Math
ليس له دالةٌ بانية).
أمثلة
إعادة عدد عشوائي بين 0 و 1
function getRandom() {
return Math.random();
}
إعادة عدد عشوائي بين قيمتين
الدالة الموجودة في المثال الآتي تُعيد عددًا عشوائيًا بين قيمتين محددتين. والقيمة المعادة ستكون أكبر من أو تساوي min
لكن أصغر تمامًا من max
:
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
إعادة عدد عشوائي صحيح بين قيمتين
الدالة الموجودة في المثال الآتي تُعيد عددًا عشوائيًا صحيحًا بين قيمتين محددتين. والقيمة المعادة ستكون أكبر من أو تساوي min
لكن أصغر تمامًا من max
:
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
قد يخطر ببالك استخدام الدالة round
هنا، لكن فعل ذلك قد يؤدي إلى جعل الأرقام العشوائية تتبع نمط توزيع غير منتظم، وهذا قد لا يكون مقبولًا حسب احتياجاتك؛ لذا من الأفضل استخدام الدالتين ceil
و floor
.
إعادة عدد عشوائي صحيح بين قيمتين مع تضمين تلك القيمتين
صحيحٌ أنَّ الدالة getRandomInt()
الموجودة أعلاه تُضمِّن القيمة الدنيا في النتائج، لكنها تستثني القيمة القصوى. يمكنك استخدام الدالة getRandomIntInclusive()
الموجودة في الشيفرة الآتية لتضمين القيمة الدنيا والقصوى:
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .