2013-01-01から1年間の記事一覧
昨日、移動のことをメモした 結晶というのは、"Mathematical model for ideal crystal (or perfect crystal) in R^d is a set Λ, which is formed by a finite number of shifted copies of a single lattice L. Formally, Λ is a perfect crystal if Λ = L +…
空間に点集合が2つ()ある。一つ目の集合()から二つ目の集合()への移動であると考えて、どの点がどの点に移動したとみなすことにするかを考える 同数の点に関するマッチングの決め方であるとみなせる マッチングにはハンガリアン・アルゴリズムが使える場合…
今日は畳みこみ ヒストグラムは離散的にパルス関数で畳み込んだようなもの カーネル密度推定は適当な関数で畳み込んだようなもの いくつかのサイトを やはり一番、東北工業大学中川先生の「人生畳みこみ」 畳みこみを2次元座標で 物理のかぎしっぽ:相関関…
# zは複素数のベクトル # int0,int1はintensityの上下限、sat0,sat1はSaturation(彩度)の上下限 my.hsv <- function(z,int0=0.6,sat0=0.3,int1=1,sat1=1){ # 複素数の偏角 arg <- Arg(z) s <- which(arg<0) arg[s] <- arg[s]+2*pi # 複素数の絶対値 r <- Mod…
繰り返し処理を定義する (define zero (lambda (s) (lambda (z) z))) (define one (lambda (s) (lambda (z) (s z)))) (define two (lambda (s) (lambda (z) (s(s z))))) (define three (lambda (s) (lambda (z) (s(s(s z)))))) 0にadd1を2回適用する ((two …
Last In First Out (LIFO) (define stack '()) (define set-stack (lambda () (set! stack '()) 'done)) (define push (lambda (x) (cond ((null? stack) (set! stack (list x))) (else (set! stack (cons x stack)))) stack)) (define pop (lambda () (let …
順列・組み合わせ・重複組み合わせの通りの数はなので (define perm (lambda (n r) (cond ((= r 0) 1) ((= r 1) n) (else (* n (perm (- n 1) (- r 1)))) ))) (define comb (lambda (n r) (cond ((= r 0) 1) ((= r n) 1) (else (+ (comb (- n 1) (- r 1)) (c…
こちらでLISPの手習い中 ひとまず関数をひたすら書いてみる (define non (lambda (x) 'non)) (define id (lambda (x) x)) (define add1 (lambda (x) (+ x 1))) (define sub1 (lambda (x) (- x 1))) (define ++ (lambda (i) (+ i 1))) (define -- (lambda (i)…
今日から勉強会 こちらから環境をダウンロード GHCiを使う(WinGHCiを使う) テキストは すごいHaskellたのしく学ぼう!作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行本(ソフトカバー)購入: 25人 クリッ…
昨日、素数を軸とする多次元格子の非負領域は自然数だと書いた 多次元格子の全体はなんだろう? それは有理数全体 さらにでは、無理数はどこに? それは格子のすきまに? それともそれは発想が安易すぎる? 1個の無理数は、この超立方格子空間上の格子点を…
昨日、素数を軸とする多次元格子の話を書いた 一般化しよう 次元立方格子の非負部分を考える そこになる超平面をとる ただし、すべてのについてであり、任意のについては無理数であるとする こうすることで、非負部分立方格子はこの超平面で2分され、かつ、…
こちら(など)で素数とかリーマン予想とかゼータ関数についてごちゃごちゃと書いた その中で、リーマンのゼータ関数の複素数0点の複素数部が作る数列に相当する櫛関数のフーリエ変換が素数とそのべき(素数べき)の対数での櫛関数になるという話を書いた リー…
四則演算をラムダ関数として扱いなおしてみる "+,-,*,/"の4演算はすべて2項演算なので、「演算記号」を"#"とでも表すとすれば (# 3 4) のように書くこともできる 問題は、どうやって統一的に扱うのにどうするか 以下はその例。infixという関数をラムダ関数…
ラムダ関数(ただの関数)は「関数である」ことしか決めないので、それに名前をつけてとっておくには、そのための方法が必要になる > (define linear (lambda (a b x ) (+ (* a x ) b))) > (linear 2 3 4) 11 これは、「定義しましょう、linear というものを、…
リストでない形で渡すとそれを値評価する。数値はそのやり方がOK、文字列は""で囲む > 123 123 > "Gauss" "Gauss" リストを与えよう 空リストはエラー(空リストはLISPの定義的にはnilという意味なのだけれど…) > () . #%app: missing procedure expression; …
関数 関数っていうのは、のようなもの これをって、そう書かないといけない理由もないので、と書くことにする さらにの記号は、は関数を定義するんだよ、という意味だと知っていれば、わざわざ書かなくても用は足りるのでと書くことにする さらにのも空白文…
集合からn-タプル、ペアノの自然数 集合を要素数の括弧の入れ子とする。その入れ子的構造がn-タプル でとすると、もの構成要素となってくる。ここでは『空集合』、は『空集合を要素とする集合』。この2つは違うもの。違うというのはどれくらい違うかという…
インクレメントとデクレメント > (define ++ (lambda (i) (+ i 1))) > (++ 3) 4 > (define -- (lambda (i) (- i 1))) > (-- 5) 4 冪 > (define ** (lambda (a b) (expt a b))) > (** 2 3) 8 割り算関係。商、剰余、法数 > (define // (lambda (a b) (quotien…
最低限の特殊形式では不便だ、となれば、拡張してやることもできる。そんな構文例が「拡張の塊」となると「LISP方言」のようなものになる 構文の拡張も自作関数もある意味では同じ…
非数値データ型 > (define type-check (lambda (x) (define form (lambda (str) (display "This is ") (display str))) (cond ((procedure? x) (form "a procedure: ") x) ((number? x) (form "a number: ") x) ((pair? x) (form "a pair: ") x) ((null? x) …
素数夜曲―女王陛下のLISP作者: 吉田武出版社/メーカー: 東海大学出版会発売日: 2012/06/01メディア: 単行本購入: 6人 クリック: 266回この商品を含むブログ (17件) を見る この本の後半を参考に: LISPについてまったく何も知らない状態でWindowsノートPCが…
Schemeの基礎 すべては()表記する(Listで表す)。自然数もListで表す 関数は「ただの関数」というラムダ関数 カリー化は変数を1つずつ扱う方法で()だけで実現できる ベータ簡約・イータ変換・ベータ正規形が関数の同等性や計算手続きの計算機実行を保証する…
という関数があって、という関数があったとする という関数を考えることができる これはyについて関数g()を処理してそれをf()に渡して、という風に入れ子になっているし、1個ずつの変数処理なので、カリー化してある、と言えるもの という新たな関数ができ…
手続きを引数として取る手続き apply > (define iota (lambda (min max) (if (> min max) '() (cons min(iota (+ min 1) max))))) > (iota 0 9) (0 1 2 3 4 5 6 7 8 9) > (define num0-9 (iota 0 9)) > (apply + num0-9) 45 <|| --map >|lisp| > (map - num0…
ラムダ記法(ただの関数)、car(かー)とcdr(くだー)、アルファ変換、ラムダさん方、ベータ簡約、イータ変換、関数適用、関数抽象… 耳慣れない単語が続くと疲れる 疲れるけれど、まぎれなくするための「わざわざの耳慣れなさ」と思って受け入れておこう たとえ…
複数の変数からなる関数があったとき、その変数を1つずつ(プログラムの中で)扱うことをカリー化と言う(らしい) のようなこと Schemeで書くとこんな感じ?下がカリー化風? > ((lambda (x y z) (+ x y z)) 2 3 4) 9 > ((lambda (z) (+ z ((lambda (y) (+ y (…
ペアノ的自然数定義。1を0,1,2,...個要素とするリスト vの操作として表すsuccessorのsucc,predecessorのpred consは1を先頭に付け加えること、cdrは先頭を除くこと > (define succ (lambda (v) (cons 1 v))) > (define pred (lambda (v) (cdr v))) > (succ …