دالة التباديل !
#1
السلام عليكم ورحمة الله وبركاته ,,

قبل شهر او شهرين تقريبا كنت قد كتبت دالة التباديل ,,

لكن واجهة إشكال فيها لاحظوا الدالة :

PHP كود :
Function nPr ( n,r:integer) : Integer ;
var 
i :integer;
begin
 Result 
:= 1 ;
  for 
i :=  r  DownTo 1 do begin
   Result 
:= Result*n*(n-1);
   
n := n-2 ;
  
end;
 
Application.MainForm.Caption := ( ' Ans := '+ IntToStr(Result) );
end; 

هذا ما اعتقده صحيح ولكن لم تجدي نفعا ,,

لا اعرف كيف لكن قسمت r على 2 ,, وأصبحت الدالة هكذا :

PHP كود :
Function nPr ( n,r:integer) : Integer ;
var 
i :integer;
begin
 Result 
:= 1 ;
  for 
i :=  ( r div 2 )  DownTo 1 do begin
   Result 
:= Result*n*(n-1);
   
n := n-2 ;
  
end;
 
Application.MainForm.Caption := ( ' Ans := '+ IntToStr(Result) );
end; 

فأصبحت الدالة تعمل بشكل صحيح إذا كان r ( الدليل ) عددا زوجياً

لا أعرف ما المشكلة !؟؟؟


==================

ولمن لا يعرف التباديل ,, سأشرحها باختصار

لو قلنا 5 تباديل 2 = 5 × 4

5 تباديل 3 = 5 × 4 × 3

6 تباديل 2 = 6 ×5

وهكذا . . .


والسلام عليكم
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد


الردود في هذا الموضوع
دالة التباديل ! - بواسطة Dr.MOT - 12-07-2009, 08:10 PM
دالة التباديل ! - بواسطة kachwahed - 12-07-2009, 10:32 PM
دالة التباديل ! - بواسطة Dr.MOT - 14-07-2009, 03:34 PM
دالة التباديل ! - بواسطة S.FATEH - 24-03-2015, 04:10 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم