آیکون منو
014

مبانی الگوریتم

الگوریتم چیه:

 

ما خیلی کارها تو زندگیمون انجام میدیم به روش های مختلف؛ به هرکدوم از این روش ها میگیم یه الگوریتم مثلا وقتی میخوایم ماشین رو بشوریم یه روش یا الگوریتم اینه که اول سطل آب رو ببریم زیر شیر آب در مرحله بعد شیر رو باز کنیم تا سطل پر شه در مرحله بعد شیر رو ببندیم و در مرحله بعد لنگ رو ببریم تو سطل اب و باهاش ماشین رو بشوریم. (این الان یه الگوریتم هستش برای این کار)

مسئله

یک لامپ داریم که متصل به 3 کلید است و تنها زمانی این لامپ روشن میشود که 3 کلید در وضعیت یکسانی قرار بگیرند(هرکلید یا بالا است یا پایین). ما از وضعیت این کلید ها خبر نداریم اما لامپ را میبینیم الگوریتمی ارائه کنید که لامپ را در حداکثر 3 مرحله روشن کند.


مسئله

چراغ قوه ای داریم که به دو باتری نیاز دارد. پنج باتری داریم که دقیقا سه تا از آنها سالم هستند. دست‌کم با چند بار امتحان کردن باتری ها در چراغ قوه میتوانیم انرا روشن کنیم.(اخرین بار که چراغ قوه روشن میشود هم جزو مراحل است)

 


مسئله

دو کد دودویی S و T داده شده است.(در کد دودویی سمت چپ رشته 0 نیز میتواند قرار بگیرد) در هر مرحله ارقام رشته S را از سمت چپ تا جایی دلخواه برعکس میکنیم 0 بود یک میکنیم 1 بود 0 میکنیم. اگر S = 1011100100 و T = 0011010010 حداقل چند مرحله نیاز است تا S را به T تبدیل کنیم.

 


مسئله

یک الگوریتم بر روی متغیر های n, b, s, r عملیات زیر را انجام میدهد:

  1. مقدار n را ورودی بگیر.
  2. مقدار b و s را 0 قرار بده.
  3. باقی مانده n را بر 2 در r بریز.
  4. اگر مقدار r با مقدار b متفاوت بود s را یکی زیاد کن.
  5. مقدار r را در b بریز.
  6. مقدار خارج‌قسمت تقسیم n بر 2 را پیدا کن و این مقدار را در n بریز.
  7. اگر n بیش از 0 بود به مرحله 3 برو.
  8. مقدار s را خروجی بده.

اگر این الگوریتم را برای n مساوی اعداد 1 تا 128 اجرا کنیم، بیشینه خروجی الگوریتم چیست.

 


منابعی برای مطالعه بیشتر

آزمون چهارم - مبنای 2 و الگوریتم