2008-05-08から1日間の記事一覧

SICPを読む(106) 3.3.3 - assoc

あぁ、assocして、set-cdr!すれば、alistが更新できるのか。すると、リストの中のシンボルの数を数えたくなったら、こう書ける。 (define (collect l) (let ((collects '())) (for-each (lambda (key) (let ((record (assoc key collects))) (if record (set…

SICPを読む(105) 問題3.23 - デキュー

メモ化ユーティリティが欲しくなってきたので、メモ化までSICP読み。 問題 3.23 デキューを作れ。という問題。末尾のdeleteをする為には、キューを双方向化する必要がある。 前 <- 今 -> 後こうしておかないと、最後をdeleteするのにO(1)を達成できない。ち…

Problem 58 - 対角線の中に現れる素数

50問を目前に解ける問題が少なくなってきた。全然解けそうな感じの問題が無い。Problem 58 - PukiWiki 1から初めて, 以下のように反時計回りに数字を並べていくと, 辺の長さが7の渦巻きが形成される.(図)面白いことに, 奇平方数が右下の対角線上に出現する. …

Problem 37 - 切り詰め可能な素数

久しぶりに素数問題。Problem 37 - PukiWiki 3797は面白い性質を持っている. まずそれ自身が素数であり, 左から右に桁を除いたときに全て素数になっている (3797, 797, 97, 7). 同様に右から左に桁を除いたときも全て素数である (3797, 379, 37, 3).右から切…