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

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

مغلقرائج
بدأه Snack3r في 25 يونيو 2010 · 322 رد · 21,470 مشاهدة · في اختبر قداراتك
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

بعد غيبة (دامت عدة أشهر) عن هذا المنتدى الغالي .. ها أنا أعود إليكم من جديد و بجعبتي بعض الأفكار التي حاولت أن أطبقها على أرض الواقع لكي تُأتي أُكلها بإذن الله.

الفكرة عبارة عن مسابقة .. الهدف منها هو تبادل الخبرات و تطوير المهارات, ولكي تحصل الاستفادة بشكل أكبر قررت أن أبدأ بلغز بسيط حتى يتمكن المبتدئون أمثالي من مسايرة هذا الركب.

فكرة المسابقة:

أقوم بوضع تمرين في لغة السي أو في السي++ ثم أحدد فترة زمنية معينة بحيث يطرح فيها الأعضاء محاولاتهم في هذا التمرين و بعد انتهاء الفترة المحددة أقوم بوضع حل التمرين السابق و هكذا الحال بالنسبة لباقي الأعضاء .. بمعنى :

يقوم عضو آخر بوضع تمرين معين و يحدد الفترة المناسبة و بعد انتهاء الفترة يقوم بوضع حل التمرين.

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

قوانين الموضوع:

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

2-يمكن و ضع أكثر من تمرين.

3-في حالة أراد العضو وضع تمرين معين فيجب عليه أولا معرفة حله و إلا فليدعه جانبا كما يجب عليه انتظار انتهاء الفترة الزمنية المحددة (حيث سيضع صاحب التمرين حله) عندئذ يمكنه طرح التمرين.

4-كتابة التمرين و تفصيل المطلوب بشكل واضح.

5-تحديد الفترة الزمنية عند وضع التمرين مع العلم أن الفترة الزمنية لا تتعدى 5 أيام كحد أقصى.

6-عندما تنتهي الفترة الزمنية التي حددها صاحب اللغز يقوم بتقديم جميع الحلول المقترحة لللغز مع الشرح المفصل (يطلب من كل عضو أن يشرح طريقته و يرسل الشرح على الخاص) ثم يضع الأكواد بالإضافة إلى الشرح عند نهاية الفترة الزمنية المحددة.

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

و الآن لنبدأ على بركة الله

نص اللغز:

لديك ألف باب تم ترقيمهم من 1 و حتى 1000 و كذلك 1000 شخص يحملون نفس الترقيم, قمنا بإدخال الأشخاص من الأبواب حسب القانون التالي:

شرط العبور:إذا كان رقم الباب مضاعف لرقم الشخص, فمثلا:

الشخص 1 يعبر جميع الأبواب.

الشخص 2 يعبر الأبواب رقم 2 و 4 و 6 و ... و 1000

الشخص رقم 3 يعبر الأبواب رقم 3 و 6 و 9 و ...

...

الشخص رقم 500 يعبر الأبواب رقم 500 و 1000 فقط

الشخص 501 يعبر الباب رقم 501 فقط

و هكذا

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

كم عدد الأبواب التي ستكون مفتوحة بعد مرور الألف شخص ؟

المدة الزمنية:يومين.

ملاحظة: المحاولات تُرسل لي على الخاص و سأكتفي بالإشارة إلى صحة أو خطأ المحاولة لأضعها (إن كانت صحيحة) مع الحلول عند نهاية الفترة المحددة.

أرجوا منكم تقييم الفكرة و إنعاش الموضوع.

دمتم في رعاية الله و حفظه.

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 16 يوليو 2010 في 18:44 — السبب: طلب من صاحب الموضوع

8
#2

يا أخي تريد أقل عدد من الأبواب المفتوحه؟

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

3 −3
#3

السلام عليكم

تم ارسال الحل..

تم تعديل هذه المشاركة بواسطة xpero في 25 يونيو 2010 في 13:32

#4
هويدي كتب:

يا أخي تريد أقل عدد من الأبواب المفتوحه؟

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

كل شخص سيدخل من جميع الابواب التي يساوي رقمها احد مضاعفات رقمه.

و لا تنسى ان هناك عمليتين : اذا كان الباب مغلق سيقوم الشخص بفتحه و اذا كان الباب مفتوحا سيقوم الشخص باغلاقه.

#5

شكراً على الطرح الجميل

فكرة رائعة

جاري إرسال الحل . . .

1 −1

البرمجة = الرياضيات

#6
اقتباس
يا أخي تريد أقل عدد من الأبواب المفتوحه؟

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

مرحبا بك

يبدوا أنك لم تفهم اللغز بشكل سليم !

كل شخص سيعبر الباب الذي يحمل رقمه أو مضاعفات رقمه و سيغلق الباب إذا كان مفتوحا أو يفتحه إذا كان مغلقا باعتبار أن الأبواب كانت مغلقة في البداية .. يعني : الشخص رقم 1 سيفتح جميع الأبواب بينما سيقوم الشخص رقم 2 بغلق الأبواب 2 و 4 و 6 و هكذا حتى نصل إلى الشخص رقم 1000.

السؤال المطروح هو:كم عدد الأبواب المفتوحة عند عبور الألف شخص !؟

اقتباس
تم ارسال الحل.. سيكون عدد الابواب المفتوحة هو 212.(اذا لم اكن مخطئا)

محاولة جيدة و لكنها تحتوي على خطأ منطقي من ناحية الفكرة التي اعتمدتَ عليها :blush:

ملاحظة:في المرات القادمة أرجوا من الأعضاء الكرام عدم كتابة الحل أو عدد الأبواب المفتوحة و إنما الإكتفاء بإرسال الحل على الخاص و سأقوم بالإشارة إلى صحة أو خطأ المحاولة.

اقتباس
شكراً على الطرح الجميل

فكرة رائعة

جاري إرسال الحل . . .

اله يبارك فيك :)

تصحيح المحاولات

1-أول محاولة وصلتني كانت للأستاذ المقتدر و مشرفنا الغالي خالد الشايع و قد اعتمد على فكرة في غاية الروعة (تليق بمقام المشرفين) كما أن الحل كان في أسطر معدودة :ohmy:

2-المحاولة الثانية كانت من طرف العضو الكريم namespace و قد كانت محاولة صائبة و جميلة أيضا.

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

دمتم بود.

1
#7

شكرا على التنبيه اخي جاري اعادة النظر في المحاولة :)

#8

تم ارسال المحاولة رقم 2.

#9
laugh.gif تم الحذف.

تم تعديل هذه المشاركة بواسطة xpero في 25 يونيو 2010 في 14:06

#10
اقتباس
تم ارسال المحاولة رقم 2.

محاولة غير صائبة ! ركز يا أخي فاللغز بسيط جدا .. يمكنك حله بكل سهولة :)

تم تعديل المشاركة :wink:

تم تعديل هذه المشاركة بواسطة أحمد المتألق في 25 يونيو 2010 في 14:17

#11

أحمد المتألق

حسنا سأعيد المحاولة laugh.gif

+

بخصوص"-في حالة وجود أكثر من محاولة للتمرين المطروح فأحقهم بطرح التمرين هو أول من وضع الحل. " فأنا ظننت انك تحدث عن احتساب المحاولات.

اسف لقد تم حذف اللغز :)

#12

المطلوب في هذا اللغز ببساطة هو استبدال قيم متغيرين منطقيين دون الحاجة إلى متغير ثالث

المهلة : 3 أيام

أنتظر ردودكم هنا وحلولكم للغز على الخاص

البرمجة = الرياضيات

#13
اقتباس
المطلوب في هذا اللغز ببساطة هو استبدال قيم متغيرين منطقيين دون الحاجة إلى متغير ثالث

المهلة : 3 أيام

أنتظر ردودكم هنا وحلولكم للغز على الخاص

لم تلتزم بقانون المسابقة:

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

اللغز القادم من نصيب الأستاذ خالد الشايع لأنه هو أول من قام بحل اللغز (أرسل الحل على الخاص) , طبعا هذا بعد أن تنتهي الفترة الزمنية التي حددتها و أقوم بوضع حلول اللغز المقترحة.

#14
أحمد المتألق كتب:

لم تلتزم بقانون المسابقة:

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

اللغز القادم من نصيب الأستاذ خالد الشايع لأنه هو أول من قام بحل اللغز (أرسل الحل على الخاص) , طبعا هذا بعد أن تنتهي الفترة الزمنية التي حددتها و أقوم بوضع حلول اللغز المقترحة.

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

لأن سرعة الرد تعتمد على امكانية متابعة الموقع أولاً بأول

والبعض لا تحالفه الظروف بالمتابعة - خصوصاً أن المشرفين موجودون بطبيعة الحال - :)

ولا أرى ذاك الضرر بوجود أكثر من مسابقة في وقت واحد

لأن حل المسابقة يأخذ دقائق بالكثير ( طبعاً الأمر يتفاوت من شخص لآخر ومن مسألة لأخرى )

وباقي الوقت المتاح للانتظار فقط busy waiting

البرمجة = الرياضيات

#15

لقد قمت بارسال المحاولة رقم 3 وهي الاخيرة :) اتمنى ان تكون صحيحة.

#16

وأنا ايضا ارسلت الحل ع الخاص ..

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#17
اقتباس
لقد قمت بارسال المحاولة رقم 3 وهي الاخيرة :) اتمنى ان تكون صحيحة.

كويس أوي و فكرتك زي الفل .. كنت أعرف أنك ستبدع في حل اللغز :)

اقتباس
وأنا ايضا ارسلت الحل ع الخاص ..

محاولة صحيحة و جميلة أيضا من شخص جميل مثلك و يكون أجمل عندما يتواصل معنا في هذه المسابقة ليفيد و يستفيد :)

عندما قمتُ بالتسجيل في المنتدى كنتَ أول من قام بالرد علي :cool: و بعدها اعتزلتَ الردود إلى الآن .. و هذا هو ردك الثاني :blush:

بالنسبة لمشرفنا الغالي الأستاذ محمد علاء الدين فقد بعث لي بمحاولة غير صائبة و السبب في ذلك هو وجود خلل في الفكرة مما منعه من الوصول إلى حل اللغز , فكرة الأستاذ علاء الدين قريبة شيئا ما من فكرة xpero الأولى !

قام الأخ namespace بإرسال طريقة أخرى لحل اللغز جميلة جدا و قصيرة أيضا :)

#18

صحيح لقد اهملت نقطة مضاعفات الرقم :huh:

مدونتي: C++ Tips and Tricks

#19
اقتباس
صحيح لقد اهملت نقطة مضاعفات الرقم

ننتظر إبداعاتك يا أستاذنا الغالي :wub:

1
#20

أحمد المتألق

شكرا اخي :) الحمد لله انها كانت صحيحة laugh.gif

تم تعديل هذه المشاركة بواسطة xpero في 25 يونيو 2010 في 19:33

#21
اقتباس
شكرا اخي :) الحمد لله انها كانت صحيحة Posted Image

مبدع كعادتك :)

#22
أحمد المتألق كتب:

محاولة صحيحة و جميلة أيضا من شخص جميل مثلك و يكون أجمل عندما يتواصل معنا في هذه المسابقة ليفيد و يستفيد :)

عندما قمتُ بالتسجيل في المنتدى كنتَ أول من قام بالرد علي :cool: و بعدها اعتزلتَ الردود إلى الآن .. و هذا هو ردك الثاني :blush:

يعني انا اللي حليت من اول محاولة ..

مبروك علي الجائزة ..

بالنسبة للردود . كنت في فترة اختبارات . وبعدها رجعت عمان . والاجازة ماكان في وقت للمنتدى ..

الحين رجعت بس مزاجي اكسيس هاليومين .

تحياتي

1 −1

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#23
اقتباس
يعني انا اللي حليت من اول محاولة ..

مبروك علي الجائزة ..

لستَ الأول ! فقد سبقك الأستاذ خالد الشايع و الزميل namespace :cool:

اقتباس
بالنسبة للردود . كنت في فترة اختبارات . وبعدها رجعت عمان . والاجازة ماكان في وقت للمنتدى ..

الحين رجعت بس مزاجي اكسيس هاليومين .

بالتوفيق :) و أرجوا لك المزيد من النجاح و الإبداع :wub:

تم تعديل هذه المشاركة بواسطة أحمد المتألق في 25 يونيو 2010 في 19:53

#24

السلام عليكم

تم إرسال الحل

لكنه طويل بعض الشيء، ودرجة نموه قريبة من O(N^2) مقسومة على اثنين :(

أرجو أن يضع الإخوة أيضاً (إن أمكن) درجة نمو خوارزمياتهم لأتمكن من معرفة فعالية خوارزميتي :)

1

هذه الجملة خاطئة  :wacko: 


#25
اقتباس
السلام عليكم

تم إرسال الحل

لكنه طويل بعض الشيء، ودرجة نموه قريبة من O(N^2) مقسومة على اثنين :(

أرجو أن يضع الإخوة أيضاً (إن أمكن) درجة نمو خوارزمياتهم لأتمكن من معرفة فعالية خوارزميتي :)

حل سليم و جميل أيضا :) الله يحفظك من العين.

هذا الموضوع مغلق.

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