2008年4月アーカイブ

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

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乗です。

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

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

では、フォローだけ。

さっぱり、どう表現していいのか分からない。

f(1) = 2
f(2) = 2^2
f(3) = 2^(2^2)
f(4) = 2^(2^(2^2))
f(n) = ????????

表題は上記を意味しているわけですが、これをうまく数学っぽくまとめたいわけです。どんな記号を使うと簡潔に表現できるんですかね?

こんなん、習った事あったっけなぁ?


フォロー記事を書きました(2008/04/15)。
KoshigoeBLOG: ベキ乗の合成の件(風邪ひいたけど書く)

結合法則の件がすっぽりと抜け落ちていました。後ろからベキ乗演算が実行される事を期待しています。

下記が修正前に書いていたものです。

f(1) = 2
f(2) = 2^2
f(3) = 2^2^2
f(4) = 2^2^2^2
f(n) = ????????

LeopardでSafari2.0.4

会社で話にあがっていたので自宅で試したメモ。

↓に過去のSafariがあるので、2.0.4をダウンロード。
Multi-Safari

↓からUpdateSafari2forLeopard.shをダウンロードして、シェルから実行。
Index of /stuff/Safari2

一応、ダウンロードしてきた2.0.4が動きました。それだけ。

ちょうど「Googleを支える技術」を読んでいる中でGoogle App Engineが発表されたのは狙い通りなのかな?

この本の中で、BigTableなどの特性(?)を説明してくれているわけですが、この辺を理解しておかないと、Google App Engineを使った開発でつまづいたりするんでしょうか?

Google App Engine用(Webアプリ用)に、ある程度の部分最適化(?)をしていたりするのでしょうかね。GFSは大量のデータを一括で書き込むとか、上書きはほぼないと考えるとか、色々とGoogle用に最適化されていたはずです(覚えている範囲で)。

Googleではインフラの制約(?)を理解した上での開発が行われているようですが(少なくとも論文発表当時は)、それはGoogle App Engine利用者にも影響してくるのでしょうか。

寝ぼけ頭で読んでいるせいで、あまり覚えていませんが、結構注意しないと困りそうな印象がありますが、どうなんでしょう。

現実的にはたいした問題じゃなかったりする?

Google App Engine

こういうのに出会うと、どうしても気になるプライバシー。

google.appengine.api.usersを使って、(実環境では)どれだけの情報を貰えるんでしょうね。今のところ、nicknameとかemailくらいしか取れない雰囲気ですが。SDK眺めても、いまいちどこで止まるのかよく分かりません。安全性には気を付けてるんでしょうけど、「○○ではこのくらいのオープンさは当然さ!」みたく言われるとアレです。アカウントの情報公開設定はよく確認しておかないと、また祭りですね。

そんな(余計な)心配をしつつ、「Google環境を使える」というのは嬉しい気持ちになります。インフラに手を付けず、Pythonアプリを動かせるというのも個人的に嬉しい点です。最近はまったくPythonを触っていませんが、これでまたやる気がわいてきます。いわゆる廚ですね。

他にやるべき事が沢山あるのに、興味がわいて仕方が無いです。が、2、3日たてば、きっとスルーしている気もします(ネタもないし)。

しかし、Googleは凄まじいですね。


自宅のMac(Leopard; MacPortsのPython2.5)では、urllib2.HTTPSHandlerがなくて開発用サーバが立ち上がりませんでしたが、py25-socket-sslをインストールして解決。

Python が SSL をサポートするように設定してインストールされている場合 (socket.ssl() が存在する場合) 、 HTTPSHandler も追加されます。
11.5 urllib2 -- URL を開くための拡張可能なライブラリ

SDKのインストール先は、"/usr/local/google_appengine"でした。そのままだとpydocでドキュメントみれなくてアレです。まあ、SDKだし、普通のライブラリパスに入るのも問題ですかね。

Rubyスクリプトを書く際に、スペース区切りで構文エラー多発。

Flymakeで強調表示になる理由にしばらく悩んでしまうのはご愛嬌。

括弧に関しては、Emacsで括弧を強調してれば、確かに(あまり)困らない気もしてきました。ノートに書くときも、目が慣れれば感覚で対応できますね(多分、、、; 短いからかもだけど)。

1年での完走が目標です。


↑紫の本の件。

説得材料が欲しい。

多分、頼めば(わりとすんなり)買ってもらえると思いますが、理由が無いのもあれなので。

すぐに思いつくのが、Dictionary.appの存在。ただで、英和辞書が使えるのは嬉しい。これがあったから、OpenIDの(えせ)和訳を最後まで出来たと言っても過言じゃない(英辞郎とかもってないんです)。正直、これだけでも乗り換え理由になると思ってます。

インストール済みソフト(phpとかsvnとか)のバージョンと種類に関しては、別にどうでもいいと思ってます。必要な分はMacPortsで入るし。ビルトインのはバージョンがあがるタイミングが分からないので、なんとなくMacPortsとかで入れたい気分です。

TimeMachineは、あると便利ではありますが、まあ、いらないかな。ファイルサーバやSubversionリポジトリから復旧可能なので。

Cover Flowとかは、仕事で欲しいと思った事はない気がします。Quick Lookは、どうなんですかね。家ではあまり使ってませんが、あると便利ではあるのかな。

Spacesは、デュアルディスプレイを使い始めてから、仮想デスクトップを使わなくなったので、いらない気がします。

改めて考えてみても、これといって仕事で必要になりそうなところが思い当たりません。そもそも、OSを有効活用できている気がしないので、そこが問題なんでしょうけど。

「英和辞書がついてくるので買ってください!」としか言えないのも、あれだしなぁ。

どうしよう。

iMacと"svn up"でフリーズ

今日は2回フリーズした。

仮想マシンを動かしていない状況で1回、仮想マシンを動かした状態で1回。どちらも、きっかけは"svn up"。

Leopardにしたらなおるかな?

プロフィール

このアーカイブについて

このページには、2008年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年3月です。

次のアーカイブは2008年5月です。

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