2014-01-01から1年間の記事一覧

Nbitサインな値を変換する

16進数を普通にparseするとunsignedな値に読めてしまうので、signedな値に変換する。 (defun gain-signedness (num &optional (bits 32)) (if (<= (expt 2 (1- bits)) num) (- num (expt 2 bits)) num))

2点を通る直線、直線と点の距離

(defun def-line (p1 p2) "2点を通る直線を定義する。 2点 p1(x1 y1) p2(x2 y2) が与えられたとき、ax + by + c = 0 を満たす(a b c)を返す。" (let ((x1 (car p1)) (y1 (cadr p1)) (x2 (car p2)) (y2 (cadr p2))) (list (- y2 y1) (- x1 x2) (- (* x2 y1) (…

文字列から数字だけ抽出する

(defun nums-string (str) (let ((s 0) res) (while (setq s (string-match "[0-9]+" str s)) (push (parse-integer (match-string 0)) res) (incf s (length (match-string 0)))) res)) (nums-string (get-clipboard-data))

強化学習

実際のところ良く分かってないので、半分想像で。 強化学習は、複数の選択肢があるときに、最も利益の高い選択肢を学習する手法である。予め答えを与えなくても学習が進んでいくことが特徴。 ここで、次のようなゲームを考える。A,Bがいて、5つのカードを持…

人工生命の生態シミュレーション

大分前になるが、こういうものを作っていた。 これでやりたかったのは、生態系の中で、動作を獲得していく過程のシミュレーションである。 この結果、捕食関係にあまり関係なく、璧に引っかからないようにぐるぐる回るように進化していった。 そりゃ視線から…

前後の日付を挿入

メモ帳みたいにF5で日付を入れられるようにしている。ただ、それだけだとメモ帳と大差ないので、universal-argumentで前後の日付も入れられるようにしてみた。日記を付けるときに便利。 (defun insert-date (&optional rel-day) "時刻を挿入" (interactive "…

FireGestures向け タイトルとURLをコピー

すぐ見つからないので記録。一応、FireGestures :: Get Scriptsにもあるが、内容が異なるようだ。 var d = window._content.document; var template= " "+d.title +" "+d.location.href; var str = Components.classes["@mozilla.org/supports-string;1"].cr…

shortcutをpathの通った場所に作成する

windowsで、ショートカットをpathの通った場所に配置すると、名前を入力するだけで起動できて便利だ。 しかし、普通にショートカットを作ろうとすると、名前を変えたりコピーしたり、割と手間が多い。絶対パスとエイリアスの指定だけで作りたい。 ショートカ…

今年は日記を書こう。日記を分けるのは面倒なので、ボードゲームや動画の話題なども適当に書く。