در این دوره آنلاین آموزش متلب به صورت رایگان با سری آموزشهای نرم افزار متلب در خدمت شما هستیم. در واقع آنچه که شما به طور کاملا عملی برای استفاده در انجام پروژه متلب نیاز دارید در این جلسات ارائه خواهد شد.
جلسهی پیش با حل تمرین در متلب (جمع بندی نکات تمرینات متلب) آموزش مقدماتی متلب را پیش بردیم. در این جلسه میخواهیم به سراغ تمرین سوم که راجع به اعداد اول یا prime numbers در متلب است برویم. اما در ابتدا بایستی با مفهوم واژه Prime آشنا شویم.
مفهوم واژه prime
Prime یعنی اول و primitive یعنی اولیه.
چگونه میتوانیم تشخیص دهیم که اعدادی مانند ۲ یا ۵ عدد اول هستند؟ تعریف عدد اول این است: «عددی است که بر هیچ عددی به جز خودش و عدد یک بخشپذیر نمیباشد». اگر عددی اول نباشد، مرکب است. اعداد اول جزء یکی از معماهای ریاضی هستند و هنوز کسی فرمولی برای آنها به دست نیاورده است.
وارد برنامه متلب میشویم. برای مثال وقتی بخواهیم بررسی کنیم ببینیم این عدد اول است یا خیر، رادیکال ۱۱ یعنی sqrt(11) را مینویسیم. که میشود ۳.۳۱
آن را ذخیره میکنیم. روی ۴ میرسد بعد تا ۴ را بررسی میکنیم. یعنی ۲ و ۳ و ۴ را بررسی میکنیم و میبینیم که آیا ۱۱ به این اعداد بخش پذیر است یا خیر؟ آیا ۱۱ به ۲ بخشپذیر است؟ خیر
به ۳ بخشپذیر است؟ خیر
به ۴ بخشپذیر است؟ خیر
اگر به اینها بخشپذیر نباشد، به بقیه اعداد هم بخشپذیر نیست. برای مثال میخواهیم مقسومعلیههای عدد ۳۰ را بنویسیم.
یکی ۱ است که خارج قسمت همان ۳۰ میشود. یکی ۲ دو است که خارج قسمت آن ۱۵ است. یکی ۳ است که خارج قسمت آن ۱۰ است و یکی هم ۵ است که خارج قسمت آن ۶ است. مشاهده میکنید که تا همینجا کافی است. زیرا بعد از ۵ دقیقا قرینهی همین اعداد است.
مثلا اگر ۶ را اضافه کنیم ۶×۵ میشود و اگر ۱۰ را اضافه کنیم، ۱۰×۳ میشود و اگر ۱۵ را اضافه کنیم، ۲×۱۵ میشود و در آخر هم خود ۳۰ را داریم.

پس اگر یک طرف اینها را بررسی کنیم همه بررسی میشوند.
الان اگر رادیکال ۳۰ را هم بزنیم، مشاهده میکنیم که ۵.۴۷ میشود. پس متوجه میشویم که تا ۶ یا همان ۵ بررسی کنیم، کافی است.

پس برای اینکه بررسی کنیم که عدد n اول است یا خیر، باید بخشپذیری عدد n بر اعداد ۲ تا را بررسی کنیم.
گفتیم ۲ تا …؛ در اینجا از «تا» صحبت شده است. پس برای نوشتن برنامه از for استفاده میکنیم یعنی تکرار یک حلقه.
اگر n بر هیچیک از اعداد بازهی مشخصه بخشپذیر نباشد، آنگاه n اول است.
بنابراین از ۲ تا را بررسی میکنیم. اگر n بر هیچ کدام از اعداد بازه بخشپذیر نبود، آنگاه آنn اول است. باید توجه داشته باشید که خود ۲ را همیشه اول در نظر میگیریم که داخل الگوریتم نیاید.
حال به سراغ برنامه میرویم تا شروع به نوشتن آن کنیم.
یک script جدید باز میکنیم.

نام آن را هم prime numbers قرار میدهیم.


Health index را میبندیم زیرا کارمان با آن تمام شد.
حال به سراغ prime numbers میرویم. ابتدا یک clc میزنیم. مثل همیشه صفحه را clear میکنیم و close all را هم میزنیم و یک display میزنیم برای مثال میخواهیم display کنیم prime numbers
بعد از nای داریم که این n ، input دارد و میگوید enter a positive integer number که integer از انتگرال یا جزء صحیح میآید، معنی کلی آن هم این میشود که یک عدد صحیح مثبت را وارد کنید.
پس یک input داریم که میگوید که یک عدد صحیح مثبت را برای بررسی اول بودن آن وارد کنید.
اصل را بر این گذاشتیم که این عدد، عدد اولی است مگر اینکه عکس آن ثابت شود. پس میگوییم که isprime = true یعنی صحیح است. یعنی این عدد، عددی اول است. حال میگوییم برای i از ۲ floor میکنیم. floor کردن یعنی چه؟ یعنی برای مثال که میشد ۳ و خوردهای، همان ۳ در نظر میگیریم زیرا تا ۳ هم بررسی کنیم، برایمان کافی است. sqrt (n) را Floor میکنیم که قبلا در مورد آن توضیح دادیم.
بعد میخواهیم ببینیم بخشپذیر است یا خیر. برای بخشپذیری از یک تابعی به نام mod استفاده میکنیم. mod باقیمانده را محاسبه میکند. میدانید که اگر باقیمانده تقسیم عددی بر عدد دیگر برابر صفر باشد، یعنی اینکه بر آن عدد بخشپذیر است. پس میگوییم if mod (n , i) ==0 در این صورت Isprime = false یعنی دیگر برقرار نیست.
پس اگر false شد، break کند و از برنامه بیرون بیاید و end کند و کلا for را هم end کند.
حال اگر Isprime صحیح بود، چه کار کند؟ ابتدا num2str(n) را display کند و بگوید که is a prime number یعنی آن یک عدد اول است.
و در غیر این صورت یعنی else، display کند که num2str(n) is not prime number و بعد از آن هم if اولی را end میکنیم که برنامه را ببندیم.

الان برنامه ما برای اعداد اول نوشته شد که آن را run میکنیم.

میگوید که برنامه prime numbers اجرا شده است. از ما میخواهد یک عدد مثبت صحیح وارد کنیم. برای مثال عدد ۵ را وارد میکنیم.

میگوید که 5 Is a prime number

حال دوباره آن را run میکنیم.

این بار عدد ۷۷ را وارد میکنیم.

میگوید 77 is not a prime number یعنی ۷۷ یک عدد اول نیست.

حال بار دیگر برنامه را run میکنیم و یک عدد دیگر وارد میکنیم.

برای مثال ۱۱ را وارد میکنیم.

میگوید که ۱۱ یک عدد اول است.

بار دیگر برنامه را run میکنیم و عدد ۸۹ را وارد میکنیم.

که میگوید ۸۹ عدد اول است.

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