گاما رو نصب کن!

{{ number }}
اعلان ها
اعلان جدیدی وجود ندارد!
کاربر جدید

جستجو

پربازدیدها: #{{ tag.title }}

میتونی لایو بذاری!

الگوریتم ریاضی: دستورالعمل مرحله‌به‌مرحله برای انجام محاسبه یا تولید اعداد

بروزرسانی شده در: 23:42 1404/12/8 مشاهده: 13     دسته بندی: کپسول آموزشی

الگوریتم اقلیدس: روشی گام‌به‌گام برای محاسبه بزرگترین مقسوم‌علیه مشترک

با الگوریتمی ساده و قدمت‌داشته، ب.م.م دو عدد را در چند مرحله پیدا کنید.
الگوریتم ریاضی مجموعه‌ای از دستورالعمل‌های مرحله‌به‌مرحله برای حل یک مسئله یا انجام یک محاسبه است. در این مقاله، با یکی از قدیمی‌ترین و کاربردی‌ترین الگوریتم‌ها یعنی الگوریتم اقلیدس برای محاسبه بزرگترین مقسوم‌علیه مشترک (ب.م.م) آشنا می‌شویم. این روش، پایه‌ای برای الگوریتم‌های پیشرفته‌تر در نظریه اعداد و رمزنگاری محسوب می‌شود و درک آن برای دانش‌آموزان دبیرستانی ساده و لذت‌بخش است.

الگوریتم اقلیدس چیست؟ (تقسیم‌های پیاپی)

الگوریتم اقلیدس1 یک روش کارا برای پیدا کردن بزرگترین عددی است که دو عدد صحیح مثبت را بدون باقی‌مانده تقسیم می‌کند. این عدد در ریاضیات با نماد $ b.m.m (a, b) $ نشان داده می‌شود. زیبایی این الگوریتم در سادگی و تکرار شدن یک فرآیند مشخص است تا به نتیجه برسیم. این روش بر این اصل استوار است که بزرگترین مقسوم‌علیه مشترک دو عدد، با بزرگترین مقسوم‌علیه مشترک عدد کوچکتر و باقی‌مانده تقسیم عدد بزرگتر بر کوچکتر برابر است.

برای درک بهتر، فرض کنید می‌خواهیم ب.م.م دو عدد $ a $ و $ b $ (با شرط $ a \ge b $) را پیدا کنیم. طبق این الگوریتم، مراحل زیر را تکرار می‌کنیم:

گام ۱ عدد بزرگتر ($ a $) را بر عدد کوچکتر ($ b $) تقسیم کرده و باقی‌مانده را به‌دست می‌آوریم ($ r $).
گام ۲ اگر باقی‌مانده صفر باشد ($ r = 0 $)، آنگاه عدد کوچکتر ($ b $) همان ب.م.م است و کار تمام است.
گام ۳ اگر باقی‌مانده مخالف صفر باشد، دو عدد جدید $ b $ (عدد کوچکتر قبلی) و $ r $ (باقی‌مانده) را در نظر گرفته و به گام ۱ بازمی‌گردیم.

به‌عنوان یک مثال علمی، بیایید ب.م.م دو عدد $ 252 $ و $ 105 $ را محاسبه کنیم:

  • مرحله ۱: $ 252 \div 105 = 2 $ باقی‌مانده $ 42 $ (چون $ 2 \times 105 = 210 $ و $ 252 - 210 = 42 $).
  • مرحله ۲: حالا ب.م.م ($ 105, 42 $) را حساب می‌کنیم: $ 105 \div 42 = 2 $ باقی‌مانده $ 21 $.
  • مرحله ۳: حالا ب.م.م ($ 42, 21 $) را حساب می‌کنیم: $ 42 \div 21 = 2 $ باقی‌مانده $ 0 $.

با صفر شدن باقی‌مانده، عدد $ 21 $ بزرگترین مقسوم‌علیه مشترک اعداد $ 252 $ و $ 105 $ است.

کاربرد عملی: ساده‌سازی کسرها و مسئله‌های روزمره

شاید در نگاه اول به‌نظر برسد پیدا کردن ب.م.م فقط یک تمرین ریاضی‌ست، اما این مفهوم و الگوریتم محاسبه آن کاربردهای فراوانی در زندگی روزمره و علوم کامپیوتر دارد. یکی از ساده‌ترین کاربردهای آن، ساده‌سازی کسرها2 است. برای مثال، اگر بخواهیم کسر $ \frac{252}{105} $ را ساده کنیم، با تقسیم صورت و مخرج بر ب.م.م به‌دست‌آمده ($ 21 $)، به کسر ساده‌شده $ \frac{12}{5} $ می‌رسیم.

فرض کنید می‌خواهید یک زمین مستطیل‌شکل به ابعاد $ 252 $ متر در $ 105 $ متر را به بزرگ‌ترین قطعات مربع‌شکل ممکن تقسیم کنید. اندازه ضلع هر قطعه برابر با ب.م.م این دو عدد، یعنی $ 21 $ متر خواهد بود. همچنین در علوم کامپیوتر، این الگوریتم پایه‌ای برای الگوریتم‌های رمزنگاری مانند RSA3 است که برای امنیت ارتباطات در اینترنت استفاده می‌شود.

مقایسه روش‌های محاسبه ب.م.م

روش‌های مختلفی برای محاسبه بزرگترین مقسوم‌علیه مشترک وجود دارد. در جدول زیر، دو روش رایج را با هم مقایسه کرده‌ایم:

ویژگی روش تجزیه به عوامل اول الگوریتم اقلیدس
روش کار تجزیه هر دو عدد به عوامل اول و انتخاب عوامل مشترک با کوچکترین توان تقسیم‌های پیاپی و محاسبه باقی‌مانده تا رسیدن به صفر
سرعت برای اعداد بزرگ کند (یافتن عوامل اول دشوار است) بسیار سریع
پیچیدگی محاسباتی $ O(\sqrt{n}) $ برای هر عدد $ O(\log(min(a, b))) $
ریسک خطای انسانی بالا (به‌دلیل فراموشی یک عامل) پایین (روی‌های مکانیکی و مرحله‌ای)

چالش‌های مفهومی

❓ چرا الگوریتم اقلیدس در نهایت به جواب می‌رسد؟
زیرا در هر مرحله، باقی‌مانده تقسیم از مقسوم‌علیه (عدد کوچکتر) کوچکتر است. بنابراین یک دنباله نزولی از اعداد صحیح نامنفی ایجاد می‌شود که به صفر ختم خواهد شد. این اصل، تضمین می‌کند که الگوریتم پس از تعداد محدودی مرحله پایان می‌یابد.
❓ اگر یکی از اعداد صفر باشد، ب.م.م چگونه تعریف می‌شود؟
بزرگترین مقسوم‌علیه مشترک یک عدد با صفر، برابر با قدر مطلق آن عدد است، زیرا هر عددی می‌تواند صفر را تقسیم کند (چون $ a \times 0 = 0 $). بنابراین $ b.m.m(a, 0) = |a| $. الگوریتم اقلیدس نیز در اولین مرحله، با تقسیم $ a $ بر $ 0 $ مواجه می‌شود که تعریف‌نشده است، بنابراین این حالت را به‌عنوان شرط اولیه در نظر می‌گیریم.
❓ آیا الگوریتم اقلیدس فقط برای دو عدد کاربرد دارد؟
خیر. می‌توان آن را برای یافتن ب.م.م چند عدد نیز به‌کار برد. کافی است ابتدا ب.م.م دو عدد اول را محاسبه کنیم، سپس ب.م.م نتیجه‌ی به‌دست‌آمده با عدد سوم، و به همین ترتیب تا آخر. یعنی $ b.m.m(a, b, c) = b.m.m(b.m.m(a, b), c) $.
✨ جمع‌بندی: الگوریتم اقلیدس یک روش باستانی، ساده و در عین حال قدرتمند برای محاسبه بزرگترین مقسوم‌علیه مشترک دو عدد است. با تکرار فرآیند تقسیم و جایگزینی متوالی، این الگوریتم بدون نیاز به تجزیه اعداد، نتیجه را در سریع‌ترین زمان ممکن به‌دست می‌دهد. درک این الگوریتم نه‌تنها برای حل مسائل ریاضی، بلکه برای درک پایه‌های علم کامپیوتر و رمزنگاری مدرن ضروری است.

پاورقی

1 الگوریتم اقلیدس (Euclidean Algorithm): روشی برای محاسبه بزرگترین مقسوم‌علیه مشترک دو عدد با استفاده از تقسیم‌های پیاپی.

2 کسر (Fraction): به معنای یک جزء از یک کل است که به صورت $ \frac{صورت}{مخرج} $ نمایش داده می‌شود.

3 آراس‌ای (RSA): یکی از اولین و پرکاربردترین سیستم‌های رمزنگاری کلید عمومی که امنیت آن مبتنی بر دشواری تجزیه اعداد بزرگ به عوامل اول است.