عاملي

Article on other languages:

في الرياضيات، المضروب أو العاملي لعدد صحيح طبيعي 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 بت، لأن النتيجة تتعدى المساحة المتوفرة.

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net