2013年1月6日

牛顿法求平方根及习题1.6-1.8

摘要: 牛顿法求平方根:用需要求平方根的数x与猜测值做商,得到的商值与x相加取平均值。用x再次与该平均值做商,商值与x相加求平均值。重复上面步骤。(define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x)));Value: sqrt-iter(define (improve guess x) (average guess (/ x guess)));Value: improve(define (average x y) ... 阅读全文

posted @ 2013-01-06 20:27 初级业余程序员 阅读(387) 评论(0) 推荐(0) 编辑

关于编程环境

摘要: 对于SICP的编程环境,我采用了mit-scheme,在ubuntu下可以采用 apt-get install方式下载,也可以在官方网站下载源码安装(我没能安装成功)。另外还有两种编程环境guile、racket,不过mit-scheme暂时已经够用。关于其用法,我经过尝试得出如下心得,望其他人补充:对于较短的程序,可以直接在解释器中输入。对于较长的程序,可以使用mit-scheme自带的Edwin,具体可以用mit-scheme --edit打开,由于其属于轻量级emacs,不熟悉其用法,其GUI不是很喜欢,故不采用这种方法。我采用方法是编写filename.scm文件(.scm文件能够高亮 阅读全文

posted @ 2013-01-06 19:36 初级业余程序员 阅读(327) 评论(0) 推荐(0) 编辑

习题1.1-1.5

摘要: 习题1.11 ]=> 10;Value: 101 ]=> (+ 5 3 4);Value: 121 ]=> (- 9 1);Value: 81 ]=> (/ 6 2);Value: 31 ]=> (+ (* 2 4) (- 4 6));Value: 61 ]=> (define a 3);Value: a1 ]=> (define b (+ a 1));Value: b1 ]=> (+ a b (* a b));Value: 191 ]=> (= a b);Value: #f1 ]=> (if (and (> b a) (< 阅读全文

posted @ 2013-01-06 19:24 初级业余程序员 阅读(225) 评论(0) 推荐(0) 编辑

SICP笔记1

摘要: 组合式:用一对括号括起一些表达式,形成一个表,用于表示一个过程的应用。(+ 123 456)输出:578表里最左边的是运算符,形式为前缀表示。表可以直接扩充,如(1+2×3):(+ 1 (* 2 3))输出:7给事物命名用define,类似其他高级语言中的变量。(define size 2) ;为size关联一个值,即2(* size 5)输出:10符合过程,一般形式:(define (<name> <formal parameters>) <body>)举例如下:(define (square x) (* x x))(square 21)输出:4 阅读全文

posted @ 2013-01-06 19:05 初级业余程序员 阅读(254) 评论(0) 推荐(0) 编辑

2012年9月25日

迷宫(随机变量)

摘要: 今天随机过程的课堂上,老师讲了一个运用“离散型全期望公式”的很好的例子,在此总结如下:问题:该迷宫假设有四条路,如图。某人在五角星处,他走每一条路需要时间不同(单程),时间如图。只有一条路可以走出迷宫(图中正上方那条路)。假设这个人方向感很差,每次选择可能包含四种可能(即使刚走过的路也可能被选择)。计算该人平均走出迷宫的时间。我们可以设走每条路的时间为随机变量T,由于每次都可能选择死路,我们无法直接求其期望。于是,我们可以再设一个随机变量X,表示该人选择了哪一条路。我们将图中四条路分别标为1、2、3、4,如图。现在我们来求E(T),由随机变量的条件数学期望的性质,我们可以得到E(T) = E[ 阅读全文

posted @ 2012-09-25 21:56 初级业余程序员 阅读(324) 评论(0) 推荐(0) 编辑

2012年9月10日

打印相应数字三角形

摘要: 读入N,S两个自然数(0 <= S, N <= 9), 打印相应的数字三角形(其中,S表示确定三角形的第一个数,N表示确定三角形的行数)。例:当N = 4, S = 3时打印:3(首位数为奇数)4 56 7 89 1 2 3当N = 4, S = 4时打印:(首位数为偶数) 4 6 5 9 8 7 4 3 2 1#include <stdio.h>/* This function is used to reverse the output */void reverse(int num[], int cnt){ int pre, last ... 阅读全文

posted @ 2012-09-10 21:05 初级业余程序员 阅读(1422) 评论(0) 推荐(0) 编辑

2012年9月9日

十进制转N进制

摘要: 输入一个十进制数,将其转换成N进制数(1<= N <= 16)#include <stdio.h>/* This function is used to convert the number * "num" is the number you want to convert * "n" is the N */void convert(int num, int n){ int out_num; if ((out_num = num / n) != 0) convert(out_num, n); printf("%d&quo 阅读全文

posted @ 2012-09-09 19:52 初级业余程序员 阅读(449) 评论(0) 推荐(0) 编辑

2012年9月5日

寻找符合规定的数

摘要: 任意给定一个自然数N,寻找一个M,要求M是N的倍数,且它的所有位数都是0或1组成并要求M尽量小。例:N=3 M=3*37=111N=31 M=31*3581=111011#include <stdio.h>/* This function is used to add 1 to binary number of n. num[0] is high bit, * num[8] is low bit*/void b_add(int num[]){ int i = 8; while (++num[i] == 2) { num[i] = 0; i--; }... 阅读全文

posted @ 2012-09-05 21:59 初级业余程序员 阅读(241) 评论(0) 推荐(0) 编辑

2012年9月2日

黑色星期五

摘要: 有一种计算机病毒叫黑色星期五,如果当天是13号,又恰好是星期五,就会发作起来毁坏计算机的存储系统,试编程找出九十年代中这种病毒可能发作的日期。 1 #include <stdio.h> 2 #define DAYBEGIN 1990 3 #define DAYEND 1999 4 #define FRIDAY 5 5 6 static day_table[2][13] = { 7 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 8 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31... 阅读全文

posted @ 2012-09-02 20:12 初级业余程序员 阅读(516) 评论(0) 推荐(0) 编辑

2012年5月27日

文件系统

摘要: Unix文件系统如何存储文件内容、文件属性和目录?Unix将磁盘块分成三部分(文件系统被分为三个区域):数据区:存放文件内容;i-节点表:存放文件属性;记录文件的大小、所有者和最近修改时间等。(标识为2的i-节点位于文件系统i-节点表的第三个位置)为何是第三个位置,难道第一个位置超级块?但超级块并未在i-节点表中。超级块:存放文件系统本身。如记录每个区域大小,存放未被使用的磁盘块信息。若创建一个新文件,其具体如何实现?文件有内容和属性,内核将文件内容存放在数据区,文件属性存放在i-节点,文件名存放在目录。1.存储属性:内核先找到一个空的i-节点,图中内核找到i-节点47,内核将文件的信息记录在 阅读全文

posted @ 2012-05-27 22:59 初级业余程序员 阅读(1993) 评论(0) 推荐(0) 编辑

导航