من خلال تبديل العناصر عشوائياً ، فإنه يضمن أن كل طلب ممكن لديه فرصة متساوية للحدوث. var j ، x ، i ؛ لـ (i = A.Length-1 ؛ i> 0 ؛ i--) { j = math.floor (math.random () * (i 1)) ؛ x = a [i] ؛ a [i] = a [j] ؛ a [j] = x ؛ } إرجاع أ ؛ } تكرر هذه الخوارزمية من خلال الصفيف بترتيب عكسي ، وتبديل كل عنصر بعنصر عشوائي أمامه في الصفيف. يتم خلط الصفيف الناتج بسبب الطبيعة العشوائية للمقايضات.
الاستخدام
['1' ، '2' ، '3' ، '4' ، '5' ، '6' ، '7' ، '8' ، '9'] ؛ خلط ورق اللعب (myarray) ؛
إصدار es6
function shuffle(a) { var j, x, i; for (i = a.length - 1; i > 0; i--) { j = Math.floor(Math.random() * (i 1)); x = a[i]; a[i] = a[j]; a[j] = x; } return a; }
تنفيذ النموذج الأولي
يمكن تنفيذ هذه الخوارزمية كطريقة نموذج أولي لتسهيل خلط المصفوفات المباشر: القيمة: function () { ل (دعني أنا = this.length-1 ؛ i> 0 ؛ i--) { const j = math.floor (math.random () * (i 1)) ؛ [هذا [i] ، هذا [J]] = [هذا [J] ، هذا [i]] ؛ } إرجاع هذا ؛ } }) ؛
يتيح هذا التنفيذ خلط المصفوفات باستخدام بناء الجملة arr.shuffle ().
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3