«前の日(10-24) 最新 次の日(10-26)» 追記

ema log


2006年10月25日 この日を編集

_ [最近] メモリの異常は検出できず

memtest86(20回ループ) と Vista のメモリ検証ツール(2回ループ)を利用しましたが、エラーは出ませんでした。

Vista RC1 で出ていた Memory Management? による BoD の謎が深まりました。バグ?かなぁ…違うと思うんだけど。

64bit 版のなにかに引っかかった可能性も残りますが…

とりあえず、Ubuntu でも入れてみるかな。

_ [最近] デザイン遍歴

たまたま、古いデザインの画像を見ちゃったので並べてみたくなった。

_ [最近] 英語・英語・英語・英語・ドイツ語

午前中は英語の集合の入門書を訳して(少量)説明、午後最初の授業の宿題も英語の翻訳(少量)。最後の授業は英語の授業(少量)。

そして、英語の授業が途中で打ち切られて、英語によるの講演にスイッチ。校長の知り合いの方だというドイツの研究者の人で、英語によるプレゼン。(教官が)通訳がつくという噂もあったんだけど、最後の質問だけでした。

ガリウム窒素による quantum wire などを、自己組織化による成長で作って、特性を調べるというような、基礎研究をされているっぽいことはわかりましたが、それ以上のことは、英語云々ではなく、専門外のために理解できなかった感が満載でした。日本語でも少しマシ程度の理解だった予感。

まぁ、何事も経験だと思うので、聞きに行って良かったと考えています。

終了後、急いで帰って第九の練習に。5年生が明日の中間発表の準備で大変そうな感じだったので、若干心が痛んだということにしておきます。正直なところ、このレッスンは一回でも休むと相当響きそうです。残りは後4週のレッスン、11/28 の佐渡さんによる合同特別レッスン、12/2 のリハーサル、12/3 の本番。残りも少なくなってきちゃったなぁ…。

こういう日もあるみたいです。


2008年10月25日 この日を編集

_ [最近]Gauche, SICP メモ

Gauche non copy delete-1

ほんとに効率いいのか?

(define (delete-1 elt lis . options)
  (let-optionals* options ((cmp-fn equal?))
    (define (loop lis)
      (cond [(null? lis) lis]
            [(cmp-fn elt (car lis)) (cdr lis)]
            [else (let ((memo (loop (cdr lis))))
              (if (eq? (cdr lis) memo) lis (cons (car lis) memo)))]))
  (loop lis)))

(use gauche.test)
(let ((data (list 1 2 3 4 5)))
  (test* "non-copy delete-1" data (delete-1 6 data) eq?))

SICP 1.29

素直に動かすと,途中計算が有理数のため n = 10 程度で (simpson cube 0 1 10) が 1/4 を返す.

(define (sum term a next b)
  (if (> a b)
      0
      (+ (term a)
         (sum term (next a) next b))))

(define (cube x) (* x x x))
(define (inc n) (+ n 1))
(define (inc2 n) (+ n 2))

(define (simpson term a b n)
  (let ((h (/ (- b a) n)))
    (define (y k) (term (+ a (* k h))))
    (* h 1/3 (+ (y 0)
                (* 4 (sum y 1 inc2 (- n 1)))
                (* 2 (sum y 2 inc2 (- n 1)))
                (y n)))))

1.30

(> a b) のときの値に嵌った

(define (sum term a next b)
  (define (iter a result)
    (if (> a b)
        result
        (iter (next a) (+ result (term a)))))
  (iter a 0))

1.31

Wikipedia で式の変形をカンニング.分母に 1 * を補っている式.有理数でやると 1000 でようやく 3.147 とか.

(define (square x) (* x x))

(define (pi/4 n)
  (define (f i)
    (let ((m (* 2 i)))
      (/ (square m) (square (- m 1)))))
  (/ (* 2
        (product f 2 inc (+ n 1)))
     (- (* 2 n) 1)))

(define (pi n)
  (* 4 (exact->inexact (pi/4 n))))

1.32

(define (sum     term a next b) (accumulate + 0 term a next b))
(define (product term a next b) (accumulate * 1 term a next b))

(define (accumulate combiner null-value term a next b)
  (define (iter a result)
    (if (> a b)
        result
        (iter (next a) (combiner result (term a)))))
  (iter a null-value))

1.33

素人くさいSICP読書会#12レポートから prime? をいただきました.

(define (filtered-accumulate combiner null-value filter term a next b)
  (define (iter a result)
    (if (> a b)
        result
        (if (filter a)
            (iter (next a) (combiner result (term a)))
            (iter (next a) result))))
  (iter a null-value))

(define (f-33-1 a b) (filtered-accumulate + 0 prime? square a inc b))