الگوریتم تقسیم اعداد بزرگ(۵۰digit division)

calculator

calculator

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

در ریاضی تقسیم به چه معناست؟با یک مثال معنای آن را بیان می کنیم فرض کنید شما ۷ تا سیب دارید و می خواهید ببینید که چند تا دو تایی سیب دارید ۷ را منهای ۲ می کنید و می بینید ۵ عدد سیب می ماند آیا ۵ از ۲ کمتر ایت و ادامه می دهیم برای دومین بار ۲ را از تعداد سیب های باقی مانده کم می کنیم که ۵ منهای ۲ عدد ۳ می شود آیا ۳ از ۲ کمتر است خیر پس ادامه می دهیم حالا عدد ۲ را از تعداد سیب های موجود یعنی ۳ کم می کنیم که ۱ می شود که ۱ از ۲ کمتر است و اینجا کارمان پایان می یابد.چند بار ما منها کردیم ؟دقیقا ۳ بار پس تقسیم  صحیح ۷ بر ۲ عدد ۳ می شود الگوریتم ما هم برای تقسیم همین است

در اینجا تابع sub  تابع تفریق اعداد ۵۰ رقمی است.

تابع compare دو رشته را مقایسه می کند و می گوید ارزش رشته اول از لحاط ریاضی بزرگ تر یا کوچک تر یا مساوی رشته دوم است.

تابع main_division هم همان تابع اصلی تقسیم است که عدد دومی را از اولی کم می کند و یکی به counter اضافه می کند  و اگر عدد هنوز از عدد اول کوچک تتر باشد به کارش ادامه می دهد.

با کمی دست کاری می توانید این برنامه را برای اعداد ۱۰۰۰ تایی تولید کنید.

division

 

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

۸ comments

Leave a Reply

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *