kozima #7645(2008/09/17 03:20 GMT) [ Common Lisp ] Rating0/0=0.00
適当に生成しながら小さい順に並べてます。動けばいい的な作りですが。考え方は 84q さんのと同じでしょうか。
計算量は時間 O(N^2) 空間 O(N) かと思いましたが、実際に試してみた感じだともっと小さいかもしれません。また balanced tree をつかうなど真面目に効率化をやればもっと速くなると思います。
1 2 3 4 5 6 7 8 9
(defun add (n list) (if (find n list) list (merge 'list list (list n) #'<))) (defun h (n) (let ((a (list 1)) (c 0)) (loop (let ((m (pop a))) (print m) (setf a (add (* m 2) (add (* m 3) (add (* m 5) a)))) (if (= (incf c) n) (return))))))
Rating0/0=0.00-0+
[ reply ]
kozima
#7645()
[
Common Lisp
]
Rating0/0=0.00
適当に生成しながら小さい順に並べてます。動けばいい的な作りですが。考え方は 84q さんのと同じでしょうか。
計算量は時間 O(N^2) 空間 O(N) かと思いましたが、実際に試してみた感じだともっと小さいかもしれません。また balanced tree をつかうなど真面目に効率化をやればもっと速くなると思います。
(defun add (n list) (if (find n list) list (merge 'list list (list n) #'<))) (defun h (n) (let ((a (list 1)) (c 0)) (loop (let ((m (pop a))) (print m) (setf a (add (* m 2) (add (* m 3) (add (* m 5) a)))) (if (= (incf c) n) (return))))))Rating0/0=0.00-0+
[ reply ]