Modern technology gives us many things.

ماهي حقيقة العلاقة بين البرمجة والرياضيات؟

1 691

حقيقة لا ترتبط بشكل مباشربالبرمجة ، سوى عبر جسور خاصة تخدم خوارزمياتها.

فالهدف من الرياضيات هو تعلم  طريقة التفكير, والتحليل المنطقي, وبناء الخوارزميات…

اما المعادلات الرياضية لن نستخدمها بشكل مباشر في البرمجة, الا لاهداف معينة, مثلا برمجة الالعاب

فهي  تتطلب نوعا معينا من الرياضيات وهو الجيوميتري,والبرامج المحاسبية تتطلب معادلات المحاسبة.

طبعا سوف نستخدم الاكواد  وما يعرف ب arithmetic operations وهي رياضيات, لكنها بسيطة, مثل:

(c/d)+(a+b)

وإذن ماهو علم الحاسوب حقيقة وينحصر حول أي علوم؟

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

1- المحاكيات: بناء محاكيات فيزيائية أو فلكية أو محركات ألعاب أو غيرها يحتاج لفهم متعمق بالرياضيات لتكون واقعية وهو أمر مهم حيث أن كثيراً من هذه المحاكيات يستخدم في الأبحاث العلمية كما أنها تستخدم في المجال الطبي بكثرة.

2- الرسوميات ثنائية الأبعاد: تعتمد على رسم الأشكال على محورين أفقي وعمودي لتحديد مكان ظهورها على الشاشة التي تصبح بمثابة النظام الإحداثي.

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

4- تحسين حل المشاكل البرمجية: هناك عدة حلول وكلما كنت أفضل في الرياضيات كلما كانت حلولك أفضل. أذكر مرة أني كنت مسروراً لحلي مسألة لم يستطع أحد زملائي حلها من قبل لكن الكمبيوتر أخذ 20 دقيقة ليحلها وفي اليوم التالي أتى أحدهم وقدم حلاً لا يأخذ أكثر من ثانية.

5- فهم طريقة عمل الكمبيوتر: الكمبيوتر من الأساس لا يفهم إلا إشارتين: التيار موجود “1” و التيار منقطع “0” ولتسهيل عملية البرمجة تم تطوير لغات برمجة لتترجم للغة الآلة وفهم كيفية تخزن الأرقام والبيانات والقيم في الكمبيوتر يحتاج إلى أن يكون مستعداً للحساب كثيراً.

6- تعلم بعض لغات البرمجة: عندما تكتب كود بلغة ++С كي يعمل الكود يتم تحويله للغة Assembly والذي يتم بدوره تحويله إلى لغة الآلة 0 و 1. ولكل بنية معالجات لغتها الخاصة بها ولولا Assembly لكان من الصعب كتابة كود ليعمل على مختلف أنواع الأجهزة. هذه اللغة تحتاج استخداماً كثيراً للرياضيات نظراً لطبيعتها ومحدوديتها. فهم اللغة طبعاً سيجعلك مبرمجاً أفضل حيث ستعرف مالذي سيترجم إليه كل سطر تكتبه مايدفعك لتحسين طريقة برمجتك لتقليل استهلاك موارد الجهاز.

7- التشفير وحماية المعلومات: أحد أساسيات التشفير هو استخدام معادلات تقوم بتغيير المحتوى ولا يمكن استعادة المحتوى الأصلي إلا عبر استخدام معادلات معاكسة. ودوماً ماتستخدم أرقام أولية لانتاج هذه المعادلات

مثال 1: لو كتب مبرمج برنامجاً يأخذ لائحة مكونة من مليون رقم مرتبة من الأصغر للأكبر ويبحث فيها عن الرقم الذي يريده المستخدم. فلو كتب المبرمج البرنامج لتبدأ من الصفر وتبحث حتى تصل لآخر رقم واختار المستخدم رقماً كبيراً لنفترض أنه في الخانة 898500 فإن البرنامج سيستغرق 898500 خطوة حتى يصل للرقم الذي يريده المستخدم وهو ماسيستغرق عدة ثواني. لكن لو أتى مبرمج آخر وكتب البرنامج ليبدأ من الخانة 500000 فإن كان الرقم في تلك الخانة أكبر بحث في الخانات التالية وترك الخانات التي تسبق تلك الخانة وإن كان أصغر يبحث في الخانات السابقة ويترك الخانات التي تلي تلك الخانة وبهذا قد لا يأخذ البرنامج أكثر من ثانية لحل المشكلة.

مثال 2: الرقم 0.1 كقيمة لا يستطيع الكمبيوتر استيعابها بشكل دقيق ولكن يقوم بتخزينها بشكل تقريبي وهي مشكلة قد تواجهها في عدد من لغات البرمجة المهمة والمشهورة مثل ++С ولمعرفة السبب عليك أن تفهم كيف يحسب الكمبيوتر الفواصل.

مثال 3: في عام 1999 قام مطور بإصدار لعبة مدينة ملاهي بالكامل تقريباً بلغة Assembly ماجعلها أحد أفضل الألعاب على الأطلاق من ناحية استغلال الموارد حيث تستطيع رسم أكثر من ألف زائر وعدد القطارات التي تدور حول المدينة دون أي مشاكل على جهاز متهالك دون أن يتأثر أداء الجهاز ونتيجة ذلك قامت شركة ألعاب أمريكية بشراء سلسلة ألعابه بمبلغ 180 مليون دولار. تحسين أداء الكود يؤثر على جودة البرنامج.

مثال 4: مؤسسا جوجل توصلا إلى خوارزمية واحدة مكنتهما من بناء أحد أضخم شركات العالم ولازالت إلى يومك هذا تولد أغلب دخلها من تلك الخوارزمية التي تتم مرجعتها وإجراء التغييرات للمساهمة في تحسين أدائها قدر المستطاع. الخوارزمية قامت بترتيب الصفحات عن طريق تحليل الصفحة وقياس مدى ارتباطها بالجملة المراد البحث عنها في حين أن المحركات الأخرى كانت تعرض الصفحات بحسب عدد مرات ظهور الكلمة في الصفحة فقط.

*****************

باختصار

إن الرابط بين الرياضيات والبرمجة هو المنطق: يعني الطريقة التي يعمل بها العقل ليحل مشكلة رياضية ما، هي ذات الطريقة التي يعمل بها ليحل مشكلة برمجية ما.

جوالك التقنية.

تعليق 1
  1. راما يقول

    موضوع مفتاحي موفق، تمهيدا لشرح البرمجة منطقيا، لأن البرمجة تفكر بالمنطق بطريقتها الخاصة.
    موضوع عن أصل المنطق ودخوله عالم الحواسيب هنا:
    https://sites.google.com/site/schoolqsm123/
    شكرا لكم.

اترك رد

لن يتم نشر عنوان بريدك الإلكتروني.