加载中
【Scheme归纳】3 比较do, let, loop

对象的比较 eq? 这个函数用来比较2个对象的地址,如果相同的话就返回#t。在Scheme中真用#t表示,假则用#f。 例如,(eq? str str)返回#t,因为str本身的地址的是一样的,但是”scheme”和”s...

【算法】2 由股票收益问题再看分治算法和递归式

回顾分治算法 分治算法的英文名叫做“divide and conquer”,它的意思是将一块领土分解为若干块小部分,然后一块块的占领征服,让它们彼此异化。这就是英国人的军事策略,但我们今天要看的是...

【算法】1 由插入排序看如何分析和设计算法

插入排序及其解决思路 算法的作用自然不用多说,无论是在校学生,还是已经工作多年,只要想在计算机这条道路走得更远,算法都是必不可少的。 就像编程语言中的“Hello World!”程序一般,学...

斐波那契数(C/C++,Scheme)

一、背景 斐波那契数的定义: f0=0 f1=1 fi=fi−1+fi−2(i>1) 二、分析 我引用两张表,大家一看便懂。 1.递归 (factorial 6) (* 6 (factorial 5)) (* 6 (* 5 (factorial 4))) (* 6 (* 5 (* 4...

2015/09/08 21:45
2
【SICP练习】26 练习1.32

 练习1.32 因为递归比迭代要更容易实现,因此我先考虑的递归。先将sum和product都列出来。 (define (sum term a next b) (if(> a b) 0 (+(term a) (sum term (next a) next b)))) (defin...

【SICP练习】8 练习1.12

 这道练习的翻译有误。原文是:Write a procedure that computes elements of Pascal’s triangle bymeans of a recursive process.正确的翻译应该是计算帕斯卡三角形的各个元素。 y : ...

【算法】5 传说中的快排是怎样的

什么是快速排序 快速排序简介 快速排序(英文名:Quicksort,有时候也叫做划分交换排序)是一个高效的排序算法,由Tony Hoare在1959年发明(1961年公布)。当情况良好时,它可以比主要竞争对...

【SICP练习】24 练习1.30

 练习1.30 这道题要求将一个递归的规程改成是迭代的,通过对递归版本的sum的观察得出以下变换形式: a—(next a) other—(+ (term a) other) 博主英文不太好实在想不出什么好词语了。变换...

2015/09/08 21:51
1
【SICP练习】85 练习2.57

练习2.57 看到题目中的能处理任意项就赶紧这道题挺难的,同时也想到了前面学过但还没怎么用过的点参数。题目中要能求和还能求乘积。我们先来写求和的函数吧。 (define (make-sum a1 . a2) (...

【SICP练习】63 练习2.34

 练习2.34 书中一开始有2个式子,一个是原式,一个根据Horner规则构造出的式子。而我们同样也可以将待求得式子写成这种方式,而且可以更进一步——那就是写成Lisp的前序表示: (+ 1 (* ...

2015/09/08 21:49
1
【SICP练习】2 练习1.6

 练习1.6 这道题通过由一个新版本的if来引出,主要讨论的还是应用序和正则序的问题。我看到“将if提供为一种特殊形式”时还满头雾水,并不太清楚什么特殊形式。当再返回看if的语法时才发...

【SICP练习】82 练习2.54

这些关于Scheme的基本知识在【Scheme归纳】系列博文总都有介绍。 (define (equal? x y) (cond ((and (symbol? x) (symbol? y)) (symbol-equal? x y)) ((and (list? x) (list? y)) (list-equa...

【SICP练习】137 练习3.68

练习3-68 原文 Exercise 3.68. Louis Reasoner thinks that building a stream of pairs from three parts is unnecessarily complicated. Instead of separating the pair (S0,T0) from th...

【SICP练习】31 练习1.37

 练习1.37 根据题目中的意思通过观察得到k项有项连分式的一种表达方式: f=N1/(D1+(N2/(…+Nk/Dk))) 这个式子可以不断展开,但如果我们把每一个”+”后面的式子记作T(i)。不对,我们应该...

2015/09/08 21:47
1
【SICP归纳】4 模式匹配和以规则为基础的代换

在书中符号数据一节中,作者写了关于微积分的演算规则的程序。这是一个很程序化的程序,我们所做的是在讲这些(数学)规则翻译成计算机语言。因为它有程序化的行为和结构,那么存在其他的方法...

【SICP练习】151 练习4.7

练习4-7 原文 Exercise 4.7. Let* is similar to let, except that the bindings of the let variables are performed sequentially from left to right, and each binding is made in an en...

【SICP练习】57 练习2.27

 练习2.27 又是修改程序的题目,要求我们写出的deep-reverse函数要将表中的元素也反转过来,这其中应该要用到递归来实现吧。 (define (deep-reverse tree) (cond ((null? tree) ‘()) (...

2015/09/08 21:46
2
【SICP练习】5 练习1.9

 以下是第一个加起两个正整数的方法,其中inc将参数加1,dec将参数减1。 (define (+ a b) (if(= a 0) b (inc (+ (dec a) b)))) 用代换模型展示(+ 4 5)如下: (+ 4 5) (inc (+ 3 5)) (inc...

【SICP练习】9 练习1.15

 (define(cube x) (* x x x)) (define(p x) (- (* 3 x) (* 4 (cube x)))) (define(sine angle) (if (not (> (abs angle) 0.1)) angle (p (sine (/ angle 3.0))))) 大家自己将题目中的代码...

2015/09/08 21:52
10
【SICP练习】64 练习2.35

 练习2.35 这道题中已经给定了accumulate和map,根据accumulate的参数可以很容易的知道题目中的2处需要我们补充的:(accumulate + 0 (map ...... 因为我们是要累加所有的树叶,这里就需要...

2015/09/08 21:47
13

没有更多内容

加载失败,请刷新页面

返回顶部
顶部