分からない問題はここに書いてね310
■ このスレッドは過去ログ倉庫に格納されています
0798132人目の素数さん
2009/06/16(火) 23:29:11(use srfi-1)
(use srfi-26)
(define tab (make-hash-table 'equal?))
(define (f a b p x)
(if (hash-table-exists? tab x) (hash-table-get tab x)
(let ((v (cond ((= x 1) a)
((= x 2) b)
(else (modulo (+ (f a b p (- x 1)) (f a b p (- x 2))) p)))))
(hash-table-put! tab x v) v)))
(define (flist a b p)
(begin (hash-table-clear! tab)
(map (lambda (x) (f a b p x)) (map (cut + <> 1) (iota (* p p))))))
(define (tryp p)
(dolist (i (iota p))
(dolist (j (iota p))
(display (flist i j p)))))
初項a,bのフィボナッチを初期値の組合せp×p種類に対してp^2個のループを求める
(tryp 3)の結果は、自明なループ(0,0)の他は、全て同じループ
他のZpがどうかまでは調べてないが(tryp p)とやれば計算できる
■ このスレッドは過去ログ倉庫に格納されています