arira110
شنبه 11 آذر 1391, 22:37 عصر
کسی از دوستان میتونه کمک کنه تعداد دغعات تکرار این تابع بازگشتی رو محاسبه کنم
public static double binomial(int N, int k, double p)
{
if ((N == 0) || (k < 0)) return 1.0;
return (1.0 - p)*binomial(N-1, k) + p*binomial(N-1, k-1);
}
مثلا برای (binomial(100, 50 چطوری میشه محاسبه کرد ؟
ارمین نصیری
شنبه 11 آذر 1391, 23:21 عصر
فرمول کلی فکر کنم به صورت زیر اگر کوچک تر از n باشه
n+(k+2)+1
در غیر اینصورت
n*2+2
arira110
یک شنبه 12 آذر 1391, 00:30 صبح
فرمول کلی فکر کنم به صورت زیر اگر کوچک تر از n باشه
n+(k+2)+1
در غیر اینصورت
n*2+2
ممنون از جواب ولی هیچکدوم اینا نیست باید به صورت زیر باشه جواب ها
اینا تعداد تکرار تابع بازگشتی هستن به ازای ورودی هایی که میبینین
(1,0)=3
(1,1)=3
(2,0)=5
(2,1)=7
(2,2)=7
(3,0)=7
(3,1)=13
(3,2)=15
(3,3)=15
(4,0)=9
(4,1)=21
(4,2)=29
(4,3)=31
(4,4)=31
(5,0)=11
(5,1)=31
(5,2)=51
(5,3)=61
(5,4)=63
(5,5)=63
دیوونه ام کرده هر فرمولی رو تست کردم بازم پیدا نکردم
arira110
پنج شنبه 16 آذر 1391, 15:17 عصر
من این مساله رو از کتاب "Algorithms-4th -RobertSedgewick- KevinWayne" پیدا کردم
چند روز قبل به یکی از نویسندگان کتاب ایمیل زدم وازش جواب رو پرسیدم و اونم جوابمو اینطوری داد
Hint: calculate the number of calls for some small values of N and k and consider functions that involve N! (N factorial) and k! (k factorial).
هنوزم نتونستم فرمول رو پیدا کنم
کسی نظری داره؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.