الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مسألة الملك والحكيم

بدأه عامر الشابي في 8 فبراير 2014 · 5 رد · 960 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

عرف ملك لحبه وكرمه للعلماء والحكماء,فأراد أن يكرم أحد الحكماء.

 

فعرض الملك على حكيم ما يتمنى تحقيقه فكان جواب الحكيم الذكي كالآتي:

 

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

 

الأسئلة:

 

1-أوجد عدد حبات القمح ؟

 

* ذا علمت ان حبة القمح تزن 1 غرام

 

2-ما هو وزن القمح الذي سيحصل عليه هذا الحكيم ؟

 

* اذا علمت ان كلغ الواحد من القمح سعره 50 وحدة نقدية

 

3-ماهي الثروة التي سيحصل عليها الحكيم الذكي؟

 

المطلوب:

 

كتابة برنامج الذي سيقوم بحل المسألة مع شرح كل خطوة يعمل عليها البرنامج

 

سأشرح الطريقة الحل بعد 4 أيام فيمكنكم أن تكتبوا برامجكم وتضعوها هنا ليتم تقييمها

Untitled-18.jpg

#2

1 عدد الحبات = 1 +2+4+8+16+32+....+64^2    =  2^0 + 2^1+.....+2^64= 2^65-1

مجموع ال 64حد الأول لمتتالية هندسية أساسها 2 هو  (1-2)/(1 - 64^)

 

و منه مجموع الحدود هو  :36893488147419103231

 

2 وزن القمح هو  36893488147419103231   غرام

 

3 سعر الكيلوغرام هو 50 وحدة نقدية معناه سعر الغرام هو 0.05 وحدة نقدية و منه الثروة التي حصل عليها هي  :  1844674407370955161.55   وحدة نقدية

 

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

 

لو كان عدد المربعات متغيرا و الوزن و السعر كذلك عندها يكون من الجيد صنع بررنامج أما في هذه الحالة فصنع برنامج يستهلك وقت أكثر مما يستهلكه الحل اليدوي

 

البرمجة وضعت للتسهيل لا للتصعيب.

#3

الهدف من البرنامج ليس ما ذكرته أنت فلو كان كذلك فهذه المسالة بالنسبة لوضعيات أخرى لا شيء 

الهدف متجه من لا ليس له خبرة في البرمجة أصلا فكتابة حل لهذه المسألة من طرف متعلم جديد يعتبر عمل جيد للمضي إلى الأمام

أرجوا أن تكون الفكرة وصلت

Untitled-18.jpg

#4

آسف جدا لم أكن أعلم أن هذا التمرين موجه للمبتدئين.

 

علي العموم أنا قمت بالحل فليحاول الجديدون باللغة صنع البرنامج.

#5

حسنا لم أرى أي تفاعلات وقد مضت أربعة أيام


 


في بداية الأمر نتبع ألغوريتم لحل المسألة خطوة بخطوة:


 


الحكيم طلب من الملك أن يضع في رقعة الاولى من رقعة الشطرنج حبة وفي الرقعة الثانية الضعف


 


إلى آخر رقعة,ونحن نعلم ان مجموع رقع الشطرنج 64,فرضا أننا لدينا 4 رقع ستكون على الشكل التالي:


 


lQIEO.png


 


سنقوم بما طلبه الحكيم وهو في رقعة الاولى حبة واحد من القمح والرقعة الثانية الضعف إلى آخر رقعة

 

08rad.png

 

والمجموع سيكون 15 (1+2+4+8) سنرمز للمجموع القمح بـTotal


 


2- السؤال الثاني إيجاد وزن القمح علما أن وزن الحبة الواحد يساوي 1 غرام ومن هذا نستنتح أن وزن القمح هو 15 غرام (15*1)


 


3- السؤال الثالث والأخير إيجاد الثروة التي حصل عليها الحكيم الذكي علما أن وزن كلغ الواحد من القمح يساوي 


 


50 دينار ومن هذا نستنتج أن وزن 1000 غرام يساوي 50 دينار وبإستعمال قاعدة ثلاثية نجد أن الفلاح حقق ثروة


 


تساوي 0,75 دينار.وبدون إستعمال قاعدة ثلاثية إذا كان وزن كلغ الواحد يساوي 50 دينار فإن وزن غرام الواحد 


 


يساوي 0,05 دينار ومن هذا نجد ثروة التي حققها الحكيم هي 0,75 دينار.


 


سنطبق هذا الغوريتم على الشكل البرمجي:


import math

a = 2

d = [1, 2]

for g in range(64):

    a = a * 2

    d.append(a)

dd = d.pop(-1) and d.pop(-1)

total = sum(d)

weight = total * 1

prize = total * 0.05

print "Total grain is: %d" %total

print "Weight of grain is: %d g" %weight

print "Total price is: %s $" %prize

أي إشكال في الكود ضع إشكال وسأجيب بإذن الله


تم تعديل هذه المشاركة بواسطة عامر الشابي في 11 فبراير 2014 في 18:26

1

Untitled-18.jpg

#6

لقد أخطأت في حلي من المفترض أن أجمع حتي  2^63

لكني جمعت حتي     2^64

 

و بالتالي عدد الحبات يساوي   2^64-1

 

و يساوي   18446744073709551615

 

برنامج الأخ عامر الشابي يعطينا نفس النتيجة.

 

هذا تمرين متسلسل يعني إذا أخطأت في السؤال الأول ستكون جميع النتائج خاطئة كما حصل معي

تم تعديل هذه المشاركة بواسطة kenham في 13 مارس 2014 في 14:17

مواضيع مشابهة