//examples
X*X-B*X-1=0
Go
X=B+1/X
Go
(init x=1 ,B=2 )
(setq small 37)
(setq big 99)
(defun calc (a b)
(if (eq a 1)
(cons b nil)
(cons (/ (- b (mod b a ) )
a)
(calc (mod b a ) a ))))
(defun recalc (lst top)
(if (eq (cdr lst ) nil)
(/ top (car lst))
(/ top
(+ (car lst)
(recalc (cdr lst) top)))))
(setq initvalue 1.0)
(setq B 2)
(defun fun (value)
(+ B
(/ 1.0 value)))
(defun many (value)
(if (> (abs (- (fun value ) value )) (/ 1 10000000) )
(+ 1 (many (print (fun value)) ))
0))
(defun generate (count )
(if (> count 0)
(cons B (generate (- count 1) ))
(cons initvalue nil)
)
)
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//比如要开(sqrt 5)
(x-2)(x+2)=1
Go
x=2+1/(2+x)
GO
y=2+x
Go
y-2=2+1/y
Go
y=4+1/y
Go
(setq B 4)
(+ B (recalc (generate (many initvalue ) ) 1.0 ) )
//注意最后一行的+ B的意义因为它与前面的1/(1+x)格式不一样.
可以实现.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//比如要开(sqrt 7)
(x-2)(x+2)=3
Go
x=2+3/(2+x)
GO
y=2+x
Go
y-2=2+3/y
Go
y=4+3/y
Go
(setq B 4)
(+ B (recalc (generate (many initvalue ) ) 3.0 ) )
//注意最后一行的+ B的意义因为它与前面的1/(1+x)格式不一样.
可以实现.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//比如要开(sqrt 9)
(x-2)(x+2)=5
Go
x=2+5/(2+x)
GO
y=2+x
Go
y-2=2+5/y
Go
y=4+5/y
Go
(setq B 4)
(+ B (recalc (generate (many initvalue ) ) 5.0 ) )
//注意最后一行的+ B的意义因为它与前面的1/(1+x)格式不一样.
可以实现.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//比如要开(sqrt 11)
(x-2)(x+2)=7
Go
x=2+7/(2+x)
GO
y=2+x
Go
y-2=2+7/y
Go
y=4+7/y
Go
(setq B 4)
(+ B (recalc (generate (many initvalue ) ) 7.0 ) )
//注意最后一行的+ B的意义因为它与前面的1/(1+x)格式不一样.
可以实现.