ورود

نسخه کامل مشاهده نسخه کامل : درخواست کمک برای نوشتن برنامه فیبوناچی برای اعداد بزرگ + کد



robert
02-04-2010, 18:45
سلام به همگی

این کد برنامه فیبوناچی رو ببینید...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این برنامه به ازای n های بالاتر از 45 خیلی طول میکشه...مثلا رو سیستم من با سی پی یو چهار هسته ای و دو گیگ رم برای عدد 41 حدود ده ثانیه طول میکشه و برای از 50 به بالاتر هم میزنه طرفهای چند ساعت...

تو رشته کامپیوتر و درس طراحی الگوریتم در مورد الگوریتم فیبوناچی صحبت شده و از نوعی از برنامه نویسی به کمک آرایه صحبت شده که دیگه نیازی نیست مثل الگوریتم بالا فیبوناچی عددی مثل 3 چندین بار در زمان اجرای برنامه محاسبه بشه و وقت اجرای برنامه افزایش پیدا کنه بلکه این مقدار یکبار محاسبه شده و در آرایه ذخیره میشه و برنامه از آرایه برای محاسبه فیبوناچی اعداد استفاده میکنه که نسبت به کدی که من نوشتم خیلی خیلی سریعتر هست..

من اون کد رو میخواستم اگه محبت کنید..

ممنونم:11:

karim_medusa
04-04-2010, 14:08
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

gavanche
04-04-2010, 20:43
سلام.
به این نوع الگوریتم که داده ها و مقدار های محاسبه شده رو توی یک آرایه ذخیره می کنند و زمان اجرای برنامه رو در ازای مصرف مقداری حافظه پایین می آرن می گن الگوریتم داینامیک(dynamic) یا پویا

و من فکر می کنم که این کد از کدی که به عنوان جواب ارائه شده داینامیک تره (در اصل به این کد اصلن داینامیک نیست (هست؟) این کد تنها فرقی که با کد اولیه داره اینه که از تابع بازگشتی استفاده نکرده)
درسته که زمان اجرای برنامه ی ایشون با کد من برای یک بار اجرا برابره ولی وقتی که این تابع قراره چند بار توی یک برنامه تکرار بشه این کد زمان اجرای سر شکن شده ی کمتری داره

در ضمن من یه سوال دارم:
چرا تابع فیبوناچی تونو از نوع double تعریف کردید؟ همون int جواب نمی ده؟

پ.ن: من syntax استفاده از اشاره گر رو دقیق یادم نیست (از اولشم درست یاد نگرفتم)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید