مشاكل العالم الحقيقي مع خلط ساذج

أكتب عددًا من المقالات التي تهدف إلى تدريس مبادئ البرمجة من خلال استخدام موضوعات متعلقة بوكر. حاليا ، أنا أعمل على موضوع خلط.

كما يشير يشير Jeff Atwood إلى CodingHorror.com ، طريقة واحدة بسيطة (خلط من خلال صفيف وتبديل كل بطاقة مع بطاقة عشوائية في مكان آخر في المصفوفة) يخلق توزيع متفاوت للتباديل. في التطبيق الفعلي ، أود فقط استخدام Knuth Fisher-Yates shuffle لعشوائية أكثر تجانسًا. ولكن ، لا أريد أن أفسد شرحًا لمفاهيم البرمجة باستخدام خوارزمية أقل ملاءمة للمبرمج.

وهذا يقودنا إلى السؤال: ما مدى الفائدة التي ستجنيها قبعة سوداء إذا عرفت أنك تستخدم تبديلًا ساذجًا من سطح السفينة المكون من 52 ورقة؟ يبدو أنه سيكون صغيراً بشكل لا متناهي الصغر.

0

5 إجابة

إن خلط ورق اللعب في الأكشاك هو تغيير بسيط مقارنة بالتبديل الساذج: قم فقط بتبديل أي بطاقة في الجزء المتبقي (غير المختلط) من سطح السفينة بدلاً من أي مكان في السطح بأكمله. إذا كنت تفكر في ذلك كاختيار مرارًا وتكرارًا للبطاقة التالية بالترتيب من البطاقات المتبقية التي لم يتم الحصول عليها ، فهذا أمر بديهي أيضًا.

أنا شخصياً أعتقد أن تدريس خوارزمية ضعيفة عندما لا يكون الأمر أكثر تعقيداً (وأسهل في التصور!) هو أسلوب سيئ.

0
وأضاف
أنا أتفق. في هذه الحالة ، أعتقد أنه ينبغي إظهار الخوارزميتين وتفسير لماذا يكون أفضل من الآخر. في هذه الحالة ، إنه تغيير بسيط للغاية ، وفي رأيي لا يجعل الأمر أكثر تعقيدًا.
وأضاف المؤلف some, مصدر

مثلما كان جانبا ، كان هناك مشاركة مدونة عبر ITtoolbox حول خلط الورق الذي قد يثير الاهتمام عندما يتعلق الأمر بمحاكاة تبديل عشوائي.

بالنسبة إلى سؤالك ، ضع في اعتبارك أن هناك 52! تكوينات سطح السفينة التي يمكن للمرء أن تبدأ مع ذلك قد تلعب دورا في حيث تهبط الأشياء كما هو الحال في مثال جيف من سطح السفينة بطاقة 3 ، لاحظ أن 1 في التمثيل الممثلة يحدث في كل فتحة مرة واحدة. لاحظ أيضًا أنه يجب أن يكون لديك بضعة آلاف من الأمثلة قبل أن يتضح عندما تكون الميزة ، ولكن مع سطح السفينة لن يكون من المرجح أن تبدأ مرة أخرى مع نفس المجموعة الأولية ، أليس كذلك؟ كنت تأخذ أوراق التعامل ووضعها في القاع وترتيبها مما لا يرجح أن أكرر.

0
وأضاف

لا يشبه أنك تكتب برنامج لعبة البوكر الذي سيتم استخدامه لموقع مقامرة حقيقي عبر الإنترنت. إن القدرة على خداع شخص ما في البرنامج ليست مشكلة كبيرة عندما تقوم بتدريس الأشخاص كيفية البرمجة.

اترك ملاحظة تفيد بأن هذا نموذج سيئ للعالم الحقيقي (مع الإشارة إليه على أنه عيب أمني محتمل) ، ومجرد الاستمرار في التدريس.

0
وأضاف
لم أكن ، في الوقت الذي كتبت فيه ، أدركت أن الفرق بسيط للغاية. أوافق: أخبرهم بخوارزمية التحويل الجيدة. ربما يمكن أن تكون التفاصيل الدقيقة حول "لماذا" "الرجوع إلى هذه الأدبيات".
وأضاف المؤلف Keith B, مصدر
لا ، لكن الأشخاص الذين يقرؤون هذه المقالات قد ينتقلون إليها. من الأهمية بمكان أن يكون خلط الأوراق بشكل صحيح أمرًا مهمًا ، لأن ارتكاب الخطأ قد تسبب في حدوث كسر من قبل.
وأضاف المؤلف afrazier, مصدر

شخصي.

يبدو أنه سيكون صغيرًا بشكل لا متناهٍ.

يوافق على.

0
وأضاف

It turns out the advantage is quite significant. Check out this article

جزء من المشكلة هو الخوارزمية المعيبة ، ولكن جزء آخر هو افتراض أنه يمكنك الحصول على أرقام "عشوائية" من جهاز كمبيوتر.

0
وأضاف