خودتوانی

خودتوانی  در ریاضیات و علوم کامپیوتر، به ویژگی خنثی بودن تکرار یک رابطه (یا تابع یا عملیات) گفته می‌شود؛ یعنی اینکه تکرار، در نتیجه نهایی یا محتوای اطلاعات تغییری ایجاد نکند. ریشه پیدایش این عملیات در جبر مجرد و برنامه‌نویسی تابعی است. به عنوان مثال تابع قدرمطلق، «خنثی تکرار» است چون بدون تغییر نتیجه می‌توان آن را چندین بار بر روی خودش اعمال کرد (مثلاً |||۵-|||=|۵-|) و تکرار آن بر روی نتیجهٔ نهایی بی اثر است. نمونهٔ دیگری از این عملیات، پروتکل انتقال ابرمتن است که بدون تغییر در محتوای صفحات، می‌توان بارها آن را درخواست و مشاهده کرد.

نمونه های کاربردی 

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

کاربرد در علوم کامپیوتر 
در علوم کامپیوتر، اصطلاح خودتوانی به طور جامع تری برای توصیف عملیاتی استفاده می شود که اگر یک بار یا چند بار اجرا شود، نتایج یکسانی را ایجاد می کند. ممکن است بسته به زمینه ای که در آن اعمال می شود، معنای متفاوتی داشته باشد. به عنوان مثال، در مورد روش‌ها یا تماس‌های فرعی با عوارض جانبی، به این معنی است که وضعیت تغییر یافته پس از تماس اول یکسان باقی می‌ماند. اگرچه در برنامه نویسی تابعی، تابعی است که دارای خاصیت f(f(x)) = f(x) برای هر مقدار x باشد. این یک ویژگی بسیار مفید در بسیاری از موقعیت ها است، زیرا به این معنی است که یک عملیات را می توان به دفعات لازم بدون ایجاد اثرات ناخواسته تکرار یا تکرار کرد. با عملیات غیر توانمند، الگوریتم ممکن است مجبور باشد ردیابی کند که آیا عملیات قبلا انجام شده است یا خیر.

جستارهای وابسته 
 نقطه ثابت (ریاضیات)
 کدهای چرخشی

منابع 

خواص عملیات دوتایی
خواص جبری عناصر
عملگرهای بستار
روابط ریاضی
علوم نظری رایانه