2010년 9월 30일 목요일
[sicp] 1.13
0 1 1 2 3 5 8
fin n = 1 ((1+ 5)/2 - (1-5)/2 )/5 => 5/5 => 1
fin n = 2 (((1+ 5)/2)^2 - ((1-5)/2 )^2)/5
=> ( (1+ 5)/2 - (1-5)/2 )( (1+ 5)/2 + (1-5)/2 ) ) /5
=> 5/5 => 1
#lang scheme
(define (fib n)
(fib-iter 1 0 n))
(define (fib-iter a b count)
(if (= count 0)
b
(fib-iter (+ a b) a (- count 1))))
(define A
(/ (+ 1 (expt 5 0.5))
2))
(define B
(/ (- 1 (expt 5 0.5))
2))
(define (fib2 n)
(/ (- (expt A n)
(expt B n))
(expt 5 0.5)))
(fib2 1) = 1.0
(fib 1) = 1
(fib2 2) = 1.0
(fib 2) = 1
(fib2 3) = 2.0
(fib 3) = 2
...
(fib2 40) = 102334155.00000013
(fib 40) = 102334155
(fib2 50) = 12586269025.00002
(fib 50) = 12586269025
...
(fib2 60) = 1548008755920.003
(fib 60) =1548008755920
(fib2 70) = 190392490709135.44
(fib 70) = 190392490709135
(fib2 80) = 23416728348467744.0
(fib 80) = 23416728348467685
70까지는 거의 근접하고 1~ 3까지는 확실히 똑같다. 3 이후부터는 소수점이 많이 늘어난다.
2010년 9월 29일 수요일
[sicp] 1.12
The numbers at the edge of the triangle are all 1, and each number inside the triangle is the sum of the two numbers above it.35 Write a procedure that computes elements of Pascal's triangle by means of a recursive process.
#lang scheme
(define (pascal_triangle a b )
(cond
((= a b) 1)
((= a 2) 1)
((= b 1) 1)
(else (+ (pascal_triangle (- a 1) (- b 2))
(pascal_triangle (- a 1) (- b 1))))))
--------------------------------------------------------------------------------
;;; sicp 1.12
#lang scheme
(define (pascal_triangle a b )
(cond
((< a b) '틀렸음)
((= a b) 1)
((= b 1) 1)
(else (+ (pascal_triangle (- a 1) (- b 1))
(pascal_triangle (- a 1) b)))))
수정함
[sicp] 1.11
- recursive process
#lang scheme
(define (f n)
(cond ((= n 0) 0)
((= n 1) 1)
((= n 2) 2)
(else (+ (f (- n 1))
(* 2 (f (- n 2)))
(* 3 (f (- n 3)))) ) ) )
- iterative process
#lang scheme
(define (f-iter a b c count)
(if (= count 0)
c
(f-iter (+ a (* 2 b) (* 3 c) )
a b (- count 1) ) ) )
(define (f n )
(f-iter 2 1 0 n) )
2010년 9월 26일 일요일
1.10
Exercise 1.10. The following procedure computes a mathematical function called Ackermann's function.
(define (A x y)
(cond ((= y 0) 0)
((= x 0) (* 2 y))
((= y 1) 2)
(else (A (- x 1)
(A x (- y 1))))))
What are the values of the following expressions?
(A 1 10)
(A 2 4)
(A 3 3)
Consider the following procedures, where A is the procedure defined above:
(define (f n) (A 0 n))
(define (g n) (A 1 n))
(define (h n) (A 2 n))
(define (k n) (* 5 n n))
Give concise mathematical definitions for the functions computed by the procedures f, g, and h for positive integer values of n. For example, (k n) computes 5n2.
(A 1 10 ) 풀이
( A 1 10 ) = > 1024
( A 1 ( A 1 9) ) = 512
( A 1 ( A 1 (A 1 8 ) ) = 256
( A 1 ( A 1 ( A 1 (A 1 7 ) ) ) = 128
( A 1 ( A 1 ( A 1 ( A 1 (A 1 6 ) ) ) ) )
....
( A 1 .... ( * 2 1 ) )
(A 2 4 ) 풀이
( A 2 1 ) = > 1
( A 2 2 ) = > 4 -> 2^2
( A 2 3 ) = > 16 -> 2^(2^2)
( A 2 4 ) = > 65536 -> (2^(2^(2^2)))
1. f => 2n
(define (f n) (A 0 n)) 일때 A 함수를 따르면
x = 0 이므로 ( * 2 y ) 이다.
답은 f(n) = 2n
2. g => 2^n
3. h => if n = 0 : f(x) = 0
if n = 1 : f(x) = 2^1
if n >= 2 : f(x) = 2^f(x-1)
나오는 순서도는 생략 ㅡㅡ 너무 쓰기 힘듬 ...
2010년 9월 14일 화요일
eclispse monkey
원본 저자: Yi Tan (yi2004@gmail.com)
eclipse monkey
몇가지 불편한거 추가..
setter/getter 이상한거 수정
property:Type= n -> 실행시
property:Type= new Type(); 으로 변환 되는 기능 추가
2010년 9월 10일 금요일
[flex] ContextMenu 기능 정리
1. ContextMenuItem 추가시에 사용하는 이름이 동일하면 한개만 출력된다.
2. ContextMenuItem 추가시에 사용하는 이름이 "삭제","Del" 이런거 전부 안된다.
위의 내용들은 디버거 써도 에러도 잡히지도 않는다. ㅡㅡ
이걸로 며칠을 고생했는지 ㅠㅠ
슬프다.