n個のべき乗の合成
http://blog.koshigoe.jp/archives/2008/04/n2.html
Pythonではべき乗が**なので置き換えさせてもらうことにする。
>>> 2 2 >>> 2 ** 2 4 >>> 2 ** 2 ** 2 16 >>> (2 ** 2) ** 2 16 >>> 2 ** (2 ** 2) 16
ここまではいいのだけど、4番目から結合の順序によって結果が変わるようになる。
>>> ((2 ** 2) ** 2) ** 2 256 >>> 2 ** (2 ** (2 ** 2)) 65536
累乗は結合法則をみたさない、というわけなので、まずはどっちの結果を期待しているか明確にしないと行けないんじゃなかろうか。
ちなみにPythonだと後者。
>>> 2 ** 2 ** 2 ** 2 65536
数学的に簡潔に各方法は知らないけど、Pythonコードで簡潔に書くのならこうかな。
>>> reduce(lambda x, y: y ** x, [2L] * 4) 65536L