ベキ乗の合成の件(風邪ひいたけど書く)

| コメント(1)

コメントありがとうございます!

2の対数取れば良いかと。log_2 f(n) = 2^(n-1)
はてなブックマーク - KoshigoeBLOG: n個の2をベキ乗でつなげる的な意味の数学っぽい表現

ここまではいいのだけど、4番目から結合の順序によって結果が変わるようになる。


>>> ((2 ** 2) ** 2) ** 2
256
>>> 2 ** (2 ** (2 ** 2))
65536

累乗は結合法則をみたさない、というわけなので、まずはどっちの結果を期待しているか明確にしないと行けないんじゃなかろうか。

n個のべき乗の合成 - 西尾泰和のはてなダイアリー

ああ、そうですね。結合法則をみたしませんね。ごめんなさい、確認不足で知識足らずでした。

期待は、(2 ^ (2 ^ (2 ^ 2)))の方です。

(define (A x y)
  (cond ((= y 0) 0)
        ((= x 0) (* 2 y))
        ((= y 1) 2)
        (else (A (- x 1)
                 (A x (- y 1))))))

上記の関数(?)で、(A 2 n)とした場合の話で、それを"h(n)=..."とうまくまとめる方法が分からなかったので、勢いのままブログに書いてみました。上記の関数は(知りませんでしたが)Ackerman関数と言うそうで、(A x y)のxを2に固定した場合、y個の2をベキ乗で繋げた結果が得られます(自分の手計算ではそういう事になりました)。ちなみに、(A 1 y)とした場合は、2のy乗です。

とか言う話は、例の紫のやつと格闘している中で出会いました。

期待している事や意図している事を省略して書いてしまって申し訳ないです。

では、フォローだけ。

プロフィール

このブログ記事について

このページは、koshigoeが2008年4月15日 21:38に書いたブログ記事です。

ひとつ前のブログ記事は「n個の2をベキ乗でつなげる的な意味の数学っぽい表現」です。

次のブログ記事は「GPLv3で提供されるサードパーティ製JSフレームワークとASP(SaaS)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。