MouhcineFD

21 77.5 ألف مشاهدات المحتوى عضو منذ
MouhcineFD برمجة

باعتبار ان الوقت يبدأ ب 0 وينهي ب 24 وان وقت الدخول دائما اصغر من وقت الخروج

include

void main()

{

int i,n,in,out,tot=0,h[24]={0};
scanf("%d",&n);
while(n)
{
    scanf("%d %d",&in,&out);
    for(i=in;i<out;i++)
        h[i]=1;
    n--;
}

for(i=0;i<24;i++)
    tot+=h[i];
printf("%d",tot);

}

باعتبار ان الوقت يبدأ ب 0 وينهي ب 24 وان وقت الدخول دائما اصغر من وقت الخروج #include void main() { int i,n,in,out,tot=0,h[24]={0}; scanf("%d",&n); while(n) { scanf("%d %d",&in,&out); for(i=in;i
{linksextraction-c595357e1ed39ba3acef34f8140e5869}
MouhcineFD برمجة

كتبت في أول الموضوع

A جدول مكون من n سطر m عمود

n>=1 و m>=1

يمكن أن تكون المصفوفة 4x4 5x3 2x1 15x20

ولدي العديد من الجداول بمثل هده الابعاد 35x16 23x17

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

لا يهم لأنني لا أريد برنامج أو كود

ما أريده هو فكرة عن طريقة حل المسألة يمكنك اعتبار الأبعاد ثابتة m و n

سأكتب توضيح عن فكرتي برد أخر

إدا كنت تتحدث عن فكرة تمثيل المصفوفة بسلسلة من البتات

فقد فهمت الفكرة وهي صحيحة لكن غير عملية يمكن تطبيقها على المصفوفات الصغيرة فقط

كتبت في أول الموضوع >A جدول مكون من n سطر m عمود n>=1 و m>=1 يمكن أن تكون المصفوفة 4x4 5x3 2x1 15x20 ولدي العديد من الجداول بمثل هده الابعاد 35x16 23x17 >هل البرنامج الذي ستكتبه سيكون مخصص لحل مصفوفة ثابتة الابعاد أم أنه كل مرة سيتم ادخال أبعاد مختلفة لا يهم لأنني لا أريد برنامج أو كود ما أريده هو فكرة عن طريقة حل المسألة يمكنك اعتبار الأبعاد ثابتة m و n >سأكتب توضيح عن فكرتي برد أخر إدا
MouhcineFD برمجة

ما فهمت من شرحك

هو أنك ستأخد المصفوفة الأصلية

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

ادا تم الحل توقف فهذا افضل حل

ادا لم تجد الحل تجرب تغيير خانتان ثم تجرب جميع الاحتمالات

وهكذا ...

سأضيف مرحلتين في تطوير الحل الكلاسيكي

أولا

أقل عدد ممكن أن تغيره من الخانات للتحصل على أفضل حل

هو العدد الأكبر بين(عدد الأسطر التي تحتوي على مجموع فردي و عدد الأعمدة التي تحتوي على مجموع فردي)

مثال

0111001

1000111

0001110

1111110

هنا لدينا سطر واحد يحتوي على مجموع فردي ولدينا ثلات اعمدة تحتوي على مجموع فردي

ادن لا يمكن ايجاد حل بتغيير عدد أقل من ثلات خانات

ومنه فالتطوير هو أن نبدأ بسلسلة تحتوي على ثلات بتات من الأول, فلاداعي لتجريب بت واحد وبتان لأنه لا يوجد حل

التطوير الثاني

كما قلت في الرد السابق

اذا كان أحدهما شاقولي و الثاني عامودي

يكون الحل بتغيير عدد فردي من الخانات

اذا كانا الاثنين أسطر أو اعمدة

يكون الحل بتغيير عدد زوجي من الخانات

ادن لو بدأنا السلسة بعدد معين من البتات

فالسلسلة الموالية تكون بإضافة 2 بث في كل مرحلة موالية

يعني لو بدأت ب

0000000000000011

وأنهيت جميع الاحتمالات ولم تجد حل

فمباشرة انتقل الى

0000000000001111

ثم الى

0000000000111111

و بالمعدل يكون تم تخفيض حجم العمل بنسبة ***111% عن الحالة الكالسيكية

***صراحة لم أعرف كيف حصلت أنت على تلك النسب ؟؟؟

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

المشكلة هي أن متوسط الجداول التي املك تحتوي على 120 خانة

ومتوسط أقل عدد لازم تغييره من الخانات هو 24

لك أن تحسب عدد الاحتمالات أكبر من 25^10

ما فهمت من شرحك هو أنك ستأخد المصفوفة الأصلية في الأول ستجرب تغيير قيمة خانة واحدة وستجرب جميع الاحتمالات ادا تم الحل توقف فهذا افضل حل ادا لم تجد الحل تجرب تغيير خانتان ثم تجرب جميع الاحتمالات وهكذا ... سأضيف مرحلتين في تطوير الحل الكلاسيكي أولا أقل عدد ممكن أن تغيره من الخانات للتحصل على أفضل حل هو العدد الأكبر بين(عدد الأسطر التي تحتوي على مجموع فردي و عدد الأعمدة التي تحتوي على مجموع فردي) مثال 0111001 1000111 0001110 1111110
MouhcineFD برمجة

جميل

توصلت إلي نفس النتيجة في الأول لاكن وجدت مشكلة

أولا سأوضح لك أمر مهم

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

دائما تكون القيمة 1 موجودة في هذه الخانة

هده القاعدة ليست صحيحة يمكن أن تجد القيمة صفر

مثال

|1|1|1||

|0|0|1|1|

|0|1|0|1|

|1|0|0|1|

خانة تلاقي السطر الأول مع العمود الأول تحتوي على صفر

إدن أفضل حل هو تغيير ثلاثة خانات وفي بعض الحالات تغيير خمس أو سبع ... خانات

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

كذالك نفس الملاحظة هنا لن تجد دائما تانك الخانتان المتجاورتان يحتويان على القيمة 1

هنا ستضطر لتغيير خانتين إضافيتين أو أربع أو ست ...

هنا نستنتج قاعدة

اذا كان أحدهما شاقولي و الثاني عامودي

يكون الحل بتغيير عدد فردي من الخانات

اذا كانا الاثنين أسطر أو اعمدة

يكون الحل بتغيير عدد زوجي من الخانات

والمشكلة هي

في بعض الحالات يكون أحدهما شاقولي و الثاني عامودي و الخانة التي تمثل رقم العامود و السطر لهما تحتوي على القيمة 1 ولا يجب أن نغيرها بل علينا تغيير ثلات خانات أو أكثر, مكان تغيير خانة واحدة

ستقول لي الهدف هو تغيير أقل عدد ممكن من الخانات نعم صحيح

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

أتمنى أن تكون فهمت قصدي

ونفس الشيء بالنسبة اذا كانا الاثنين أسطر أو اعمدة

جميل توصلت إلي نفس النتيجة في الأول لاكن وجدت مشكلة ## أولا سأوضح لك أمر مهم > إذا كان أحدهما شاقولي و الثاني عامودي ..... الحل بتحويل قيمة الخانة التي تمثل رقم العامود و السطر لهما " دائما تكون القيمة 1 موجودة في هذه الخانة " > دائما تكون القيمة 1 موجودة في هذه الخانة هده القاعدة ليست صحيحة يمكن أن تجد القيمة صفر مثال |1|1|1|*0ّ*| |0|0|1|1| |0|1|0|1| |1|0|0|1| خانة تلاقي السطر الأول مع العمود الأول تحتوي على صفر إدن
MouhcineFD برمجة

صراحة كنت أنتظر ردك

إن لم أجد أفكار هنا عندها سأنتقل إلى المواقع الأجنبية

صراحة كنت أنتظر ردك إن لم أجد أفكار هنا عندها سأنتقل إلى المواقع الأجنبية
MouhcineFD برمجة

نعم هي مشكلة واقعية وأنا نمذجتها على هذا الشكل

أنا وضعت التخطيط لحل المشكلة ومن مراحل الحل أن أمر على المسألة فوق

يعني لا يمكنني أن أغير المسألة لأنه سيتطلب مني إعادة تصميم كل شيئ

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

آسف لم أنتبه

صحيح ما قلتَه

تم التعديل

آسف لم أنتبه صحيح ما قلتَه تم التعديل
MouhcineFD برمجة

آسف لم أنتبه إلى أنني كتبت عكس ما أريده, تم التعديل

المطلوب

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

لا يمكن تغير الأصفار الى واحدات يعني قيمة الجدول ستكون أصغر قطعا من القيمة الأولى

أول شيئ عملت عليه للحل هو المرحلة الثانية التي قلت أنت

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

فقط فكر في الجدول فوق ستجد عدد هائل من الاحتمالات

آسف لم أنتبه إلى أنني كتبت عكس ما أريده, تم التعديل المطلوب تغيير قيمة بعض الخانات من الواحد الى الصفر وليس من الصفر الى الواحد لتحقيق الشرط الأول مع تغيير أقل عدد ممكن من الخانات(الشرط الثاني) لا يمكن تغير الأصفار الى واحدات يعني قيمة الجدول ستكون أصغر قطعا من القيمة الأولى أول شيئ عملت عليه للحل هو المرحلة الثانية التي قلت أنت أي دراسة جميع الاحتمالات الممكنة لاكن هدا الحل غير عملي لدي بعض الجداول ستستغرق أيام للحل فقط فكر
MouhcineFD برمجة

تم التعديل

أي مجموع الخانات التي تحتوي على القيمة واحد

المطلوب هو تغيير بعض الخانات من الواحد الى الصفر وليس العكس لتحقيق الشرط الأول مع الحفاظ على أكبر عدد ممكن من الخانات التي تحتوي على واحد

تم التعديل أي مجموع الخانات التي تحتوي على القيمة واحد المطلوب هو تغيير بعض الخانات من الواحد الى الصفر وليس العكس لتحقيق الشرط الأول مع الحفاظ على أكبر عدد ممكن من الخانات التي تحتوي على واحد
MouhcineFD برمجة

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

أما المشكلة التي أملك فهي أكبر من دالك بكثير

فعدد الاحتمالات قد يصل للمليار

لهدا وضعت المشكلة لإيجاد حل أفضل من الاحتمالات

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

صراحة هدا هو مشكل التعلم من الانترنت ,لايوجد منهج تتبعه...

ممكن تعليقات جزاكم الله خيرا

ماهي المواضيع المتقدمة في لغة السي ؟

هل كتابة دالة للادخال يتم بواسطة الاسمبلي أم السي نفسها ؟؟

صراحة هدا هو مشكل التعلم من الانترنت ,لايوجد منهج تتبعه... ممكن تعليقات جزاكم الله خيرا ماهي المواضيع المتقدمة في لغة السي ؟ هل كتابة دالة للادخال يتم بواسطة الاسمبلي أم السي نفسها ؟؟
MouhcineFD برمجة

لا مشكلة أخي :)

المهم أردت الافادة بما تعلم

لا مشكلة أخي :) المهم أردت الافادة بما تعلم
MouhcineFD برمجة

مسألة أخرى وهي

عندما أدخل للملفات الرأسية للمكتبات القياسية في vs

صراحة لا أفهم شيئ , أجد أنهم يعتمدون في الكتابة على الرمز _ لا أعلم لمادا ؟

ما المشكلة

هل يتطلب الأمر مستوى أحترافي ؟

أم يتم كتابة تلك الملفات لكي لا يتم فهمها؟

أم أن الأمر عادي فقط أنا أردت تعقيده ؟

مسألة أخرى وهي عندما أدخل للملفات الرأسية للمكتبات القياسية في vs صراحة لا أفهم شيئ , أجد أنهم يعتمدون في الكتابة على الرمز {gfm-extraction-b14a7b8059d9c055954c92674ce60032} لا أعلم لمادا ؟ ما المشكلة هل يتطلب الأمر مستوى أحترافي ؟ أم يتم كتابة تلك الملفات لكي لا يتم فهمها؟ أم أن الأمر عادي فقط أنا أردت تعقيده ؟
MouhcineFD برمجة

نعم مثل PRINTF

لاكن لم أعني دوال الادخال والاخراج فقط بل كيف تصبح قادر على التعامل مع الأمور "الخفية " على المبرمج في السي

في كلتا الطريقتين هناك اعتماد مباشر للاسمبلي

السؤال هو كيف تمت كتابة الدالة printf ,هل تم استخدام احدى الطرقتين ؟

  • أنا لا أبحت عن طرق تم ابتكارها من طرف شخص أو مجموعة , ما أريده هو ما تحتوي عليه السي نفسها
نعم مثل PRINTF لاكن لم أعني دوال الادخال والاخراج فقط بل كيف تصبح قادر على التعامل مع الأمور "الخفية " على المبرمج في السي في كلتا الطريقتين هناك اعتماد مباشر للاسمبلي السؤال هو كيف تمت كتابة الدالة printf ,هل تم استخدام احدى الطرقتين ؟ + أنا لا أبحت عن طرق تم ابتكارها من طرف شخص أو مجموعة , ما أريده هو ما تحتوي عليه السي نفسها
MouhcineFD برمجة

لا

عندما دكرت أنا TREE يعني أنني تجاوزت مسألة المؤشرات و STACK AND HEAP

لا عندما دكرت أنا TREE يعني أنني تجاوزت مسألة المؤشرات و STACK AND HEAP
MouhcineFD برمجة

لو تمعنت في الموضوع جيدا لما كتبت هدا الرد

لو تمعنت في الموضوع جيدا لما كتبت هدا الرد
MouhcineFD برمجة

مادا تعني ؟

هل يتم تصفير الداكرة بعد تحريرها ؟؟؟

مادا تعني ؟ هل يتم تصفير الداكرة بعد تحريرها ؟؟؟
MouhcineFD برمجة

فهمت الآن

:)

فهمت الآن :)
MouhcineFD برمجة

لم أفهم

ممكن توضيح أكتر

لم أفهم ممكن توضيح أكتر
MouhcineFD برمجة

كلام الأخ عبد الرحمن أحمد معقول

  • التمرير بالمرجح يجنبك من عمل نسخة
كلام الأخ عبد الرحمن أحمد معقول + التمرير بالمرجح يجنبك من عمل نسخة
MouhcineFD برمجة

أنا لا أريد حلول لمشاكل

أنا لا أريد حلول لمشاكل
MouhcineFD برمجة

لاكن دالك لن ينفع في حالة كنت ستعمل inheritance

لاكن دالك لن ينفع في حالة كنت ستعمل inheritance
MouhcineFD برمجة

لأن الكلاسات تحتوي على كلاسات من ملفات أخرى

لأن الكلاسات تحتوي على كلاسات من ملفات أخرى
MouhcineFD برمجة

سبق وبرمجتها

هنا مع الكود

سبق وبرمجتها هنا مع الكود {linksextraction-ae288490dd7e8ae41391f1f95455d464}