ランダウ記号ってなんじゃらほい? この Landau ってのは 数論の Landau さん(Edmund Landau, 1877-1938) のことで, 物理学者の Landau (Lev Davidovich Landau, 1908-1968) さんとは別人です. ちなみにわしも二人が別人だとたった今知りました.
\(n^2\)のオーダーで増大する時間計算量, みたいなことを \(O(n^2)\) と書くわけだけど, これを数学的にちゃんと書くと, これが案外大変だ.
ある関数 f の定数倍が上界となっている関数のクラスを値とする class valued function を $$O$$ とする. このとき, ある関数 g が f のクラスに属する \(g \in O(f) \) というのを $$ g=O(f) $$ と表記するわけです.
ややこしいことに, 記法 \(O\) を考えたのは Landau さん本人じゃないとのこと.
俺が使ってるメールサーバが, メールの配信先が /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 に変更し, サーバプロセスを再起動して治った.
しかしメールの仕組みなんかほぼ完全に忘れてたから, 一瞬, かなり詰まったで. 俺の短期記憶は, こういう長期記憶の犠牲の上に成り立ってるんだなぁ, ってつくづくおもうわ.
久々に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 みたいな読書会というか研究会みたいのをやろうと思うので, 興味ある人は連絡ください.
です.