A Drop of the Programming Sea

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

A Drop of the Programming Sea

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

● The Ackermann function

جمعه, ۳۰ فروردين ۱۳۹۲، ۰۴:۳۲ ب.ظ

تابع آکرمن 

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

ackermann function

ورودی:

این برنامه دو عدد m و n را به عنوان ورودی می گیرد، که هر چه کوچکتر باشند بهتر است!

 

خروجی:

حاصل تابع آکرمن برای دو عدد وارد شده را به عنوان خروجی چاپ کنید.

// A Drop of the Programming Sea - adops.blog.ir
#include <iostream> using namespace std; int Ackermann(int, int); int main() { int m,n; cin >> m >> n; cout << Ackermann(m,n) << "\n"; return 0; } int Ackermann(int m, int n) { if(m==0) return n+1; else if(m>0 && n==0) return Ackermann(m-1,1); else if(m>0 && n>0) return Ackermann(m-1,Ackermann(m,n-1)); }

نظرات  (۳)

in barnameh feghat 1 javab mideh , mage nabayad (m,n) ro bege ???!!!
پاسخ:
نخیر، اگر توضیحات رو می خوندید می فهمیدید که یه جواب داره، اون m,n که ورودی ها هستند :|
بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
** ** **** ****** ** اگه دارید بذارید.
پاسخ:
سرچ کردن یاد بگیرید، به دردتون میخوره.
بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
**** ** ***** مطمینی این کار میکنه ؟ ** ****** ** ****** کردم نشد **
پاسخ:
لا رَیبَ فیه، همه داریم از زبون واحد استفاده می کنیم استاد، به خاطر گل روی شما با VS 2010 هم اجرا کردم مشکلی نداشت، اگر مشکلتون دیدن خروجی برنامه ست کافیه یه system("pause"); k  آخر کد اضافه کنید. (فقط توی ویژوال) که احتمالاً مشکلت همینه

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی