2007-12-13から1日間の記事一覧

リスト修行 素因数分解(2)

どうやら、前回の素因数分解にはバグがあったみたい(修正しました)という訳で、素因数分解を速度アップしながら改善していこう〜 問題点 前回は、素数を作ってから、素因数分解してました。これだと必要とする全ての素数を作らないとダメ。この問題点を改善…

リスト修行 約数のリスト(2)

素因数分解まで出来ちゃいました、素因数分解から組み合わせ(部分集合の集合)を求めて再び約数に挑戦します。 組み合わせ 確か練習問題(2.32)にあったなぁと思いつつ。SICPをめくる。あぁ、全然理解できなかった奴だ・・・。頑張って理解しよう。ちょっと汚…

リスト修行 素因数分解

エラトステネスのふるいで素数リストが求まったので、素数リストを元に素因数分解をしよう。 素因数分解 結構簡単 (define (factor n) (define p (primers n)) (define (iter m l) (cond ((null? l) (= m 1) '()) ((zero? (modulo m (car l))) (cons (car l)…

リスト修行 素数のリストを求める

調べてみると、約数のリスト高速化には素数が必要だということがわかった。どうやら約数という奴を真面目に求めると結構辛いことがわかってきたぞ。ちょっと失敗だ。そんなわけでエラトステネスのふるいを書いてみる。参考文献無しで書けるかな。 一回目 リ…

リスト修行 約数のリストを求める

久しぶりにリスト修行をしよう。 約数 今回のテーマは約数にした。wikipediaによると、約数 - Wikipedia 50 の正の約数は 1, 2, 5, 10, 25, 50 の 6 個 おぉ、リスト向き!!と思ったので、修行してみる。 再帰で 再帰で解いてみる。 (define (divisor n) (def…

SICPを読む(71) 問題2.59 - 2.60 順序づけられないリストとしての集合

次は集合の表現に入ります。微分よりましかな。 集合について Rubyの方がちょっとわかりやすい。 和集合 [1, 2, 3] | [3, 4, 5] #=> [1, 2, 3, 4, 5] 積集合 [1, 2, 3] & [3, 4, 5] #=> [3] Rubyは集合に強いね。 特徴 特徴として、順序が無いってこと。 [3,…