اذهب إلى المحتوى
  • 0

شيفرة MATLAB لحساب العاملي لعدد ما Factorial

Ksa Guy

السؤال

Recommended Posts

  • 0

مرحبا،

إن حساب العاملي لعدد ما هو ناتج الجداء المتراكم للأعداد من 1 حتى العدد نفسه لنفرض أنه n

يمكننا حسابها بالستخدام حلقة واحد مع متغير نخزن فيه الجداء التراكمي..

function result = Factorial(n)
	factorial=1; // قيمة بدائية للناتج
	for i=1:1:n  // حلقة 
		factorial=factorial*i; 
// جداء تراكمي حيث أن القيمة المحسوبة هي القدية ضرب العدد الحالي و نخزن الناتج الجديد مكان القيدم
end

اسم الدالة Factorial نحفظها في ملف باسم Factorial.m

نعيد النتيجة مخزنة في المتحول factorial

بالتوفيق

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحباً بك،

بإمكانك أيضاً إستخدام الطريقة التعاودية فكما تعلم أن: 

n! = n * (n - 1)!

و سيكون البرنامج بهذا الشكل:

fprintf('%d! = %d\n', 6, fact(6)); % output: 6! = 720

function x = fact(n)
if n<=1 % شرط التوقف
  x = 1; % نُعيد 1
else
  x = n * fact(n-1) ; % الدالة تُنادي على نفسها 
end

بإمكانك تجربة البرنامج من خلال هذا الرابط: هنا ثم إضغط Run

شرح:

بما أن n = 6 فعند دخول الدالة (fact(6: فإن الشرط لن يتحقق و بالتالي سيتم تنفيذ جزء و إلا و بالتالي (x = 6 * fact(5 و هنا سيتم إستدعاء الدالة fact ثانيةً: 5 لن يُحقق الشرط و بالتالي سيتم إرجاع  fact(4) * 5  و بالتالي سيُصبح 6 * 5 * (fact(4 و هكذا إلى أن نصل إلى 1 الذي يُحقق الشرط و هنُا سيتم إرجاع 1 و بالتالي x سيُصبح 6 * 5 * 4 * 3 * 2 * 1 اي:

x = 6 * 5 * 4 * 3 * 2 * 1 = 720

و هكذا بالنسبة لأي عدد آخر،

بالتوفيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...