ランダウ記法, 神奈川Ruby会議 (2015/01/19)


Landau Symbols

ランダウ記号ってなんじゃらほい? この Landau ってのは 数論の Landau さん(Edmund Landau, 1877-1938) のことで, 物理学者の Landau (Lev Davidovich Landau, 1908-1968) さんとは別人です. ちなみにわしも二人が別人だとたった今知りました.

Weisstein, Eric W. "Landau Symbols." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/LandauSymbols.html

\(n^2\)のオーダーで増大する時間計算量, みたいなことを \(O(n^2)\) と書くわけだけど, これを数学的にちゃんと書くと, これが案外大変だ.

ある関数 f の定数倍が上界となっている関数のクラスを値とする class valued function を $$O$$ とする. このとき, ある関数 g が f のクラスに属する \(g \in O(f) \) というのを $$ g=O(f) $$ と表記するわけです.

ややこしいことに, 記法 \(O\) を考えたのは Landau さん本人じゃないとのこと.

dovecot-imapd

俺が使ってるメールサーバが, メールの配信先が /var/mail/$user じゃなくなって ~/Maildir に知らん間に変更されてて(ここまでは smtpd のしごと)おかげでメールをダウンロードするやつ(なんていうんだっけ?)のimapdがちゃんと動いてなかった.

Sep 12 08:11:01 www5196u dovecot: imap(yuji): Error: Opening INBOX failed: Mailbox doesn't exist: INBOX

imapd って誰やねん? ということで, fuser で調べます.

root@swatch:/var/log#fuser 143/tcp
143/tcp:             25247
root@swatch:/var/log#ps auxw | grep 25247
root     25247  0.0  0.0   2840   976 ?        Ss   08:39   0:00 /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf

まぁよく log をみたら dovecot さん, って書いてありますけどね. dovecot さんの mailbox 指定はどうすんの? ということで調べると mail_location というエントリを使うことがわかる. このエントリはどこで指定してるのか調べて, imapd の見に行く先を ~/Maildir に変更し, サーバプロセスを再起動して治った.

しかしメールの仕組みなんかほぼ完全に忘れてたから, 一瞬, かなり詰まったで. 俺の短期記憶は, こういう長期記憶の犠牲の上に成り立ってるんだなぁ, ってつくづくおもうわ.

神奈川Ruby会議 01

久々にIT系のイベントに行きました. 何年ぶりですかね. Debian ruby かいぎ以来かもしれず.

ペアプログラミングというイベントがあって, 知らない人とコンビを組んで, 主催者から出されるを解決する, という催しなのですが, これが最高に面白く, しかも悔いが残る結果に終わりました. 私は再帰的な構造の問題や評価順序の話は好きですが, 演算子の優先順序とか中置演算子に関する話は嫌いで, パーザの作成は苦手意識です(ご多分にもれず, 学校でやらされた課題でひでぇめにあったのです). それらの事情がいろいろ混じってカルマが発動した結果, 制限時間内に解決できませんでした.

もっとダメなことに, 後半はすっかり集中力が切れてしまいました. ダメすぎです. こんな事で誰かの役に立つような仕事ができるのだろうか. はげしく反省してしまいました.

問題はこれです.

俺の最終的な解答はこれです.

class String
  def evl(oplst)
    if op=oplst.first
      self.split(op).map{|str|
        str.evl(oplst[1..-1])}.inject{|r,e|r.send(op, e)}
    else
      self.to_i
    end
  end
end

使い方はこんなかんじ

irb(main):548:0> "12 *13 + 3".evl(["*", "+", "&", "|"]) 
> 192

最近は, 機械学習や科学計算の書籍をみても, すべてサンプルコードが py ですよね. このへん ruby な人ってどう思ってるんですかね. 俺ですか? 俺はあんまり良いとは思ってませんよ. ということで, 湘南地区で統計的なアルゴリズムと Ruby みたいな読書会というか研究会みたいのをやろうと思うので, 興味ある人は連絡ください.

です.


記事リストへ