scheme

プログラムに計算式とかせるのがすき6 君のこたえを覚えておきたい

今日はメモ化をしてみようかと思ったんだ。とりあえず、メモ化を分離しないで、関数の中でキャッシュを持っておく形。しかも呼ばれたその時限りのローカルキャッシュ。…フィボナッチ数以外には使えないね。そんなこともないかもしれないけど。 (define (fib4…

プログラムに計算式とかせるのがすき5 フィボナッチ数が欲しい

気の向くままにschemeで殴り書きするシリーズと化してきました。 ;;フィボナッチ数 (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2)))))) ;;フィボナッチ数2 (define (fib2 n) (let ((route5 (sqrt 5))) (* (/ 1 route5…

プログラムに計算式とかせるのがすき4 ωのワルツは見えるのか

gosh> (define omega (/ (+ -1 (* (sqrt 3) 0+1i)) 2)) omega gosh> (expt omega 1) -0.5000000000000002+0.8660254037844385i gosh> (expt omega 2) -0.4999999999999996-0.8660254037844388i gosh> (expt omega 3) 1.0+6.432571489356498e-16i gosh> (expt…

プログラムに計算式とかせるのが好き3 エラトステネスの篩

昨日の素因数分解、 (prime-decomposition (+ (* 2 3 5 7 11 13 17 19 23 29 31) 1)) ↑こんな式食わすと帰って来なくなる。ちなみに(+ (* 2 3 5 7 11 13 17 19 23 29 31) 1)=>200560490131 まあそりゃあそうだろ、と思いながら素数のリストが欲しくなって、 …

プログラムに計算式とかせるのが好き2

;;素因数分解する。 (define (prime-decomposition x) ;;素因数分解するとき。 ;;nで割ってみて、余りが0だったら、戻り値にnを追加して、もう一回 ;;余りが0じゃなかったらnを+1して、ループ ;;…であってる? ;;nが素数じゃなかったら、とかは下の方からル…

プログラムに、計算式とかせるのが結構好き。

;;素数? (define (prime? x) (define (prime-iter x n) (if (equal? n x) ;;比べる数と元の数が一緒なら素数 #t (if (equal? (mod x n) 0) ;;割り切れる数が見つかったならそれは非素数 #f (prime-iter x (+ n 1))))) ;;どちらでもなかったら、比べる数を1…