- 0
سجل دخول لمتابعه هذا
متابعين
0

لغز برمجي, التحدي مفتوح بأي لغة برمجة
بواسطة
khatibe_30,
-
يستعرض القسم حالياً 0 members
لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .
بواسطة
khatibe_30,
لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .
تم النشر منذ
السلام عليكم أعزائي, مرحبا بكم
أقدم لكم مسألة حسابية (مشكلة) و المطلوب إيجاد الحل البرمجي لها.
المعطيات:
نفترض أنه لدينا 3 أنابيب بسعة متساوية, سعة كل أنبوب 6 لتر, و وعاءين (2 وعاء) نستخدمهما لنملأ الأنابيب بالماء, في كل مرة نسكب الماء في أنبوب ما من الأنابيب (الترتيب غير مهم) باستخدام أحد الأوعية إلى أن نملأ كل الأنابيب.
الوعاء الأول سعته 3 لترات, و الوعاء الثاني سعته 2 لترات.
الشرط الوحيد الذي يجب أن نتقيد به هو أن لا نجد مستوى الماء متساوي في أنبوبين متجاورين أثناء أي مرحلة من العملية, مثلا أنظر إلى الصورة:
العملية على اليسار صحيحة, لأنه لا يوجد أنبوبين متجاورين لهما نفس المستوى من الماء
العملية على اليمين, غير مسموح القيام بها, الأنبوب الثاني و الثالث لهما نفس المستوى, لذلك يجب أن نتوقف.
إذن, يجب أن نملأ الأنابيب, نسكب كمية من الماء باستعمال أحد الأوعية في كل أنبوب إلى أن نملأه باستخدام مجموعة من الأوعية, على شرط عدم وصول الماء لنفس المستوى في أنبوبين متجاورين, في المثال السابق, من أجل 3 أنابيب, سعة كل أنبوب 6 لترات, يوجد طريقتين لملأ الأنابيب كما في الصورة:
الطريقة الأولى, على اليسار: الأنبوب الأول 3-3, الأنبوب الثاني 2-2-2, الأنبوب الثالث 3-3
الطريقة الثانية, على اليمين: الأنبوب الأول 2-2-2, الأنبوب الثاني 3-3, الأنبوب الثالث 2-2-2
و من أجل 3 أنابيب, سعة كل أنبوب 8 لترات, يوجد 4 طرق, و هذه إحدى الطرق في الصورة:
2-3-3, 3-3-2, 2-3-3
في حين أن العملية التالية خاطئة:
3-3-2, 2-2-2-2, 3-2-3
خلال العملية, نلاحظ أن الأنبوب الثاني و الثالث يمكن أن يكون الماء فيهما في نفس المستوى باستعمال سلسلة الأوعية المعطاة لكل أنبوب.
المطلوب:
أوجد عدد الطرق التي يمكن أن نملأ بها 10 أنابيب, سعة كل أنبوب 32 لتر, يمكنك أن تستعمل أي لغة برمجة تريد في كتابة الكود الذي سيقوم بالحساب.
أي, من أجل N = 10 و L = 32 كم يوجد من عدد الطرق ملأ الأنابيب؟
الأفضل أن تكتب الكود الذي سيعمل في الحالة العامة, من أجل عدد أنابيب N, كل أنبوب بسعة L لترات, أوجد عدد الطرق التي يمكن أن نملأ بها الأنابيب.
معطيات مساعدة:
إليك هذه النتائج المحسوبة مسبقا:
من أجل N = 3 و L = 8 هناك 4 طرق
من أجل N = 3 و L = 9 هناك 8 طرق
من أجل N = 5 و L = 10 هناك 28 طريقة
من أجل N = 6 و L = 13 هناك 452 طريقة
من أجل N = 5 و L = 16 هناك 1796 طريقة
ملاحظة: قبل أن أكتب الموضوع أجريت بحثا في المنتدى حتى أتجنب التكرارا و لم أجد موضوعا مشابه, لذلك, إذا كان الموضوع مكررا فأرجو حذفه و إبلاغي.
شارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه