PDA

View Full Version : تابع بازگشتی ترکیب دو عدد



stahad1
پنج شنبه 29 مهر 1389, 10:13 صبح
اگه کسی باشه در این مورد کمکم کنه ممنون میشم

Salar Ashgi
پنج شنبه 29 مهر 1389, 10:44 صبح
خیلی ساده :



int Tarkib(int n,int r){
if(r==0 || r==n)
return 1;
else
return Tarkib(n-1,r)+Tarkib(n-1,r-1);}

اگه سوالی بود ، بپرسید ./

stahad1
جمعه 30 مهر 1389, 14:23 عصر
مرسی از جواب ساده یه کمی توضیع بدید که چه طوری فاکتوریل را می گیره وجوابش را اگه میشه تحلیل کنید

مسعود اقدسی فام
جمعه 30 مهر 1389, 14:40 عصر
مرسی از جواب ساده یه کمی توضیع بدید که چه طوری فاکتوریل را می گیره وجوابش را اگه میشه تحلیل کنید

این روش فاکتوریل رو محاسبه نمی‌کنه. بلکه از طریق رابطه بازگشتی اقدام به محاسبه می‌کنه:




c( n, r ) = c( n - 1, r ) + c( n - 1, r - 1 )

c( n, n ) = c( n, 0 ) = 1

این روش سرعت بالاتری نسبت به حالتی داره که فاکتوریل‌ها یکی یکی محاسبه می‌شن.

اگه نیاز به اثبات ریاضی این رابطه بازگشتی هم هست، بفرمایید تا بنویسم. گرچه چیز سختی نیست. کافیه فرمول رو بنویسید و طرف راست رو ساده کنید.

Salar Ashgi
جمعه 30 مهر 1389, 15:35 عصر
مرسی از جواب ساده یه کمی توضیع بدید که چه طوری فاکتوریل را می گیره وجوابش را اگه میشه تحلیل کنید

ببینید همانطور که دوست عزیز مسعود اقدسی فام (http://www.barnamenevis.org/forum/member.php?u=87209) ، ذکر کردند :
در بحث ریاضیات گسسته ، قانونی بعنوان قانون پاسکال وجود دارد ، با تعریف زیر :(عکس ضمیمه)
که فرمول ترکیب را بشکل Recursive (بازگشتی) محاسبه میکنه که البته برای ترکیب روش مستقیم
فاکتوریل هم هست که همانطور که گفته شد از بهینگی پایین تری برخوردار است ./

Alijon_68
پنج شنبه 23 مهر 1394, 07:11 صبح
من این برنامه رو پیاده سازی کردم متاسفانه جوابی نمیدهد

Alijon_68
پنج شنبه 23 مهر 1394, 07:21 صبح
ببینید همانطور که دوست عزیز مسعود اقدسی فام (http://www.barnamenevis.org/member.php?u=87209) ، ذکر کردند :
در بحث ریاضیات گسسته ، قانونی بعنوان قانون پاسکال وجود دارد ، با تعریف زیر :(عکس ضمیمه)
که فرمول ترکیب را بشکل Recursive (بازگشتی) محاسبه میکنه که البته برای ترکیب روش مستقیم
فاکتوریل هم هست که همانطور که گفته شد از بهینگی پایین تری برخوردار است ./

ببخشید من این تابع رو نوشتم اما جوابی نگرفتم امکان داره راهنمایم کنید