الرئيسيةبحث

عاملي

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

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

أمثلة :

و تعريف العاملي على شكل جذاء يترتب عنه كون 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 بت، لأن النتيجة تتعدى المساحة المتوفرة.