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

أفضل طريق بمصفوفة مربعة

بدأه wazzz في 28 نوفمبر 2008 · 3 رد · 1,162 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام في مسألة حيرتني كتير وهي التالي:

يوجد لدينا مصفوفة ثنائية

مثال

1 0 1

2 3 5

8 9 0

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

مثال لا على التعيين يمكن ان يكون الطريق الامثل هو

1+0+1+2+3++9+0

لتوضيح كيفة العبور

اوجدت الحل بطريقة عودية بس بدي اسالكم عليها إذا ما فيها سئلة

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

A مصفوفة الأرقام

i السطر الذي اتعامل معه

low,high أبعاد المصفوفة

sum ايجاد مجموع الأرقام لكل

save co آخر عمود يقف عليه

,نقوم آخر كل استدعاء عودي بحذف الرقم من اجل ايجاد مجموع طريق جديد

الكود لسى قيد التجربة بس المشكلة انو بدي الفكرة

إذا حدا ممكن يعطيني فكرة حل او رابط منشان طريقة تكرارية بدون عودية

بكون مشكور

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

اعرف الكود بدائي لا تقولولي بس كم فكرة

void Find root (i:int , A: Array ,low,high :int , & sum ,save co:int ,m:int )

begin

if (i<m)

for (k:=low ; k<= high ; k++)

sum =sum +A[k]

push(way,i,k)

if save co<k)

for j=k to sav co

sum=sum+ A[j]

push(way,i,k)

else if save co > k

for j= save co to k-1

sum=sum+ A[j]

push(way,i,k)

save co =k

find root (i+1,A ,low ,high ,...)

sum=sum - a[k];

There's no place like 127.0.0.1

#2

لك أهليييييييييييين عمي wazzz. شايفك هون.....

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

#3

لك هلا عمي الرجل الذهبي (:

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

There's no place like 127.0.0.1

#4

Deepth First Search

عزيزي

بالتوفيق .

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