سؤال

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

مثل يشير جيف أتوود إلى موقع CodingHorror.com, ، إحدى طرق الخلط البسيطة (التكرار عبر مصفوفة وتبديل كل بطاقة ببطاقة عشوائية في مكان آخر في المصفوفة) تؤدي إلى إنشاء توزيع غير متساوٍ للتباديل.في التطبيق الفعلي، سأستخدم فقط نوث فيشر ييتس خلط ورق اللعب لمزيد من العشوائية موحدة.لكنني لا أريد أن أعرقل شرح مفاهيم البرمجة باستخدام خوارزمية أقل ملاءمة للمبرمجين.

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

هل كانت مفيدة؟

المحلول

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

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

نصائح أخرى

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

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

وتبين أن الميزة كبيرة جدًا. تحقق من هذه المقالة

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

تتمثل إحدى الخوارزميات البسيطة والعادلة للتبديل في تعيين رقم فاصلة عائمة عشوائي (على سبيل المثال، بين 0 و1) لكل بطاقة في المجموعة، ثم فرز المجموعة حسب الأرقام المخصصة.

هذا في الواقع مثال مثالي للطلاب لإدراك أنه لمجرد أن شيئًا ما بديهي، فإن الخلط الساذج في حالتنا، لا يعني أنه صحيح.

شخصي.

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

يوافق.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top