Открыть главное меню

Идемпоте́нтность (лат. idem — тот же самый + potens — способный) — свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при первом. Термин предложил американский математик Бенджамин Пирс (англ. Benjamin Peirce) в статьях 1870-х годов.

Примеры идемпотентных операций:

  • сложение с нулём: ;
  • умножение на единицу: ;
  • модуль числа: ;
  • выбор максимального значения: ;
  • вычисление наибольшего общего делителя: ;
  • сложение по модулю 2 с нулём: ;
  • нахождение остатка от деления: ;
  • возведение в степень ноль: .

ЭлементПравить

Идемпотентный элемент (идемпотент) в алгебре — элемент полугруппы, сохраняющийся при умножении самого на себя:  . Теорема об идемпотенте гласит: в конечной полугруппе есть идемпотент.

Идемпотентный элемент   содержит идемпотентный элемент   (обозначается  ), если  . Отношение   является отношением частичного порядка в множестве   идемпотентных элементов и называется естественным частичным порядком на множестве  .

Два идемпотентных элемента ассоциативного кольца (которое будет полугруппой по умножению)   и   называются ортогональными, если  .

ОперацияПравить

Идемпотентная бинарная операция в математике — операция, относительно которой всякий элемент обладает идемпотентностью в вышеназванном смысле:

 .

Этим свойством обладают, например, логическое И и логическое ИЛИ.

Идемпотентная унарная операция — операция, для которой выполняется  , или  .

Из линейных операторов в   идемпотентны только тождественный оператор, нулевой оператор и параллельная проекция. Поэтому проектор в алгебре — в том числе в бесконечномерных пространствах — определяется как  .

В информатикеПравить

Идемпотентная операция в информатике — действие, многократное повторение которого эквивалентно однократному.

Примером такой операции могут служить GET-запросы в протоколе HTTP. По спецификации, сервер должен возвращать идентичные ответы на идентичные GET-запросы (при условии, что ресурс не изменился). Это позволяет корректно кэшировать эти ответы, снижая нагрузку на сеть.

Для препроцессора языка Си директива «#include "xxx.h"» является идемпотентной, если в заголовочном файле есть защита от двойного включения.

ЛитератураПравить