PDA

View Full Version : بزرگترین عدد



massood
جمعه 04 دی 1383, 22:49 عصر
ظاهرا بزرگترین عدد در VB در متغیر نوع Double است که حدود e308 است .
که برای فاکتوریل بیش از 170 ( مثلا 171! ) جواب نمی دهد . آیا در VB راهی هست ؟ یا ... :sunglass:

bahar60
شنبه 05 دی 1383, 09:19 صبح
یادمه برای یکی از پروژه های درسی مجبور شدیم با بچه ها تمامی اعمال ساده ریاضی را براش برنامه بنویسیم که یه عدد چند صد رقمی را ضرب در یه عدد چند صد رقمی کنه یا جمع کنه یا منها کنه یا تقسیم کنه ،بدون اینکه اعداد را برش بده یا گرد کنه چون استاد خواسته بود اگر دلش خواست عدد 500 رقمی شاید بیشتر را وارد کنه و بدون برش یا تقریب نتیجه تابع ریاضی را در خروجی ببینه
برای این کار ما اعداد را در قالب string گرفتیم و به روش الگوریتم اعداد بزرگ برای اون توابع ساده را نوشتیم فکر کنم بتونم اگر نیاز داشته باشید کد دلفی اون توابع را براتون پیدا کنم (البته امیدوارم چون مال یکسال و نیم پیش بوده)

مطهر
شنبه 05 دی 1383, 12:31 عصر
به روش الگوریتم اعداد بزرگ برای اون توابع ساده را نوشتیم
میشه بیشتر توضیح بدید :thnx:

حامد مصافی
شنبه 05 دی 1383, 13:01 عصر
سلام عزیز

نکته ای که باید بهش توجه کنی اینه که عمل فاکتوریل به تنهایی در ریاضیات تعریف نشده بلکه این تابع از ضرب مشتق شده و به قول برنامه نویسا ازش ارث برده ! پس تنها کاری که میمونه اینه که یه راه واسه ضرب دو عدد n رقمی پیدا کنیم . این فرمول ریاضی رو که به یاد داری


(a+b)^2 = a^2 + 2ab + b^2

با استفاده از همین فرمول میشه نتیجه که حاصلضرب دو عدد ab و cd - که در اونها هر حرف یک عدده - با فرمول زیر برابره


ab , ad+bc , db

ab : رقم صدگان
ad+bc : رقم دهگان
db : رقم کان

این فرمول برای هر رقم از اعداد قابا تععمیمه و کافیه که برای تشخیص ضریب اون اعداد از مثلث خیام-پاسکال استفاده کرد . و میشه به جای یک عدد بازه تقسیم اعداد رو بیشتر در نظر گرفت یعنی مثلاً اعداد 1000 رقمی رو به بخش های 10 رقمی تقسیم کرد تا عمل ضرب با سرعت بیشتری انجام بپذیره
من الان وقت ندارم بیشتر توضیح بدم :embr:
قبلاً من یه برنامه برای ضرب دوعدد نوشته بودم که برای بالای 10000 رقم هم کار می کرد ولی الان نمیتونم پیداش کنم ! شرمنده ! اگه بتونم و وقت کنم اون رو بازنویسی میکنم و پستش می کنم.

massood
شنبه 05 دی 1383, 19:22 عصر
با تشکر از دوستان . مطالبی که نوشتید بررسی می کنم .
از عزیزان bahar60 و BlackDal هم ممنون می شوم مواردی که فرمودید اگر یافتید ارسال نمایید .
:تشویق: