ايران ويج

نسخه‌ی کامل: فاکتوریل
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
[/u]سلام
در یکی از سوالات هم در مورد محاسبه فاکتوریل اعداد بزرگ پرسیده شده بود ولی راه پیشنهادی قابل اجرا نیست.
میشه لطفا راه های دیگری پیشنهاد بدین.
دوست من سلام

من نمیدونم راه حل پیشنهادی چی بوده ! یکی از راه حل ها اینه که شما ضرب اعداد بزرگ رو از طریق تقسیم به آرایه انجام بدین ! یعنی مثلا دو عدد 12 رقمی به چهار خونه سه تایی در دو آرایه تبدیل بشن . بعد هر قسمت 3 رقمی با سرعت در هم ضرب بشه و بعد جواب کلی تصحیح بشه !
سلام
مرسی از جوابتون. الان من برنامه ای نوشتم که فاکتوریل اعداد بزرگ را هم حساب میکنه. من فقط از نوع دابل متغیر رو گرفتم. جوابو درست می ده ولی 10 رقم از اعشار پایانی شو نمی نویسه.
لطف کنید برنامه رو اینجا بزارین من ببینم چطور نوشتین تا بتونم بهتر راهنماییتون بکنم !
[attachment=517]مرسی. فایل cpp که اتچ کردم قبول نکرد . با wordبراتون میفرستم.

thanks alot. sara
سلام

برنامه شما رو دیدم . این روش محاسبه برای اعداد خیلی بزرگ دقیق نیست . ببینید شما متغیر رو از نوع double گرفتید و در واقع یک عدد floating point ( اعشاری ) دارید که یک عدد 64 بیتی هست ( این بزرگترین نوع متغیر در زبان هست ) و فقط دقت اون 16 رقم اعشار عددی هست پس شما ماکزیمم میتونی به 16 رقم اعشار عدد اصلی دست پیدا کنی و نه بیشتر !
اگر میخوای هر 16 رقم رو ببینی باید سیستم نمایش اعداد رو به fixed point تغییر بدی . فقط کافیه که خط زیر رو اول برنامه ات قرار بدی که اعشارها رو ببینی :

کد:
cout.setf (ios_base::fixed , ios_base::floatfield);

اگر دقت بکنید میتونید ببینید که بعد از 16 رقم بقیه ارقام صفر خواهند بود و این نشون میده که بقیه ارقام اعشار صفر در نظر گرفته میشن و به همین دلیل جواب دقیقی نخواهیم داشت .
سلام
من برای اینکه اثبات کنم برنامه ی اکسل همچنان بی نظیر و پر قدرت ترینه، چند ساعت وقت گذاشتم و با استفاده از ویژوال بیسیک در اکسل2007، برنامه ای نوشتم که بتونه فاکتوریل اعداد بزرگ رو محاسبه کنه.
این برنامه تنها یک محدودیت داره: فقط می تونه فاکتوریل اعدادی رو محاسبه کنه که تعداد رقم های جواب نهایی فاکتوریل آن عدد، کوچک تر از شانزده هزار باشه(16000). یعنی اگر جواب نهایی فاکتوریل، یه عدد شانزده هزار رقمی باشه(یا کمتر)، می تونه اون فاکتوریل رو محاسبه کنه.
فکر کنم همین قدرش هم برای سوت کشیدن مخ کافی باشه! اما تو فکرم که برنامه رو ارتقا بدم تا جواب های یک ملیون رقمی رو هم پیدا کنه.
یک نکته ی دیگه هم اینکه اگر عدد بزرگ باشه، برای محاسبه ی جواب باید مدتی صبر کنید که بستگی به بزرگی عددتون داره؛ ولی مطمئن باشید که اکسل جواب رومحاسبه می کنه.
سعی می کنم یه کمی اصلاحات روش انجام بدم و بعد بگذارمش روی وبلاگم.
اگه زودتر خواستید اون رو، یه ایمیل بزنید تا بفرستم خدمتتون.
http://www.excelable.blogfa.com/
excelable@gmail.com