newLISP数据拟合

有时候需要拟合数据,比如某周五的数据因故无法生成, 可以用下面的算法简单拟合。

计算前两周的周四,周五的环比(邻比), 两个邻比求平均后加1, 乘以 周四的数据,得到周五的数据。

用newLISP实现代码很简单:

参考下面的示例:

#!/usr/bin/newlisp

(define (adjacent-div a b) 
  (div (sub b a) a))

(define (average a b)
  (div (add a b) 2))

(define (fitting a b c d e)
  (int (mul (add (average (adjacent-div a b) (adjacent-div c d)) 1) e))
		 )

(println (fitting 736500 743138 733101 720626 762747))
(println (fitting 743138 801841 720626 756950 759694))
(println (fitting 801841 914530 756950 895230 808846))

(exit)

最后结果是:

~$ ./b.lsp
759694
808846
939562


你可能感兴趣的:(lisp)