عاملي

من ويكيبيديا، الموسوعة الحرة

اذهب إلى: تصفح, بحث

في الرياضيات، المضروب أو العاملي لعدد صحيح طبيعي n ، و الذي يكتب n!، و الذي يقرأ "عاملي n"، هو جذاء الأعداد الصحيحة الموجبة قطعا و الأصغر أو تساوي n. و يكتب :

n! = \prod_{i=1}^n i = 1\times 2\times 3\times \cdots \times (n-1) \times n

أمثلة :

  • 1! = 1
  • 2! = 1 x 2 = 2
  • 3! = 1 x 2 x 3 = 6
  • 10! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 = 3628800

و تعريف العاملي على شكل جذاء يترتب عنه كون 0! = 1 ذلك أن 0! جذاء مفرغ، و بمعنى آخر مقتصر على العنصر المحايد في عملية الضرب.

و يلعب العاملي دورا أساسيا في علم الإحتمالات و التراتيب بما أنه يوجد n! طريقة مختلفة لتوزيع n شيئا. و يظهر العاملي في عدة معادلات رياضية، مثل سيغة الثنائي لنيوتن و صيغة تايلور.

و تعطينا صيغة ستيرلينع مساويا لـ n! عندما تكون n كبيرة :

\lim_{n\to+\infty} \frac{n!}{\sqrt{2\pi n} (n/e)^n}=1.

[عدل] عاملي عدد غير صحيح

لكل عدد صحيح n، لدينا Γ(n + 1) = n! حيث Γ هي دالة أولير (دالة غاما) و ضعها ليونارد أولير. و تمكننا دالة أولير من تعميم العاملي على مجموعة الأعداد المركّبة باستثناء الأعداد السالبة قطعا. و في النهاية نجد :

\Gamma(z+1)=\int_{0}^{\infty} t^z e^{-t}\, \mathrm{d}t=z! \ \forall z>-1

[عدل] البرمجة

يمكن حساب عاملي عدد ما باستعمال خوارزميات الاستقراء. فلنكتب باستعمال لغة Scheme، القريبة من لغة Lisp، برنامجا استقرائيا يعطينا عاملي عدد صحيح :

(define fact
  (lambda (x)
    (if (= x 0) 1
      (* x (fact (- x 1))))))

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

و بنفس الطريقة في Caml :

let rec fact n = 
  match n with
    | 0 -> 1
    | _ -> n * fact(n-1)
;;

و بطريقة أخرى:

let fact n =
  let rec aux n r =
    match n with
      | 0 -> r
      | _ -> aux (n-1) (n*r)
  in
  aux n 1
;;

و في لغة سي:

int factorielle_recursive(int n)
{
  if (n == 0)
    return 1;
  else
    return n * factorielle_recursive(n-1);
}

و بطريقة أخرى:

int factorielle_iterative(int n)
{
  int res;
   
  for (res = 1; n > 1; n--)
    res *= n;
   
  return res;
}

و في لغة Python:

fact = lambda x : x>0 and x*fact(x-1) or 1

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

الاستعمال :
for i in range(10):
    print "fact %d = %d" %(i, fact(i))

و يظهر على الشاشة :
fact 0 = 1
fact 1 = 1
fact 2 = 2
fact 3 = 6
fact 4 = 24
fact 5 = 120
fact 6 = 720
fact 7 = 5040
fact 8 = 40320
fact 9 = 362880

هذه الدوال (البرامج) لا تمكننا من حساب عملي أعداد أكبر من 12 إذا كانت الاعداد الصحيحة محدودة بـ 32 بت، لأن النتيجة تتعدى المساحة المتوفرة.

بوابة رياضيات تصفح مقالات ويكيبيديا المهتمة بالرياضيات.
أدوات شخصية