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

لغز مع الاسس .. في الرياضيات والبرمجة ..

بدأه سنان محمد صالح في 12 يونيو 2009 · 7 رد · 2,168 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

صراحة قسم الرياضيات والخوارزميات يشهد نوم عميق منذ مدة لا اعلم لماذا ..؟؟

على عكس ما كان عليه سابقا كله الغاز وقضايا رياضيه جديده في العالم .. اما الان فاصبح مكان لحل الواجبات او ماشابه ..

على العموم .. اليوم جئت لاطرح لغزا رياضيا كما كنت سابقا افعل ..

لنبدأ ..

كلنا نعلم ان 2 مرفوع للقوه 2 يساوي 4 ..

او ايضا ممكن ان نقول 2 تربيع يساوي 4 ..

المعادلة العامة دائما لحل الاسس هي ضرب العدد الاول بنفسه بقدر العدد الثاني ..

اي ان ..

X ^ 5 = X * X * X * X * X

اي انه ضرب بنفسه خمس مرات ..

او العكس ايضا صحيح ..

ومن هذه المعادلة نعلم الطريقة المعروفه والمتبعة دائما والتي برمجيا تحتاج الى حلقة لاتمامها ..

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

اي انه لا تقوم على اساس ضرب العدد بنفسه لعدد مرات العدد الثاني .. وانما يتم الحل بطريقة مختلفة تماما ..

----------------------------------------------

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

تحياتي العطرة ...

سنان محمد صالح ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#2

السلام عليكم ...

لا أدري كيف يمكن أن يتم هذا الشيء دون تكرار!

الذي أعرفه أنه هناك طريقة Optimization في حالة كون الأس عدداً صحيحاً,

و لكن دون تكرار ؟ لا أدري كيف يمكن أن يتم هذا الأمر!

سؤال جميل,

تحياتي ...

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 12 يونيو 2009 في 16:52

#3

السلام عليكــم ورحمـة الله وبركاتــه ،،

مرحبا بمشاركاتك اخى سنان

سنان محمد صالح كتب:
صراحة قسم الرياضيات والخوارزميات يشهد نوم عميق منذ مدة لا اعلم لماذا ..؟؟
لان معظم مواضيع الاعضاء اصبحت واجبات. وكمان معظم الناس مشغولة هذه الايام.

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

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

بل ان ما تطلبه هو الطريقه الفعليه المستخدمه فى الحسابات فى الكمبيوتر

لنقل مثلا اننا اريد حساب العدد y والذى يساوى mimetex.cgi?y=x%5En

بمنتهى البساطة بدون حلقات تكرارية باخذ لوغاريتم الطرفين نحصل على: mimetex.cgi?%5Clog%7B(y)%7D=%5Clog%7B(x%

وبوضع هذا المقدار مرة ثانية فى اس العدد الطبيعى e نحصل على: mimetex.cgi?e%5E%7B%5Clog%7B(y)%7D%7D=e%

اى انه برمجيا لحساب الكمية mimetex.cgi?y=x%5En فيكفى ان تقوم بحسابها بالشكل التالى: mimetex.cgi?y=%5Cexp%7B(n%5Clog%7B(x)%7D

والله اعلى واعلم ,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#4
إقتباس(سنان محمد صالح @ Jun 12 2009, 10:16 PM) 
ومن هذه المعادلة نعلم الطريقة المعروفه والمتبعة دائما والتي برمجيا تحتاج الى حلقة لاتمامها ..
برمجيا فهذا كلام غير سليم للاسف اخى سنان.

لماذا غير سليم .. ؟

دائما في كتابة دوالة الpower نكتب for .. اليست حلقة .؟ تبدأ من العدد وتنتهي بالواحد .؟

هذا ماكنت اقصده بالحلقة اذا لم تفهمني ..

ولكن طريقتك يا اخ عماد 100 % ..

ولكن هناك طريقة اخرى ماشبهه ايضا ..

اذا سيصبح لدينا حلين .. والطريقة هي باخذ ln للطرفين بدلا من log ..وبالتالي ستصبح النتيجة ..

y = exp (n * ln (X))

شكرا لك وللاخ خالد ..

وإن شاء الله يكون لغز مفيد للاعضاء البقية ..

واي ردود اخرى انا ارحب بها ..

تحياتي العطرة ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#5

السلام عليكم ...

لا أعرف حقيقة كيف يتم كتابة الدالة الأسية في مكتبات لغات البرمجة للإستخدام الفعلي,

بالطبع ليست بالطريقة التي نعتقدها, حلقة من 1 إلى الأس :)

الذي أعرفه أن العمليات الرياضية يتم تقريبها باستخدام Maclurin Series حتى حد معين,

و لكن لا علم أكيد لي في الموضوع,

حتى دالة اللوغاريتم, ألا يتم تقريبها باستخدام الـ power series ؟

هذا يعني حلقة,

بإنتظار إجابة الأخ سنان...

تحياتي ...

#6
سنان محمد صالح كتب:
لماذا غير سليم .. ؟

كنت اتكلم عن الطريقة الفعليه المستخدمه فى معظم لغات البرمجة الموجود.

سنان محمد صالح كتب:
ولكن طريقتك يا اخ عماد 100 % ..

ولكن هناك طريقة اخرى ماشبهه ايضا ..

اذا سيصبح لدينا حلين .. والطريقة هي باخذ ln للطرفين بدلا من log ..وبالتالي ستصبح النتيجة ..

معذرة اخى سنان كنت اقصد بالـ log نفس حل حضرتك ln. وبالتالى هو نفس الحل. غالبا فى الابحاث العالمية يستخدم مصطلح log كاختصار للوغاريتم ذات الاساس e اى كبديل عن ln.

والله اعلى واعلم ,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#7

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

لان الرفع الى اس يحتاج الى استخدام متسلسلات و وهذه العملية الخفية عنا ( العمليات مع الاعداد الحقيقية)

تكلف المعالج كثيرا

 input x,y
  output n
 power(x,n)
  if n = 0 
   return 1
   y=power(x, [n /2]  )
	y=y*y
   if n is odd then
	 y= x*y
	 reurn y

ويكون تعقيد الخوارزمية هو log n

بدلا من n عند استخدام حلقة

انك ستحتاج فقط الى 6 او 7 دورات عندما n=100 بدلا

من 100 لفة هذا يسمى بمبدا فرق تسد

انظر الى صفحة 11 من هذا

تم تعديل هذه المشاركة بواسطة romanof في 13 يونيو 2009 في 01:46

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#8
اقتباس
الذي أعرفه أن العمليات الرياضية يتم تقريبها باستخدام Maclurin Series حتى حد معين,

و لكن لا علم أكيد لي في الموضوع,

حتى دالة اللوغاريتم, ألا يتم تقريبها باستخدام الـ power series ؟

هذا يعني حلقة,

بإنتظار إجابة الأخ سنان...

اهلا بك خالد مرة اخرى ..

صراحة لا املك اي وقت للاجابة الكاملة لانني الان جلست بالصدفة ووجدت الردود ..

ولكن سأضع لك رابط صفحة تحتوي ما اريد كتابته ..

انقر هنا

--------------------------------------------

د. عماد ..

اقتباس
كنت اتكلم عن الطريقة الفعليه المستخدمه فى معظم لغات البرمجة الموجود.

تقصد مستخدمي اللغة ( المبرمجين ) ؟؟ ام صانعي اللغات نفسهم .؟

اقتباس
معذرة اخى سنان كنت اقصد بالـ log نفس حل حضرتك ln. وبالتالى هو نفس الحل. غالبا فى الابحاث العالمية يستخدم مصطلح log كاختصار للوغاريتم ذات الاساس e اى كبديل عن ln.

وانا معك ايضا ولكن اردت ان تصل للقارئ معلومة ان الاثنين تنجح بها العملية ..

------------------------------------

استاذ romanof ..

اقتباس
ويكون تعقيد الخوارزمية هو log n

بدلا من n عند استخدام حلقة

انك ستحتاج فقط الى 6 او 7 دورات عندما n=100 بدلا

من 100 لفة هذا يسمى بمبدا فرق تسد

كلامك سليم 100% ..

وهذا المبدأ هو المستخدم في خوارزميات البحث .. مثل البحث الثنائي binary search .. فمثلا خوارزميات البحث الخطي تحتاج الى المقارنة الكاملة مع كل العناصر المطلوب البحث بينها .. بينما بخوارزمية البحث فان العملية تسهل الى الحد كبير .. يعني مليون عنصر تحتاج الى 30 عملية مقارنة ( حسب ما اتذكر الرقم ) ..

ولكن ماذا تقصد بــ ..

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

لان الرفع الى اس يحتاج الى استخدام متسلسلات و وهذه العملية الخفية عنا ( العمليات مع الاعداد الحقيقية)

هل تقصد ان دوال ال log , ln , exp .. هي التي تستخدم المتسلسلات الخفية . ؟ ام ماذا .؟

على العموم اذا كنت تقصد ذلك .. اعتقد ان الرابط الذي وضعته لخالد هو ما ينفع للكلام الان ..

لان هنالك طريقة معروفة لحل الـ LOG و EXP بدون استخدام الضرب .. والطريقة موضحة في الصفحة ولا تحتاج لان اعيد كتابتها مرة اخرى ..

تحياتي العطرة ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

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