<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://valley.egloos.com/rss/style/style.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>이글루스 'sicp' 태그 최근글</title>
		<link>http://valley.egloos.com/tag/sicp</link>
		<description>sicp</description>
		<language>ko</language>
		<pubDate>Fri, 05 Nov 2010 01:17:14 +0900</pubDate>
		<generator>Egloos</generator>
		<item>
	<title><![CDATA[Newton's Method]]></title>
	<link>http://breadceo.egloos.com/3888365</link>
	<guid>http://breadceo.egloos.com/3888365</guid>
	<description>
	<![CDATA[ 
1.1.7 연습 : Newton's method 가 나옵니다.  위키피디아가 최고!!  Newton's method 는 어떤 함수 f(x) 가 있을 때 f(x) = 0 이 되는 값을 approximation 하는 방법입니다.  즉, 방정식의 근을 근사로 구하는 방법이죠. 링크가 깨지지 않는 이상 이 그림 하나면 해결이 됩니다.      결론은 Xn+1 = Xn - f(Xn) / f'(Xn) 이라는 것이고, 이 책에서는 제곱근을 구하는데 사용합니다.  책에 설명되어 있는 알고리즘은 &quot;x의 제곱근에 가까운 값 y가 있을 때, y 와 x / y 의 평균을 구하면 진짜 제곱근에 더 가까운 값을 구할 수 있다&quot; 이것인데 이해가 잘 안됩니다.  여기서  sqrt(b) = a -&amp;gt; a^2 = b (b의 제곱근은 a	]]>
	</description>
	<pubDate>Fri, 05 Nov 2010 01:17:14 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이, 중년이(가) 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.5]]></title>
	<link>http://breadceo.egloos.com/3888310</link>
	<guid>http://breadceo.egloos.com/3888310</guid>
	<description>
	<![CDATA[ 
다시 공부시작했습니다.  1년전에 했던거라 다 잊어먹어서 처음부터 하고 있어요.  연습문제 1.5 같은 경우는 그냥 지나쳤는데 이번에는 정리할 수 있게 이해한 거 같네요. (다른 분 풀이를 참고하긴 했음.)  (define (p) (p))  (define (test x y)	(if (= x 0)	0	y))  (test 0 (p))  여기에서  인자 먼저 계산법(applicative-order- evaluation)으로 구하게 되면  (test 0 (p)) -&amp;gt; (test 0 ((p))) -&amp;gt; (test 0 (((p))))  p 라는 값이 정해지지 않으면 다음 단계로 넘어가지 못하므로 무한루프를 돌게됩니다.  정의대로 계산법(normal-order evaluation)으로 계산하게 되면(test 0	]]>
	</description>
	<pubDate>Fri, 05 Nov 2010 00:20:31 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이, 중년이(가) 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[1.2 프로시저와 프로세스]]></title>
	<link>http://BreakStorm.egloos.com/5263244</link>
	<guid>http://BreakStorm.egloos.com/5263244</guid>
	<description>
	<![CDATA[ 
 1.1 에서는 프로그램을 짜는 3가지 기본 방법을 배웠다면   1.2 에서는 그런 프로그램들중에 어느 프로그램이 좋은 프로그램인지   가늠할수 있는 혜안을 길러주게 하고    그 방법으로 과거 사람들이 많들어 놓은 프로시저를 분석해 보여주고 있다.   여기서 나오는 개념이   시간복잡도 &amp;amp; 공간복잡도     이다.    자세한 안의 내용 까지는 이해가 불가능 하다  하지만 자료구조에서 배운것들 조금 나오면서 맞물리는것이 재미있다.	]]>
	</description>
	<pubDate>Fri, 05 Mar 2010 00:23:47 +0900</pubDate>
	<dc:creator><![CDATA[Again Instant Life(?)]]></dc:creator>
</item>
<item>
	<title><![CDATA[1.1장 요약 [프로그램 짤 때 바탕이 되는 것]]]></title>
	<link>http://BreakStorm.egloos.com/5260982</link>
	<guid>http://BreakStorm.egloos.com/5260982</guid>
	<description>
	<![CDATA[ 
이책의 중심은 문법도 아니고 컴퓨터에 대한 설명도 아니다. 순수히 코딩을 하는 기법에 대하여 설명을 하고 있다.  책에서 말하는 프로그램 짤때의 바탕이 되는 것은  1. 단순 연산  2. 변수 정의  3. 1,2을 잘 적용 하여 만든 프로시저 간략화  그리고 코드를 짤때에는 Blockstruture를 만들어서 대단위 코드를 만들더라도 프로시저 명이 겹치는 일이 없도록 해야한다.  ps1. 간략히 적으면 몇줄 안되는 내용인데 스터디 목적으로(설명하기위해서)   공부하다 보니 왜이리 어렵게도 느껴지는지 ㅜ.ㅜ ps2. 혹시 이 책의 용어가 낯설으시면 C언어의 용어를 빌려와서 공부하시면  그나마 이해가 하기 수월합니다.	]]>
	</description>
	<pubDate>Mon, 01 Mar 2010 23:57:26 +0900</pubDate>
	<dc:creator><![CDATA[Again Instant Life(?)]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.20]]></title>
	<link>http://breadceo.egloos.com/2565162</link>
	<guid>http://breadceo.egloos.com/2565162</guid>
	<description>
	<![CDATA[ 
인자 먼저 계산하는 방법 (gcd 206 40) &amp;gt; (if (= 40 0)         206         (gcd 40 (reminder 206 40))     ) (gcd 40 (reminder 206 40)) (gcd 40 6) - 1  &amp;gt; (if (= 6 0)         40         (gcd 6 (reminder 40 6))     ) (gcd 6 (reminder 40 6)) (gcd 6 4) - 2  &amp;gt; (if (= 4 0)         6         (gcd 4 (reminder 6 4))     ) (gcd 4 (reminder 6 4)) (gcd 4 2) - 3  &amp;gt; (if (= 2 0)         4         (gcd 2 (reminder 	]]>
	</description>
	<pubDate>Mon, 06 Jul 2009 12:15:24 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.19]]></title>
	<link>http://breadceo.egloos.com/2565035</link>
	<guid>http://breadceo.egloos.com/2565035</guid>
	<description>
	<![CDATA[ 
&amp;gt; (define (fib-iter a b p q count)     (cond ((= count 0) b)           ((even? count)            (fib-iter a                      b                      (+ (* p p) (* q q))                      (+ (* q q) (* 2 p q))                      (/ count 2)))           (else (fib-iter (+ (* b q) (* a q) (* a p))                           (+ (* b q) (* a q))                           p                   	]]>
	</description>
	<pubDate>Mon, 06 Jul 2009 11:28:41 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.17]]></title>
	<link>http://breadceo.egloos.com/2563231</link>
	<guid>http://breadceo.egloos.com/2563231</guid>
	<description>
	<![CDATA[ 
계속해서 반복되는 프로세스로 문제를 풀다보니 18번부터 불어버렸네요;;    &amp;gt; (define (fast-times b c)      (define (double k) (* k 2))      (define (halve k) (/ k 2))      (cond ((= c 0) 0)            ((even? c) (fast-times (double b) (halve c)))            (else (+ b (fast-times b (- c 1))))))  	]]>
	</description>
	<pubDate>Sun, 05 Jul 2009 23:47:49 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.18]]></title>
	<link>http://breadceo.egloos.com/2562835</link>
	<guid>http://breadceo.egloos.com/2562835</guid>
	<description>
	<![CDATA[ 
&amp;gt; (define (fast-times b c)     (define (double k) (* k 2))     (define (times-iter a b c)       (cond ((= c 0) a)             ((even? c) (times-iter (+ a (double b)) b (- c 2)))             (else (times-iter (+ a b) b (- c 1)))))     (times-iter 0 b c)) &amp;gt; (fast-times 2 100) 200  마찬가지로 빠뜨린 부분..  &amp;gt; (define (fast-times b c)     (define (double k) (* k 2))     (define (halve k) (/ k 2))     (	]]>
	</description>
	<pubDate>Sun, 05 Jul 2009 23:23:15 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.16]]></title>
	<link>http://breadceo.egloos.com/2562137</link>
	<guid>http://breadceo.egloos.com/2562137</guid>
	<description>
	<![CDATA[ 
귀띔 덕분에 쉽게 풀었습니다.  &amp;gt; (define (fast-expt b n)     (define (expt-iter a b n)       (if (= n 0) a           (expt-iter (* a b) b (- n 1))))     (expt-iter 1 b n)) &amp;gt; (fast-expt 3 1000) 1322070819480806636890455259752144365965422032752148167664920368226828597346704899540778313850608061963909777696872582355950954582100618911865342725257953674027620225198320803878014774228964841274390400117588618041	]]>
	</description>
	<pubDate>Sun, 05 Jul 2009 22:45:05 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.14]]></title>
	<link>http://breadceo.egloos.com/2503156</link>
	<guid>http://breadceo.egloos.com/2503156</guid>
	<description>
	<![CDATA[ 
동전바꾸기 문제를 분석하는 문제입니다. 일단   &amp;gt; (define (count-change amount)     (cc amount 5)) &amp;gt; (define (cc amount kinds-of-coins)     (cond ((= amount 0) 1)           ((or (&amp;lt; amount 0) (= kinds-of-coins 0)) 0)           (else (+ (cc amount (- kinds-of-coins 1))                    (cc (- amount                           (first-denomination kinds-of-coins))                        kinds-of-coins))))) &amp;gt; 	]]>
	</description>
	<pubDate>Tue, 30 Jun 2009 22:59:30 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.12]]></title>
	<link>http://breadceo.egloos.com/2412208</link>
	<guid>http://breadceo.egloos.com/2412208</guid>
	<description>
	<![CDATA[ 
&amp;gt; (define (pascal row col)     (cond ((&amp;lt;= row col) 1)           ((= col 1) 1)           (else (+ (pascal (- row 1) (- col 1))                    (pascal (- row 1) col)))))      1    1 1   1 2 1  1 3 3 1 1 4 6 4 1  처음에는 이런 파스칼의 삼각형을 모두 출력하는 문제 인 줄 알았는데 다른 분들 블로그를 돌아다녀 보니까  행과 열을 입력했을 떄 그 값을 가지고 오는 것이었네요 그래서 오늘 시험도 깥난겸 이제 다시 스터디 시작하는 마음으로  풀어봤습니다. 파스칼의 삼각형의 행과 열을 입력하면 그 값이 나오게 작성했습니다. 예를 들면  &amp;	]]>
	</description>
	<pubDate>Tue, 23 Jun 2009 02:16:32 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[1.8 newton's method 3제곱근 구하기 ]]></title>
	<link>http://jepis.egloos.com/4987771</link>
	<guid>http://jepis.egloos.com/4987771</guid>
	<description>
	<![CDATA[ 
(define (square x) (* x x))(define (cube x) (* x x x)) (define (cube-root x) (cube-root-iter 1.0 x))(define (cube-root-iter guess x)  (if(good-enough? guess x) guess (cube-root-iter (improve guess x) x)))  (define (improve guess x) (/ (+ (/ x (square guess)) (* 2 guess)) 3))━━━━ 책에 나와있는대로 x의 세제곱근 y(guess)와의 관계(improve 공식)이━━━━ (x/y^2 + 2y)/2(define (good-enough? guess x) (&amp;lt; (abs (- (cube guess)	]]>
	</description>
	<pubDate>Fri, 05 Jun 2009 11:56:50 +0900</pubDate>
	<dc:creator><![CDATA[Blah blah blah!]]></dc:creator>
</item>
<item>
	<title><![CDATA[newton's method]]></title>
	<link>http://jepis.egloos.com/4987679</link>
	<guid>http://jepis.egloos.com/4987679</guid>
	<description>
	<![CDATA[ 
(define (abs a) (cond((&amp;lt; 0 a) (- a))                     (else a)))  (define (square a) (* a a))  (define (sqrt-iter guess x)  (if(good-enough? guess x) guess (sqrt-iter (improve guess x) x)))━━━━━━━━guess가 '충분하면' guess 아니면 'improve'된 guess로 다시 검사한다.  (define (improve guess x) (average guess (/ x guess)))(define (average x y) (/ (+ x y) 2))━━━━━━━━'improve'된 guess는 (x/guss+guess)/2 이다.  (define	]]>
	</description>
	<pubDate>Fri, 05 Jun 2009 10:21:34 +0900</pubDate>
	<dc:creator><![CDATA[Blah blah blah!]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.11]]></title>
	<link>http://breadceo.egloos.com/2243860</link>
	<guid>http://breadceo.egloos.com/2243860</guid>
	<description>
	<![CDATA[ 
recursive process 로 작성한 것    &amp;gt; (define (f n)      (cond ((&amp;lt; n 3) n)            (else ( + (- n 1) (* 2 (f (- n 2))) (* 3 (f (- n 3)))))            )      )    iterative process 로 작성한 것    &amp;gt; (define (f2 n)     (define (f-iter it n1 n2 n3)        (if (= it n)            (+ (- it 1) (* 2 n2) (* 3 n3))            (f-iter (+ it 1) (+ (- it 1) (* 2 n2) (* 3 n3)) n1 n2)))      (if (&amp;lt; n 3)     	]]>
	</description>
	<pubDate>Thu, 28 May 2009 00:39:16 +0900</pubDate>
	<dc:creator><![CDATA[정의를 말할 수 있는 젊은이가 되고 싶다]]></dc:creator>
</item>
<item>
	<title><![CDATA[연습문제 1.10]]></title>
	<link>http://breadceo.egloos.com/2237260</link>
	<guid>http://breadceo.egloos.com/2237260</guid>
	<description>
	<![CDATA[ 
&amp;gt; (define (A x y)      (cond ((= y 0) 0)            ((= x 0) (* 2 y))            ((= y 1) 2)            (else (A (- x 1)                     (A x (- y 1))))))    애커만 함수를 구현한 프로시저이다. 구글에서 애커만 함수에 대해서 좀 찾아봤는데    책에서 설명하고 있는 프로시저와 달라서 ( 영어해석의 귀차니즘과 함께ㅡ 사실은 무서운거겠지만 ㅋㅋ )    아래 식의 값을 묻는 문제이다.    &amp;gt; (A 1 10)  1024    인데 손으로 풀다보면 자연스레 2^10 임을 유추할 수 있다.    &amp;gt; (A 2 4)  65536    인데 손으로 풀다보면 2^16 임을 알 	]]>
	</description>
	<pubDate>Tue, 26 May 2009 01:05:34 +0900</pubDate>
	<dc:creator><![CDATA[진짜 중요한건 코드한줄 잘 짜는게 아니다!]]></dc:creator>
</item>
	</channel>
</rss>

