ورود

View Full Version : تقسیم دارای اعشار اعداد بسیار بزرگ باینری



s.a.s.a.n
جمعه 08 اسفند 1393, 10:48 صبح
سلام به همه . اول بگم که روش شیفت و تفریق متوالی رو تو تایپیک های قبل خوندم ! سوالم تکراری نیس :)
دنبال یه روشی هستم که اعداد خیلی بزرگی رو به هم تقسیم کنم (در مبنای 2) که البته میدونم توی جواب قراره اعشار طولانی ای ظاهر بشه .
اگه از تفریق متوالی استفاده کنم که به شکل وحشتناکی طولانی میشه . روش شیفت هم خوبه ولی چون مقیاس اعداد مورد نظر من خیلی خیلی بزرگه اینم برام بهینه نیس.
خیلی برام مهمه لطفا اگه روش هایی بلدین که بشه با سریع ترین و بهینه حالت ممکن این جور تقسیمات رو انجام داد راهنمایی کنید . یا حد اقل اسم روش رو بگین برم دنبالش . خیلی خیلی ممنون

masoud.8086
یک شنبه 10 اسفند 1393, 20:05 عصر
سلام
اول بگم اینکه بهینه بودن الگوریتم به عامل اصلی بستگی داره که بیشترین تکرارو داره...خوب برای تقسیم های اعشاری اعداد طولانی اول باید مشخص کنی که تا چند رقم میخوای اعشار رو محاسبه کنی که این خودش به مرتبه زمانی الگوریتم(همون بهینه بودن) تاثیر مستقیم داره..و تا جایی من اطلاع دارم بیشتر از این راه های که شما گفتی نمیشناسم اما به نظرم اینجا میشه از روابط ریاضی استفاده کرد برای کم کردن تعداد تقسمات و کوتاه کردن طول برنامه..

xman_1365_x
دوشنبه 03 فروردین 1394, 03:12 صبح
سلام
الگوریتم های جدید رو باید توی گوگل جستجو کنی، چیزایی که من یادمه Newton’s method و Barrett’s method و Fast recursive division. Burnikel هست
دو کتابخانه هست یکیش GSM هست که کتابخانه نوشته شده برای اعداد بزرگ هست
و کتابخانه اینتل به اسم Intel Decimal Floating-Point Math Libraryکه توابعی برای کار با اعداد اعشاری هست که با استفاده از دستورالعمل های پیشرفته و جدید اینتل مثل AVX برای محسابات اعشاری نوشته شده
بعضی ها هم روی ترکیب کتابخانه با الگوریتم های دیگه کار کردن
موفق باشید.