السلام عليكم
هده أول مشاركة لي في منتدياتكم بدعوة من الأخ xpero
شكرا على المسابقة و جاري ارسال الحل ;)
السلام عليكم
هده أول مشاركة لي في منتدياتكم بدعوة من الأخ xpero
شكرا على المسابقة و جاري ارسال الحل ;)
اقتباسالسلام عليكم
و عليكم و السلام و رحمة الله و بركاته :)
اقتباسهده أول مشاركة لي في منتدياتكم بدعوة من الأخ xpero
مرحبا بك في منتديات الفريق العربي للبرمجة و إن شاء تفيد و تستفيد من خبرات المبرمجين المحترفين المتواجدين هنا :)
اقتباسشكرا على المسابقة و جاري ارسال الحل ;)
لعلك لم تقرأ :
اقتباستنبيه:
تم الإنتهاء من تسليم محاولات المتعلقة باللغز.
يتم الآن جمع و تنسيق الحلول المقترحة :)
ثم إن الحل الذي أرسلتَه كان بلغة السي شارب و هذا يخالف قوانين المسابقة إذْ تقتصر المسابقة على لغتي السي و السي++ فقط :mad:
الرجاء قراءة قوانين المسابقة قبل الإشتراك و شكرا.
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
أشكر الزملاء على التفاعل وأتمنى أن يكون التفاعل ذاته مع اللغز الثاني الذي سأقدمه لكم مساء اليوم بمشيئة الله
سيكون سلساً قدر الإمكان وأتمنى أن تتنوع الحلول كما رأينا هنا
البرمجة = الرياضيات
اقتباسأشكر الزملاء على التفاعل وأتمنى أن يكون التفاعل ذاته مع اللغز الثاني الذي سأقدمه لكم مساء اليوم بمشيئة الله سيكون سلساً قدر الإمكان وأتمنى أن تتنوع الحلول كما رأينا هنا
أولا أحب أن أبارك لك الفوز في الإختبار الأول من المسابقة :wub: و أرجوا لك المزيد من الإبداع و التألق.
أرجوا منك إضافة بعض الشروح لباقي طرقك قبل انتهاء الفترة المحددة كما أرجوا منك قراءة قوانين المسابقة فقد قمت بالتعديل عليها :)
دمتم بود.
اقتباسوأتمنى أن يكون التفاعل ذاته مع اللغز الثاني
أبشر بالذي يسرك :)
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
هذه كانت الطريقة الثالثة - وكما طلبت ، هذا تفسيرها :
#include<iostream>
using namespace std;
int main()
{
bool doors[1000]={false};
for(int j=1;j<=1000;j++)
for(int k=1;k<=1000/j;k++)
doors[j*k-1]=!doors[j*k-1];
int count=0;
for(i=0;i<1000;i++)
if(doors)
count++;
cout<<"# of open doors is : "<<count<<endl;
return 0;
}بدل أن نكتب
for(int k=1;k<=1000;k++) if(k%j == 0) doors[k-1]=!doors[k-1];
عدد مرات تنفيذ الدوران ( الداخلي ) 1000 كما لدينا جملة شرط ، بدلاً من ذلك نجعل عدد مرات تنفيذ الدوران 1000÷j وهو عدد مضاعفات العدد j الأقل أو تساوي 1000 ، ولا يلزمنا فحص قابلية القسمة لأننا نمر على المضاعفات j*k وهي بطبيعة الحال تقبل القسمة على j ، أي الأشخاص الذين يمكنهم فتح الباب او اغلاقه . . .
تم تعديل هذه المشاركة بواسطة namespace في 27 يونيو 2010 في 19:49
البرمجة = الرياضيات
اللغز الثاني
فرع أ : قرر أستاذ إجراء مسابقة ثقافية لطلابه العشرة ، فقام بترتيبهم تصاعدياً حسب علاماتهم ، ثم أراد أن يقسمهم إلى مجموعتين بكل مجموعة 5 طلاب ولكن بحيث يتوخى العدل قدر الإمكان ( مجموع علامات طلاب المجموعة الأولى يقارب قدر الإمكان مجموع علامات طلاب المجموعة الثانية ) . أكتب برنامجاً تساعد به هذا الأستاذ في فكرته . ملحوظة : عند تعريف مصفوفة العلامات قم بإعطائها قيما مرتبة تصاعدياً ، فليس ذلك من وظيفة البرنامج . مثلاً :
int marks[]={4,5,5,9,14,15,17,17,19,20};فرع ب : اكتب برنامجاً للحصول على أكبر مربع كامل perfect square من 9 خانات بشرط عدم تكرار أية خانة من خاناته ( مربع كامل أي جذره التربيعي عدد صحيح ، مثل 16 و 25 و 36 . . . )
أنتظر ملاحظاتكم وردودكم هنا والإجابات على الخاص
الفترة المحددة : 3 أيام من تاريخه
تمنياتي للجميع بالتوفيق
تم تعديل هذه المشاركة بواسطة namespace في 28 يونيو 2010 في 15:49
البرمجة = الرياضيات
اللغز الاول حليته بسهولة لكني جيت متأخر بعد خروج النتائج
الفقرة الأولى ما فهمت له بشكل جيد لكن شكله حسب ما أرى سهلة جدا وصراحة أشك بفهمي لأني ما أتوقع غني اجد سؤال بهالسهوله هنا :unsure:
أما الفقرة الثانية والله به صعوبه شوي :unsure:
جاري التفكير بالحل :)
تم تعديل هذه المشاركة بواسطة أبو دحيم في 28 يونيو 2010 في 00:11
اقتباسفرع أ : قرر أستاذ إجراء مسابقة ثقافية لطلابه العشرة ، فقام بترتيبهم تصاعدياً حسب معدلاتهم ، ثم أراد أن يقسمهم إلى مجموعتين ولكن بحيث يتوخى العدل قدر الإمكان . أكتب برنامجاً تساعد به هذا الأستاذ في فكرته . ملحوظة : عند تعريف مصفوفة المعدلات قم بإعطائها قيما مرتبة تصاعدياً ، فليس ذلك من وظيفة البرنامج .
هل المجموعتين بنفس عدد الطلاب ، أي نصف في المجموعه الأولى والنصف الأخر في المجموعة الثانية؟ اذا كان الأمر كذلك فيكف ستقسم مجموعه فيها 8 طلاب لهم نفس المعدل؟
لذلك أعتقد أن المجموعتين غير متساويات وأن هذا ما تقصده به " يتوخى العدل قدر الإمكان " .
أتمنى التصحيح في حال الخطأ.
http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة
https://moalfat.com للكتب الالكترونية والكورسات التعليمية
Everything we see now is just an engineering solution based on old science
توضيح :
الأول : بكل مجموعة 5 طلاب ولكن بحيث يتوخى العدل قدر الإمكان ( مجموع علامات طلاب المجموعة الأولى يقارب قدر الإمكان مجموع علامات طلاب المجموعة الثانية )
ملحوظة : الكود ليس طويلاً ، لكن سأجد حلولاً أكثر عدلاً من حلول أخرى . . .
الثاني : مربع كامل أي جذره التربيعي عدد صحيح مثل 16 و 25 و 36 . . .
تم تعديل الأصل ، وشكراً على الملاحظات . . .
البرمجة = الرياضيات
اقتباسموضوع ممتازبالتوفيق :wub:
لم لا تشاركونا في المسابقة !؟
جاري التفكير في اللغز :huh:
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
السلام عليكم
لغز جميل. لكن لدي سؤال حول الفرع أ
هل المطلوب ايجاد جميع الامكانيات التي تحقق الشرط لتقسيم المجموعتين؟ ام فقط امكانية واحدة؟
الفرع ب .. !!! 9 خانات !!
الطريقة التي أفكر فيها ستكون طويلة جدا ً و 9 خانات سيصبح الوضع في حجر الذاكرة لدي شبه مأساوي :D
لذا سأنتظر بقية الحلول للطلب الثاني و أنا على أحر من الجمر و أنا واثق من وجود خوارزمية في الموضوع :P
يبدوا ان اللغز الثاني صعب اشويه :blush: أو لنقل أنه أصعب من اللغز الأول :wink: لذلك ربما تكون المحاولات أقل :unsure: و الله تعالى أعلم.
جاري تحريك الجمجمة :cool:
تم تعديل هذه المشاركة بواسطة أحمد المتألق في 28 يونيو 2010 في 14:46
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
aohammed كتب:الفرع ب .. !!! 9 خانات !!
الطريقة التي أفكر فيها ستكون طويلة جدا ً و 9 خانات سيصبح الوضع في حجر الذاكرة لدي شبه مأساوي :D
لذا سأنتظر بقية الحلول للطلب الثاني و أنا على أحر من الجمر و أنا واثق من وجود خوارزمية في الموضوع :P
فكر بطريقة أخرى
لا يوجد خوارزمية في الموضوع
الحل ليس بالصعب ولا بالطويل
حاول في البداية الحصول على العدد المطلوب بأية طريقة
وبعد ذلك فكر باختصار الكود أو تحسينه optimization
البرمجة = الرياضيات
namespace كتب:اللغز الثاني
فرع أ : قرر أستاذ إجراء مسابقة ثقافية لطلابه العشرة ، فقام بترتيبهم تصاعدياً حسب علاماتهم ، ثم أراد أن يقسمهم إلى مجموعتين بكل مجموعة 5 طلاب ولكن بحيث يتوخى العدل قدر الإمكان ( مجموع علامات طلاب المجموعة الأولى يقارب قدر الإمكان مجموع علامات طلاب المجموعة الثانية ) . أكتب برنامجاً تساعد به هذا الأستاذ في فكرته . ملحوظة : عند تعريف مصفوفة العلامات قم بإعطائها قيما مرتبة تصاعدياً ، فليس ذلك من وظيفة البرنامج . مثلاً :
int marks[]={4,5,5,9,14,15,17,17,19,20};فرع ب : اكتب برنامجاً للحصول على أكبر مربع كامل perfect square من 9 خانات بشرط عدم تكرار أية خانة من خاناته ( مربع كامل أي جذره التربيعي عدد صحيح ، مثل 16 و 25 و 36 . . . )
أنتظر ملاحظاتكم وردودكم هنا والإجابات على الخاص
تمنياتي للجميع بالتوفيق
ما هي الفترة الزمنية المحددة !؟
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around. ― Dennis Ritchie
~OoO~________--------------------------------------------________~OoO~
من مواضيعي :
xpero كتب:السلام عليكم
لغز جميل. لكن لدي سؤال حول الفرع أ
هل المطلوب ايجاد جميع الامكانيات التي تحقق الشرط لتقسيم المجموعتين؟ ام فقط امكانية واحدة؟
إمكانية واحدة تكفي
مثلاً في المصفوفة التي في السؤال فرع أ ، إن استطعت الحصول على مجموعتين ؛ مجموع علامات الطلاب في المجموعة الأولى 62 وفي الثانية 63 فهذا ممتاز ، لكن ليس في الأولى 60 وفي الثانية 65 فهذا ليس عدلاً . . .
البرمجة = الرياضيات
أحمد المتألق كتب:يبدوا ان اللغز الثاني صعب اشويه :blush: أو لنقل أنه أصعب من اللغز الأول :wink: لذلك ربما تكون المحاولات أقل :unsure: و الله تعالى أعلم.
جاري تحريك الجمجمة :cool:
الحل صعب إذا لجأت إلى الطريقة الصعبة
لا تهتموا بطول الكود - أعطوني أي حل في البداية . . تحسين الكود لاحقاً
هناك أكثر من طريقة للحل
ربما الفرع الثاني ليس عليه خلاف والجواب بين المشاركين يفترض أن يكون موحداً
بينما الأول تعمدت كتابته بحيث يكون هناك حل أفضل من آخر ويكون هناك مجال للتمايز بين المشاركين
وليس هناك حل صحيح وآخر خاطئ
يمكن الاكتفاء بحل فرع واحد - أو إرسال كل فرع على حدة
تم تحديد الفترة بـ 3 أيام من تاريخ عرض اللغز
تم تعديل هذه المشاركة بواسطة namespace في 28 يونيو 2010 في 19:08
البرمجة = الرياضيات
يااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااي :clapping: انا من عشاق ++c راح اشارك معاكم في المسابقة ولكن ليس الان فعندي برامج عليا انهائها :evil: :evil: .
سبحان الله وبحمده سبحان الله العظيم
تم ارسال حل الجزء الاول من اللغز الثاني وجاري كتابة الجزء الثاني من اللغز الثاني
تحياتي
OMANI FOR EVER
-------------------------------------------------

-------------------------------------------------
الزملاء omani و aohammed أتموا الجزء الأول ببراعة
لا تزال هناك طرق للحل لم يتطرق إليها أحد
********************************************
بالنسبة للجزء الثاني فهو بسيط :
مثلاً : 198753604 مربع كامل لا تكرار بين خاناته ويساوي 14098*14098
أي أن جذره التربيعي عدد صحيح ويساوي 14098
أما 232959169 فهو مربع كامل جذره التربيعي 15263 لكن الخانة 9 تكررت 3 مرات وهذا خطأ
*********************************************
العدد المطلوب هو بمواصفات 198753604 لكن أكبر منه
أكبر عدد ممكن الحصول عليه من 9 خانات بتلك المواصفات
1- مربع كامل 2- لا يوجد به خانة متكررة
تم تعديل هذه المشاركة بواسطة namespace في 29 يونيو 2010 في 19:07
البرمجة = الرياضيات
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…