🔍
What's an algorithm? - David J. Malan - YouTube
Channel: TED-Ed
[0]
المترجم: Ammar Alqatari
المدقّق: khalid marbou
[15]
ما هي الخوارزميات؟
[16]
في علم الحاسب،
[17]
الخوارزمية هي مجموعة من التعليمات
[19]
لحل مشكلة معينة، خطوة بخطوة.
[22]
في العادة، تنفذ الخوارزميات باستخدام الحواسيب
[24]
ولكننا كبشر لدينا خوارزميات أيضًا.
[26]
على سبيل المثال، كيف ستقوم بعدّ
[28]
عدد الأشخاص في غرفة؟
[30]
حسنا، إن كنت مثلي،
[31]
ستقوم على الأغلب بالتأشير على كل شخص
[32]
كل واحد على حدة
[33]
وسوف تعد من الصفر
[35]
1، 2، 3، 4 وهكذا دواليك...
[38]
حسنا، هذه تعتبر خوارزمية.
[39]
في الواقع، نستطيع أن نعبر عنها
[40]
بطريقة أكثر رسمية عبر الترميز المستعار،
[43]
أي برمجة بجمل تعبيرية
[43]
تشبه لغة برمجية.
[46]
ليكن n يساوي 0.
[47]
لكل شخص في الغرفة، ليكن n=n+1 .
[52]
إذن، كيف نترجم هذا الترميز المستعار؟
[54]
حسنا، في السطر الأول قمنا بتعريف
[55]
متغير أسميناه n،
[57]
وجعلنا قيمته المبدئية 0.
[59]
ما يعنيه هذا هو أنه في بداية خوارزميتنا
[62]
الشيء الذي نقوم بعدّه
[63]
قيمته 0.
[65]
فقبل أن نبدأ بالعد،
[66]
نكون لم نعد أي شيئ أصلا.
[68]
أما تسمية المتغير بالحرف "n" هي مجرد عادة.
[70]
وقد كان باستطاعتي تسميته بما أريده.
[72]
الآن، السطر الثاني ينوه ببداية "حلقة تكرار"،
[74]
أي خطوات متتالية سوف تعاد لعدد من المرات.
[77]
إذًا، في مثالنا، الخطوة الواحدة التي نأخذها
[79]
هي عدّ عدد الأشخاص في الغرفة.
[81]
تحت السطر الثاني لدينا السطر الثالث
[82]
والذي يصف تماما كيف سنقوم بعدّنا.
[85]
المسافة تبين أن السطر الثالث
[87]
هو الذي سوف يعاد.
[88]
إذًا، ما يقوله الترميز المستعار
[90]
هو أنه بعد البدء من الصفر،
[92]
لكل شخص في الغرفة،
[93]
سوف نزيد n بمقدار 1.
[96]
والآن، هل هذه الخوارزمية صحيحة؟
[98]
حسنًا، دعنا نجربها.
[100]
هل ستعمل إن كان هناك شخصان في الغرفة؟
[102]
فلنر.
[103]
في السطر الأول، نعيد قيمة n للعدد 0.
[105]
لكل من هذين الشخصين،
[107]
نزيد قيمة n بمقدار 1.
[109]
إذًا، في أول دورة في حلقة التكرار،
[110]
نجدد قيمة n من 0 إلى 1،
[112]
وفي ثاني دورة حول نفس الحلقة،
[114]
نجدد قيمة n من 1 إلى 2.
[116]
وإذًا، عند نهاية الخوارزمية، تكون قيمة n تساوي 2،
[120]
والذي يساوي بالفعل عدد الناس في الغرفة.
[122]
حسنا، الوضع جيد حتى الآن.
[123]
ولكن ماذا عن حالة شاذة؟
[125]
افرض أنه كان هناك 0 من الأشخاص في الغرفة،
[127]
من غيري، وأنا أقوم بالعد.
[129]
في السطر الأول، نعيد قيمة n إلى 0.
[132]
ولكن في هذه الحالة السطر الثالث لا ينفذ على الإطلاق
[135]
وذلك لأنه لا يوجد شخص في الغرفة أصلًا،
[136]
ولذلك تبقى قيمة n تساوي ٠،
[138]
وهذا بالفعل عدد الأشخاص في الغرفة.
[140]
الأمر بسيط، صح؟
[141]
ولكن عدّ الأشخاص واحدا تلو الآخر
عملية بطيئة، أليس كذلك؟
[145]
بالتأكيد نستطيع فعل أفضل من ذلك.
[146]
لم لا نعد كل شخصين في مرة واحدة؟
[148]
بدل من العد 1، 2، 3، 4، 5، 6، 7، 8 وهكذا دواليك ..
[153]
لم لا نعد
[154]
2، 4، 6، 8 ... إلخ؟
[156]
تبدو هذه العملية وكأنها أسرع،
وبالتأكيد هي كذلك.
[159]
فلنعبر عن هذا التسريع باستخدام الترميز المستعار.
[161]
ليكن n يساوي 0.
[163]
لكل زوج من الأشخاص في الغرفة
[165]
ليكن n=n+2.
[167]
تغيير بسيط، أليس كذلك؟
[169]
بدل من عدّ الناس واحدًا على حدة،
[171]
نقوم بعدهم اثنين اثنين.
[173]
وتكون إذًا خوارزميتنا ضعف سرعة الخوارزمية السابقة.
[176]
ولكن هل هي صحيحة؟
[177]
فلنر.
[178]
هل تعمل إن كان هناك شخصان في الغرفة؟
[180]
في السطر الأول، نعين قيمة n إلى 0.
[183]
للزوج الوحيد في الغرفة، نزيد قيمة n بمقدار 2.
[186]
وعند نهاية الخوارزمية، تكون قيمة n تساوي 2،
[188]
والذي يساوي بالفعل عدد الأشخاص في الغرفة.
[191]
فلنفرض الآن بأنه هناك 0 من الأشخاص في الغرفة.
[193]
في السطر الأول، نعيد قيمة n إلى صفر.
[196]
كما في السابق، السطر الثالث لا ينفذ على الإطلاق
[198]
بما أنه لا توجد أية أزواج في الغرفة،
[200]
وبالتالي تبقى قيمة n تساوي 0
[202]
وهو بالفعل عدد الأشخاص في الغرفة.
[205]
ولكن ماذا يحصل إن كان هناك 3 أشخاص؟
[207]
كيف ستؤدي خوارزميتنا؟
[209]
فلنر.
[210]
في السطر الأول، نعيد قيمة n إلى 0.
[212]
لزوج واحد من هؤلاء الأشخاص،
[214]
نزيد قيمة n بمقدار 2.
[216]
ولكن ماذا الآن؟
[217]
لا يوجد زوج آخر من الأشخاص في الغرفة،
[219]
وبالتالي لن يطبق السطر الثاني.
[221]
وبالتالي، عند نهاية الخوارزمية
[223]
تكون قيمة n لا تزال 2، وهذا خاطئ،
[225]
نقول عن هذه الخوارزمية أنه مشوبة
[228]
لأنها تحتوي على خطأ.
[229]
فلنعدلها بترميز مستعار إضافي.
[231]
ليكن n يساوي 0.
[233]
لكل زوج من الأشخاص في الغرفة،
[235]
ليكن n=n+2.
[237]
إذا بقي شخص واحد منفردا،
[240]
ليكن n=n+1.
[242]
لحل هذه المشكلة
[243]
قمنا في السطر الرابع بإضافة شرط،
[246]
أو ما يسمى بـ"فرع"
[248]
والذي لا ينفذ إلا إن كان هناك شخص واحد
[250]
لم نستطع وضعه في زوج مع شخص آخر.
[252]
الآن، سواء كان هناك شخص أو ثلاثة
[254]
أو أي عدد فردي من الأشخاص في الغرفة،
[256]
ستقوم الخوارزمية بعدّهم.
[258]
هل نستطيع أن نكوّن خوارزمية أفضل؟
[260]
حسنا نستطيع أن نعد كل 3، أو كل 4، أو حتى كل 5 و 10
[263]
ولكن قد تتعقد الأمور
[264]
إذا ذهبنا أبعد من ذلك.
[266]
في نهاية اليوم،
[267]
سواء نفذت من قبل الحواسيب أو البشر،
[269]
الخوارزميات ليست إلا مجموعة من التعليمات
[271]
نحل باستخدامها المشاكل.
[273]
هذه لم تكن سوى ثلاثة خوارزميات.
[275]
ما المشكلة التي ستحلها أنت باستخدام خوارزمية؟
Most Recent Videos:
You can go back to the homepage right here: Homepage





