A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

۴۶ مطلب با موضوع «Programming» ثبت شده است

تابع آکرمن 

در سال ۱۹۲۰ ویلهلم آکرمن و گابریل سودن، دو ریاضیدان دانشجوی دانشگاه دیوید هیلبرت بر روی مبانی محاسبات مطالعه می‌کردند. سودن با تابع نه چندان معروفی که به نام خود ثبت کرد شناخته می‌شود.که این تابع از نوع بازگشتی چند ضابطه‌ای بوده. مدتی بعد و به طور مستقل در سال ۱۹۲۸ اکرمن تابع بازگشتی خود که چندضابطه‌ای بود را ارائه داد. آکرمن ثابت کرد که تابع آکرمن یک تابع بازگشتی است که یک رایانه یا پردازشگر با حافظه بی‌کران می‌تواند آن را محاسبه کند اما یک تابع بازگشتی درجه اول مانند فاکتوریل یا تابع جمع نیست.
input
1
2
output
4

۳ نظر موافقین ۰ مخالفین ۰ ۳۰ فروردين ۹۲ ، ۱۶:۳۲
Amirhossein Mahdinejad

از مسائل پر اهمّیت برای شروع برنامه نویسی می توان به چاپ کردن اشکال هندسی مختلف اشاره کرد که یکی از معروف ترین آنها شکل لوزی است، در اینجا می خواهیم با استفاده از کاراکتر * یک لوزی توپر چاپ کنیم.

 

input
5
output
      *
     ***
    *****
   *******
  *********
   *******
    *****
     ***
      *

۱۰ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۲ ، ۱۶:۰۹
Amirhossein Mahdinejad

بازی دو نفره نیم 

تقریباً همه ی برنامه نویس ها با بازی نیم آشنا هستند، نیم یک بازی دو نفره و دارای استراتژی برد است که معمولاً با 3کپه از سنگ‌ریزه (یا لوبیا، چوب‌کبریت و...) انجام می‌شود. در هر نوبت هر بازیکن از یک کپه حداقل یک سنگ‌ریزه و حداکثر تمام کپه را بر می‌دارد. هر بازیکنی که نتواند در نوبت خود هیچ سنگ ریزه ای بردارد، باخته است.

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ اسفند ۹۱ ، ۱۷:۱۳
Amirhossein Mahdinejad

در این نوع از مرتب سازی، یک خانه از آرایه ی دریافتی را به عنوان محور انتخاب می کنیم و تمام اعداد کوچکتر از آنرا به سمت چپ آن و تمام اعداد بزرگتر از آنرا به سمت راست آن می بریم. حال دو بخش جدید "چپ" و "راست" را به روش مقایسه ای از خانه ی 0 تا Size-1 در کنار یکدیگر می گذاریم.

برای آشنایی بیشتر با این الگوریتم، به فصل "الگوریتم های مرتب سازی" از کتاب Introduction to Algorithms مراجعه کنید.

input
5
1376 -7 7 10506 999
output
-7 7 999 1376 10506
۳ نظر موافقین ۰ مخالفین ۰ ۰۶ اسفند ۹۱ ، ۱۷:۱۶
Amirhossein Mahdinejad