
Lisp
如意IT
2021年开始国内浏览器教学最早者,一对一视频教学,如意老师V:Charleval,QQ群1003837748
展开
-
Lisp:用牛顿法求解平方根
用牛顿法求解平方根,本质上是一个不断逼近的过程。就是说,对一个猜测数字的平方与原数字比较,如果相差不大,那最终的结果就是它。 每一次运算,都会求出猜测值y与x/y的平均数,作为下一次猜测的y值,直到满足条件为止。 #lang racket (define (sqrt-iter x guess) (if (< (abs (- x (sqrt guess))...原创 2019-03-14 20:34:18 · 356 阅读 · 0 评论 -
Lisp:斐波那契数列
#lang rocket (define (fib-one n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ fib-one(- n 1) fib-one(- n 2))))) (define (fib-two n) (fibadd 1 0 n)) (define (fibadd a b n) ...原创 2019-03-14 21:05:31 · 674 阅读 · 0 评论 -
Lisp:换零钱问题
给了半美元,四分之一美元,10美分,5美分,1美分,将1美元换成零钱,一共有多少种换法?更一般的问题,给了任意数量的现金,我们能计算出有多少种换零钱方式吗? 采用递归,有一种简单解法: 将总数a的现金换成n种硬币的不同方式的数目等于 将现金a换成除了第一种硬币之外的所有其他硬币的不同方式的数目 将现金a-d换成所有种类的硬币的不同方式的数目,其中d是第一种硬币币值 #la...翻译 2019-03-14 21:29:54 · 269 阅读 · 0 评论 -
Lisp:素数检测
寻找因子 检测素数的一种方法就是找出它的因子,用从2开始的连续整数检查他们能否整除n 如果n不是素数,必然有一个小于或者等于sqrt(n)的因子。 #lang racket (define (small-divisor n) (find-divisor n 2)) (define (find-divisor n test-divisor) (cond ((> (square ...原创 2019-03-14 23:40:31 · 1321 阅读 · 0 评论 -
Lisp:计算黄金分割率
黄金分割率是变换x--->1+1/x的不动点,我这里把不动点的误差控制在0.0001 #lang racket (define (test guess) (define (enough x y) (< (abs (- x y)) 0.0001)) (define (try guess) (let ((next (+ 1 (/ 1 guess)))) ...原创 2019-03-28 23:13:27 · 783 阅读 · 0 评论