x^y = y^x を満たす y を x で表す関数を y = f(x) とすれば, z = w e^w の逆関数として定義される Lambert の W 関数 W(z) を使うと, x > 1 に対し,f(x) = - x W(-log(x)/x))/log(x) と書けます. この関数は,(...((x^x)^x)...)^x を考えるときにも出てきました.
ただし、W(z) は z<0 に対して多価関数 (値が複数ある関数) ですので, うまく枝 (場合分けして得た通常の関数) を選ぶ必要があります. 実際 x = e の前後で 2 つの枝を使い分けると, 目的の性質を持つ関数と y = x が両方出てきます.