فتح لغز الشيخ الذي خلف 81 نخلة و 9 أولاد بالبايثون - منتديات الجلفة لكل الجزائريين و العرب

العودة   منتديات الجلفة لكل الجزائريين و العرب > منتديات التقنية > منتدى البرمجة

منتدى البرمجة كل ما يتعلق بلغات البرمجة، فيجوال بيسيك , سي ++ , دلفي , أكسيس , جافا , هتمل...

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

آخر المواضيع

فتح لغز الشيخ الذي خلف 81 نخلة و 9 أولاد بالبايثون

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 2016-06-20, 21:26   رقم المشاركة : 1
معلومات العضو
nedjoui
عضو مجتهـد
 
الصورة الرمزية nedjoui
 

 

 
الأوسمة
وسام المسابقة اليومية 
إحصائية العضو










B18 فتح لغز الشيخ الذي خلف 81 نخلة و 9 أولاد بالبايثون

السلام علكيم
هذه الأسطر من أجل فتح اللغز التالي بالبايثون وفهمه يتطلب معرفة ولو بسيطة بالبايثون
اللغز:
شيخ لديه 81 نخلة النخلة الأولى تنتج 1 كغ والثانية 2 كغ والثالثة 3 كغ...... والنخلة الثمانون تنتج 80 كغ والواحد وثمانون تنتج 81 كغ
توفى الشيخ وترك تسعة أولاد سيرث كل واحد منهم تسع نخلات ولكن يجب أن تكون كمية التمر لكل واحد منهم متساوية
عليك الآن بتقسيم هذا النخل على الأولاد
# حساب كمية التمر التي سيتحصل عليها كل ابن
# إنشاء ليست عناصرها من واحد إلى واحد وثمانون. كتبنا إثنان وثمانون لأن البايثون لا يحسب العدد الأخير
# حساب مجموع كل التمر وقسمته على تسعة وهو عدد الأولاد

كود:
date=list(range(1,82))  
print("كمية التمر التي سيتحصل عليها كل ابن هي: ",sum(date)/9)
# القيام بتوزيع النخل بالأسطر التالية

# 1- جلب مودل الاختيار العشوائي من مودل العشوائية في numpy وذلك لأن هذا الموديل يمكننا من اختيار مجموعة من الأعداد العشوائية في آن واحد من قائمة
# هذه الطريقة from random import choice تمكننا من اختيار عدد واحد ولهذا فهي لا تفيدنا في هذه الحالة ولكن يمكننا أن ننشئ function تمكننا من اختيار مجموعة أعداد عشوائيا
# يقوم البايثون بجلب الموديل بهذا السطر from numpy.random import choice فإن لم يجده ينتقل إلى الاستثناء بعد except*وهو إنشاء دالة تعمل نفس عمل الموديل.
كود:
try:
   from numpy.random import choice
   
except:      # numpy.random.choice إنشاء دالة اختيار عشوائي معادلة لهذه  
   def choice(a, x=9):  #  كتب اسم شويز حتى لا نغير في الأسطر التي في الأسفل
        l=[]                    # إنشاء قائمة فارغة
        from random import choice    #  جلب شويز من الموديل العشوائية راندم يكون مع البايثون ولا يحتاج إلى إضافة
        for i in range(x):     #    تحديد عدد الاختيارات 
           l.append(choice(a))        #  إضافة عدد الخيارات إلى القائمة
        return l
# 2- إنشاء قائمة بعدد النخل
كود:
a=list(range(1,82))
x=0   # نحتاج إليه فيما بعد
# 3- الدخول في الحلقة التكرارية للبحث عن الاحتمالات التسعة
كود:
while True:
   f=list(choice(a,9))     #  اختيار تسعة أعداد عشوائيا من قائمة النخيل الكلية لإنشاء قائمة جديدة بتسع نخلات
   f.sort()                      #   القيام بترتيب الأعداد في القائمة
   x=x+1                      # يقوم بإضافة واحد للإكس في كل مرة قام بالتجريب وعندما ينهي العمل سنتعرف على مرات التجريب
   if sum(f)==369 and len(set(f))==9:   # sum(f)==369 للتأكد من أن وزن التمر في القائمة صحيح # len(set(f))==9 لتجنب تكرار الأعداد في القائمة الواحدة
         print(f)                      #  إذا تحقق الشرطين في الأعلى قم بطبع القائمة لأنها صحيحة
         a=list(set(a)-set(f))     #  احذف عناصر القائمة التي طبعتها من قائمة النخيل الكلية
   else:                              # إذا لم تتحقق الشروط في الأعلى أعد المحاولة
     pass
   if len(a)==0:    # إنهاء الحلقة التكرارية عند الحصول على كل النتائج
            break
print("")       # سطر فارغ
print("عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: ",x)   # يقوم البايثون بطبع عدد مرات التجريب التي قام بها
رابط التحميل: https://www.4shared.com/archive/ZSON3...__81___9_.html
المعذرة عن الشرح الغير كافي وإليكم بعض النتائج المتحصل عليها بهذا الأسطر:
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0

[11, 15, 19, 22, 31, 62, 68, 70, 71]
[1, 4, 18, 25, 29, 65, 69, 78, 80]
[8, 12, 17, 32, 46, 54, 61, 67, 72]
[9, 24, 30, 42, 43, 44, 48, 50, 79]
[10, 23, 36, 37, 40, 47, 52, 60, 64]
[7, 14, 20, 34, 41, 49, 51, 76, 77]
[3, 5, 33, 38, 53, 55, 57, 59, 66]
[2, 6, 21, 27, 45, 58, 63, 73, 74]
[13, 16, 26, 28, 35, 39, 56, 75, 81]

عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 6911
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0

[4, 21, 22, 27, 44, 46, 59, 72, 74]
[6, 11, 29, 34, 47, 49, 57, 67, 69]
[5, 16, 28, 40, 42, 45, 62, 65, 66]
[9, 15, 18, 26, 35, 58, 63, 68, 77]
[3, 7, 13, 32, 37, 56, 64, 78, 79]
[10, 12, 20, 23, 39, 43, 70, 71, 81]
[1, 14, 25, 31, 38, 52, 53, 75, 80]
[2, 19, 24, 36, 48, 50, 54, 60, 76]
[8, 17, 30, 33, 41, 51, 55, 61, 73]

عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 6053
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0

[3, 14, 22, 28, 43, 48, 59, 75, 77]
[1, 18, 27, 32, 38, 58, 60, 63, 72]
[6, 7, 24, 33, 40, 47, 66, 70, 76]
[5, 20, 21, 30, 34, 36, 65, 78, 80]
[4, 10, 16, 37, 41, 52, 55, 73, 81]
[2, 12, 39, 44, 45, 46, 49, 53, 79]
[8, 13, 26, 29, 31, 54, 68, 69, 71]
[11, 15, 19, 25, 51, 56, 61, 64, 67]
[9, 17, 23, 35, 42, 50, 57, 62, 74]

عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 5335
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0

[7, 13, 22, 41, 43, 48, 59, 60, 76]
[17, 25, 26, 28, 30, 49, 54, 63, 77]
[2, 16, 34, 35, 42, 50, 51, 68, 71]
[5, 18, 23, 29, 40, 57, 58, 67, 72]
[1, 6, 19, 27, 36, 62, 64, 75, 79]
[4, 14, 21, 31, 33, 55, 56, 74, 81]
[11, 12, 20, 38, 45, 46, 53, 66, 78]
[3, 9, 15, 39, 44, 47, 69, 70, 73]
[8, 10, 24, 32, 37, 52, 61, 65, 80]

عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 4956
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0

[2, 13, 25, 28, 41, 42, 67, 74, 77]
[15, 19, 23, 26, 48, 49, 56, 61, 72]
[5, 17, 20, 27, 51, 52, 60, 62, 75]
[12, 16, 37, 38, 44, 45, 46, 58, 73]
[7, 8, 35, 40, 47, 50, 53, 63, 66]
[3, 9, 21, 29, 43, 54, 65, 69, 76]
[4, 18, 24, 31, 33, 39, 68, 71, 81]
[1, 6, 14, 34, 36, 55, 64, 79, 80]
[10, 11, 22, 30, 32, 57, 59, 70, 78]

عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 4836
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0

[1, 15, 25, 27, 44, 48, 58, 73, 78]
[17, 21, 24, 36, 42, 51, 53, 60, 65]
[4, 19, 20, 31, 41, 49, 63, 70, 72]
[6, 14, 22, 34, 39, 45, 54, 76, 79]
[5, 11, 16, 26, 43, 57, 59, 75, 77]
[3, 10, 13, 35, 37, 61, 64, 66, 80]
[18, 23, 28, 30, 32, 47, 55, 67, 69]
[2, 8, 29, 33, 40, 46, 62, 68, 81]
[7, 9, 12, 38, 50, 52, 56, 71, 74]

عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 4507
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0
[9, 22, 23, 26, 29, 30, 74, 76, 80]
[2, 19, 34, 41, 42, 47, 52, 54, 78]
[4, 18, 25, 36, 38, 50, 53, 70, 75]
[1, 11, 14, 27, 43, 65, 66, 69, 73]
[6, 16, 20, 33, 35, 58, 59, 63, 79]
[8, 13, 15, 31, 45, 55, 57, 68, 77]
[3, 17, 32, 37, 40, 51, 60, 62, 67]
[7, 10, 24, 39, 44, 46, 56, 71, 72]
[5, 12, 21, 28, 48, 49, 61, 64, 81]
عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 6557
كمية التمر التي سيتحصل عليها كل ابن هي: 369.0
[3, 11, 27, 33, 50, 51, 58, 64, 72]
[15, 19, 20, 29, 30, 52, 55, 74, 75]
[1, 28, 31, 35, 36, 46, 61, 65, 66]
[4, 9, 17, 41, 42, 43, 57, 77, 79]
[5, 12, 23, 32, 34, 44, 70, 71, 78]
[14, 18, 21, 25, 48, 53, 59, 62, 69]
[7, 10, 16, 24, 45, 56, 63, 68, 80]
[2, 22, 26, 37, 38, 47, 49, 67, 81]
[6, 8, 13, 39, 40, 54, 60, 73, 76]
عدد الإحتمالات التي قام بها البرنامج لإيجاد الحل هي: 6346








 

الملفات المرفقة
نوع الملف: rar فتح لغز الشيخ الذي خلف 81 نخلة و 9 أولاد.rar‏ (71.7 كيلوبايت, المشاهدات 8)

رد مع اقتباس
قديم 2016-07-03, 00:53   رقم المشاركة : 2
معلومات العضو
IhabZad
عضو جديد
 
إحصائية العضو










افتراضي

شكرا و بارك الله فيك عالمجهود
.
.
المبرمجون قليلون جدا في الجزائر خاصة المهتمين بالبايثون










رد مع اقتباس
قديم 2016-07-03, 17:30   رقم المشاركة : 3
معلومات العضو
BMZ
عضو جديد
 
إحصائية العضو










افتراضي

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

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



للمزيد اطلع على هذه المقالة

تحفة الأعداد لذوي الرشد والسداد









رد مع اقتباس
قديم 2016-07-27, 00:22   رقم المشاركة : 4
معلومات العضو
nedjoui
عضو مجتهـد
 
الصورة الرمزية nedjoui
 

 

 
الأوسمة
وسام المسابقة اليومية 
إحصائية العضو










افتراضي

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










رد مع اقتباس
قديم 2016-08-14, 01:27   رقم المشاركة : 5
معلومات العضو
إبراهيم01
عضو فعّال
 
إحصائية العضو










افتراضي

مشكوووووووووووووور
بارك الله فيك










رد مع اقتباس
قديم 2016-08-14, 01:27   رقم المشاركة : 6
معلومات العضو
إبراهيم01
عضو فعّال
 
إحصائية العضو










افتراضي

مشكوووووووووووووور
بارك الله فيك










رد مع اقتباس
إضافة رد

الكلمات الدلالية (Tags)
choice, python, random


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

الساعة الآن 10:47

المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية


2006-2024 © www.djelfa.info جميع الحقوق محفوظة - الجلفة إنفو (خ. ب. س)

Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc