En informatique, une opération idempotente est une opération qui n'a aucun effet supplémentaire si elle est appelée plus d'une fois avec les mêmes paramètres d'entrée. Par exemple, la suppression d'un élément d'un ensemble peut être considérée comme une opération idempotente sur cet ensemble.
En mathématiques, une opération idempotente est une opération pour laquelle f(f(x)) = f(x) . Par exemple, le abs()
est idempotente car abs(abs(x)) = abs(x)
pour tous x
.
Ces définitions légèrement différentes peuvent être réconciliées en considérant que x dans la définition mathématique, représente l'état d'un objet, et f est une opération qui peut muter cet objet. Par exemple, considérons l'objet Python set
et son discard
méthode. Le site discard
supprime un élément d'un ensemble, et ne fait rien si l'élément n'existe pas. Ainsi :
my_set.discard(x)
a exactement le même effet que de faire deux fois la même opération :
my_set.discard(x)
my_set.discard(x)
Les opérations idempotentes sont souvent utilisées dans la conception des protocoles de réseau, où une demande d'exécution d'une opération est garantie au moins une fois, mais peut aussi se produire plus d'une fois. Si l'opération est idempotente, il n'y a pas de mal à l'exécuter deux fois ou plus.
Voir l'article de Wikipedia sur idempotence pour plus d'informations.
La réponse ci-dessus comportait précédemment quelques exemples incorrects et trompeurs. Les commentaires ci-dessous écrits avant avril 2014 font référence à une ancienne révision.
0 votes
Pour les amateurs de mathématiques -
f(f(x)) = f(x)
. Continuez à lire les réponses pour un contenu plus descriptif !