اÙÙgenerator Ø§ÙØ´Ø¨Ù Ø¹Ø´ÙØ§Ø¦Ù
ÙÙØ§Ù Ù ÙØ§Ø·Ù ÙØ«Ùرة ØÙØ« ÙØØªØ§Ø¬ Ø¥ÙÙ Ø¨ÙØ§Ùات Ø¹Ø´ÙØ§Ø¦ÙØ©.
ÙØ§ØØ¯Ø© Ù ÙÙØ§ ÙÙ Ø§ÙØ¥Ø®ØªØ¨Ø§Ø± (testing). ÙÙ ÙÙ Ø£Ù ÙØØªØ§Ø¬ Ø¥ÙÙ Ø¨ÙØ§Ùات Ø¹Ø´ÙØ§Ø¦ÙØ©: ÙØµÙص Ø£Ù Ø£Ø±ÙØ§Ù ÙÙÙØ°Ø§ ÙØ§Ø®ØªØ¨Ø§Ø± Ø§ÙØ£Ø´Ùاء Ø¬ÙØ¯Ùا.
ÙÙ Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت ÙÙ
ÙÙÙØ§ استخداÙ
Math.random() ÙÙÙ٠إذا ØØ¯Ø« أ٠خطأ ÙØ¥ÙÙØ§ ÙÙ
Ù٠أ٠ÙÙØ¯ Ø£Ù ÙØ¹Ùد Ø§ÙØ¥Ø®ØªØ¨Ø§Ø± باستخداÙ
ÙÙØ³ Ø§ÙØ¨ÙØ§ÙØ§Øª.
٠٠أج٠ذÙÙ ÙØ³ØªØ®Ø¯Ù ٠ا ÙØ³Ù Ù âseeded pseudo-random generatorsâ ÙÙ٠تأخذ بذرة âseedâ ÙÙ ØªØºÙØ± Ø£ÙÙ ÙØªÙÙÙ Ø¨Ø¥ÙØ´Ø§Ø¡ اÙÙÙÙ Ø§ÙØªØ§ÙÙØ© Ø¨Ø§Ø³ØªØ®Ø¯Ø§Ù Ù Ø¹Ø§Ø¯ÙØ© ÙÙØ°ÙÙ ÙØ¥Ù Ø§ÙØ¨Ø°Ø±Ø© ÙÙØ³Ùا تظ٠ÙÙ ÙÙØ³ Ø§ÙØªØªØ§Ø¨Ø¹ ÙÙÙ ÙÙ ØªÙØ±Ø§Ø± ÙÙØ³ Ø§ÙØ®Ø·Ùات بسÙÙÙØ©. ÙØØªØ§Ø¬ ÙÙØ· Ø£Ù ÙØªØ°Ùر Ø§ÙØ°Ø±Ø© ÙØªÙØ±Ø§Ø±ÙØ§.
٠ثا٠عÙÙ ÙØ°Ù اÙÙ Ø¹Ø§Ø¯ÙØ© ÙØ§Ùت٠تÙÙÙ Ø¨Ø¥ÙØ´Ø§Ø¡ ÙÙÙ :
next = previous * 16807 % 2147483647
إذا استخدÙ
ÙØ§ 1 ÙØ¨Ø°Ø±Ø© ÙØ¥Ù اÙÙÙÙ
ستÙÙÙ:
168072824752491622650073- â¦ÙÙÙØ°Ø§â¦
اÙÙ
ÙÙ
Ø© ØªÙØªØ¶Ù Ø£Ù ØªÙØ´Ø¦ Ø¯Ø§ÙØ© generator pseudoRandom(seed) ÙØ§Ùت٠تأخذ seed ÙØªÙشئ اÙÙgenerator Ø¨ÙØ°Ù اÙÙ
Ø¹Ø§Ø¯ÙØ©.
٠ثا٠عÙÙ Ø§Ø³ØªØ®Ø¯Ø§Ù ÙØ§:
let generator = pseudoRandom(1);
alert(generator.next().value); // 16807
alert(generator.next().value); // 282475249
alert(generator.next().value); // 1622650073
function* pseudoRandom(seed) {
let value = seed;
while(true) {
value = value * 16807 % 2147483647
yield value;
}
};
let generator = pseudoRandom(1);
alert(generator.next().value); // 16807
alert(generator.next().value); // 282475249
alert(generator.next().value); // 1622650073
ÙØ§ØØ¸ Ø£Ù ÙØ°Ø§ ÙÙ Ù٠ع٠ÙÙ Ø¨Ø¯Ø§ÙØ© Ø¹Ø§Ø¯ÙØ© ÙÙØ°Ø§:
function pseudoRandom(seed) {
let value = seed;
return function() {
value = value * 16807 % 2147483647;
return value;
}
}
let generator = pseudoRandom(1);
alert(generator()); // 16807
alert(generator()); // 282475249
alert(generator()); // 1622650073
ÙÙØ°Ø§ ÙØ¹Ù
Ù Ø£ÙØ¶Ùا ÙÙÙÙ ÙÙØ¯Ùا Ø§ÙØ¥Ù
ÙØ§ÙÙØ© Ø£Ù ÙÙØ±Ø± باستخداÙ
Ø§ÙØªÙرار for..of ÙØ§Ø³ØªØ®Ø¯Ø§Ù
تÙÙÙ٠اÙÙgenerator ÙÙØ°Ø§ ÙÙ
Ù٠أ٠ÙÙÙÙ Ù
ÙÙØ¯Ùا ÙÙ Ù
ÙØ§Ù Ù
ا.