فهم العشوائية المحاكاة لـ JavaScript: غوص عميق في Math.Random ()
غالبًا ما يعزز الجيل العشوائي على ما يبدو من الأرقام العشوائية في البرمجة التعقيد الأساسي ، وخاصة الطبيعة الحتمية لأجهزة الكمبيوتر. تستكشف هذه المقالة كيف تحاكي JavaScript العشوائية باستخدام Math.Random ()
، وكشف النقاب عن الميكانيكا وراء توليد ما نعتبره أرقامًا عشوائية.
أجهزة الكمبيوتر ، في جوهرها ، تنفيذ التعليمات بالتتابع. لذا ، كيف ينتجون أرقامًا تبدو عشوائية؟
"العشوائية" التي يقدمها Math.Random ()
ليست عشوائية حقًا ؛ انها العشوائية الزائفة. تستخدم مولدات الأرقام العشوائية الزائفة (PRNGs) خوارزميات رياضية لإنشاء تسلسل من الأرقام التي تظهر سلوكًا شبيهًا بعشوائية.
خصائص المفاتيح لـ prngs:
javaScript's Math.Random ()
عادةً ما تستخدم خوارزميات مثل XorShift أو Mersenne Twister (يعتمد الخوارزمية الدقيقة على محرك JavaScript ، مثل V8 في Chrome).
Math.Random () هو مولد الرقم العشوائي الأساسي لـ JavaScript. يعمل على النحو التالي:
ومن الأمثلة على ذلك 0.2315601941492 ، 0.6874206142281 ، أو 0.9912760919023.
// Random number between 0 and 1
console.log(Math.random());
// Random integer between 0 and 9
console.log(Math.floor(Math.random() * 10));
// Random number between 1 and 100
console.log(Math.floor(Math.random() * 100) 1);
الأعمال الداخلية لـ
، وإنشاء الرقم التالي في التسلسل.
لماذا تظل العشوائية الحقيقية بعيدة المنال
Math.Random () الخوارزمية الحتمية يعني أن تسلسله قابل للتكرار إذا كانت البذور والخوارزمية معروفة. بالنسبة للمهام الحساسة للأمان مثل التشفير ، تعد الأرقام العشوائية الآمنة المشفرة ضرورية ، والتي يتم إنشاؤها باستخدام API Crypto Web:
// Cryptographically secure random values
const array = new Uint32Array(5);
window.crypto.getRandomValues(array);
console.log(array);
تحدي العشوائية في الأنظمة الحتمية
للأمان والعشوائية الحقيقية ، أساليب التشفير ضرورية.
دعنا نقدر التفاعل المثير للاهتمام بين الحتمية والعشوائية المحاكاة التي تدفع الكود الخاص بنا!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3