2014年7月8日火曜日

3歳児の記憶力

日曜日に娘を連れて、神戸の垂水にあるポルトバザールというアウトレットへ連れて行きました。アウトレットについた時の娘の第一声は、
「トーマスあるかな?」
でした。

娘を連れて行くのは、約1年ぶりなのですが、前回、連れて行った時、トーマスの乗り物に乗せたことを憶えていたようです。

1年前にトーマスに乗せた時は緊張のためか固まっていましたが、今回は素直に喜んでいました。

妻の話では、まだ、ハイハイもできなかった頃の遊びをすると非常に喜ぶので、当時のことを憶えているようです。乳幼児といえども侮ることはできません(~_~;)

最近の研究では、3歳までの記憶も呼び起こすことができるようなので、将来、「お父さんは◯◯◯だった」と言われても良いように行動したいものです。

2014年7月2日水曜日

[Project Euler] Problem 31 「両替の計算」

イギリスでは硬貨はポンド£とペンスpがあり,一般的に流通している硬貨は以下の8種類である.
1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p).
以下の方法で£2を作ることが可能である.
1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p
これらの硬貨を使って£2を作る方法は何通りあるか?
SICPからコードを頂きます.
(define (first-denomination kinds-of-coins)
  (cond ((= kinds-of-coins 1) 1)
        ((= kinds-of-coins 2) 2)
        ((= kinds-of-coins 3) 5)
        ((= kinds-of-coins 4) 10)
        ((= kinds-of-coins 5) 20)
        ((= kinds-of-coins 6) 50)
        ((= kinds-of-coins 7) 100)
        ((= kinds-of-coins 8) 200)))

(define (cc amount kinds-of-coins)
  (cond ((= amount 0) 1)
        ((or (< amount 0) (= kinds-of-coins 0)) 0)
        (else (+ (cc amount
                     (- kinds-of-coins 1))
                 (cc (- amount 
                        (first-denomination kinds-of-coins))
                     kinds-of-coins)))))

(define (count-change amount)
  (cc amount 8))
計算してみます.
ようこそ DrRacket, バージョン 5.3.3 [3m].
言語: Pretty Big; memory limit: 2048 MB.
> (count-change 200)
73682
>