عاملي
في الرياضيات، المضروب أو العاملي لعدد صحيح طبيعي n، والذي يكتب n!، والذي يقرأ "عاملي n"، هو جداء الأعداد الصحيحة الموجبة قطعا والأصغر أو تساوي n.
فيما يلي مثال 5 عاملي :
و تعريف العاملي على شكل جداء يترتب عنه كون 0! = 1 ذلك أن 0! جداء مفرغ، وبمعنى آخر مقتصر على العنصر المحايد في عملية الضرب.
استعمل رمز علامة التعجب (!) للتعبير عن دالة عاملي لأول مرة من طرف عالم الرياضيات كريستيان كرامب وكان ذلك عام 1808.
و يلعب العاملي دورا أساسيا في علم الاحتمالات والتراتيب بما أنه يوجد n! طريقة مختلفة لتوزيع n شيئا. و يظهر العاملي في عدة معادلات رياضية، مثل صيغة الثنائي لنيوتن وصيغة تايلور.
يمكن لتعريف دالة عاملي أن يمدد إلى أعداد غير طبيعية بدون المساس بخصائص هاته الدالة. هذا العملية تستلزم تقنيات متطورة في الرياضيات وخصوصا تلك المستقاة من التحليل الرياضي.
محتويات |
تعريف [عدل]
تعرف دالة عاملي بالصيغة التالية:
أو عن طريق الاستدعاء الذاتي كما يلي
وكلا التعريفين يضم المتساوية التالية :
تطبيقات [عدل]
نظرية الأعداد [عدل]
لدالة عاملي عدة تطبيقات في مجال نظرية الأعداد. وبشكل خاص، عاملي n قابل للقسمة على جميع الأعداد الأولية الأصغر من أو تساوي n. وكنتيجة لذلك، فإن n > 5، عدد مؤلف، إذا وفقط إذا توفر ما يلي :
سرعة النمو و تقريبات عندما يصير n كبيرا [عدل]
عندما يصير n كبيرا، تصير دالة عاملي أكبر من أي كثيرة حدود ومن أي دالة أسية ل n.(ولكنها تبقى أبطأ من دالة الأس المزدوج).
أغلب التقريبات لعاملي n تعتمد أساسا على تقريب لوغارتمها الطبيعي كما تبين الصيغة :
.
تبيان الدالة (!f(n) = log(n مبين في يسار هاته الفقرة، حيث يبدو أنها خطية مع n (أي أنها متناسبة معه) إلا أن هذا الحدس خاطئ.
تعطينا صيغة ستيرلينغ مقاربا ل n! عندما تكون n كبيرة :
الحساب و البرمجة [عدل]
يمكن حساب عاملي عدد ما باستعمال خوارزميات الاستقراء. فلنكتب باستعمال لغة 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; 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 بت، لأن النتيجة تتعدى المساحة المتوفرة.
تمديد دالة عاملي للأعداد غير الطبيعية [عدل]
دالتا غاما و پي [عدل]
لكل عدد صحيح n، لدينا
حيث Γ هي دالة أويلر(دالة غاما) وضعها ليونهارد أويلر. وتمكننا هاته الدالة من تعميم العاملي على مجموعة الأعداد المركّبة باستثناء الأعداد السالبة قطعا. وفي النهاية نجد :






