์ฝ๋๋ชฝํค๋ฅผ ๋ฒ์ด๋๊ธฐ ์ํด ์ฒซ๋ฒ์งธ ์ฑ ์ผ๋ก SICP๋ฅผ ์ ๋ ์ค.ย
์ฌํ๊น์ง ์์ฝ ํ๋ฉด,ย
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ดํดํด๊ฐ ์ํด์๋ย
๊ทธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ด๋ป๊ฒ ํ๋ก์์ ์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋์ง๋ฅผ ์ดํดํด์ผ ํ๋ค.ย
๊ทธ๋ฌ๊ธฐ ์ํด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋จ์์ ๊ธฐ๋ณธ์ ์ธ ํ๋ก์์ ธ๋ฅผ ๋ฐฐ์ ๊ณ ,ย
๊ทธ๊ฒ๋ค์ ํ์ฉํด์ ์กฐ๊ธ ๋ ๋ณต์กํ ํํ์ ์ด๋ป๊ฒ ํ๋๊ฐ๋ฅผ ๋ฐฐ์ ๊ณ ,ย
๊ทธ ๋ณต์กํ ํํ์ด ์ผ๋ง๋ ํจ์จ์ ์ธ์ง ํ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ค.ย
์ค๋์ ๊ณ์ํด์, ์กฐ๊ธ ๋ ๋ณต์กํ ํํ์ ์ฐ์ตํ๋ ์ฑํฐ๋ฅผ ์์ฝ ์ ๋ฆฌํ๋ค.ย
-----------------------------------------------------------
Exponentiation (์ ๊ณฑ) ์ ๋ํด์.ย
์ ๊ณฑ์ ๊ณ์ฐํ๊ธฐ ์ํด์๋ ๊ฐ์ฅ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์ recursive ํ ๋ฐฉ๋ฒ์ด๋ค.ย
ย
์ด๊ฒ์ Lisp๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ๋ค.ย
๋ณด๋ฉด ์๋ค์ํผ, ์ด๊ฒ์ Linear recursive ์ด๋ฏ๋ก, n์ด ์ปค์ง๋ฉด ๊ณ์ฐ์๋ ๊ทธ๊ฑฐ์ ๋น๋กํด์ ๋์ด๋๊ณ ,ย
์ฌ๊ท ํจ์๋ ๊ทธ๋งํผ ๋ถ๋ฌ์ผ ํ๋ฏ๋ก ์ ์ฅ๊ณต๊ฐ๋ n ๋งํผ ํ์ํ๊ฒ ๋๋ค.ย
๊ทธ๋ฌ๋๊น ์ด๊ฑฐ์ ๊ณ์ฐ ์คํ
์ย O(n), ๊ณ์ฐ ๊ณต๊ฐ๋ O(n) ์ด๋ผ๊ณ ํ ์ ์๋ค.ย
์ด๊ฒ์ ๋ฆฌ๋์ด ์ดํฐ๋ ์ด์ ์ผ๋ก ๋ฐ๊พธ๋ฉด ์๋์ ๊ฐ์ด ๋ฐ๊ฟ์ ์๋ค.ย
๋ณด๋ฉด ์๋ค์ํผ ์ค๊ฐ๊ณ์ฐ์ ์ ์ฅํ์ง ์์ผ๋ฏ๋ก ๊ณ์ฐ ์คํ ์ ๋๊ฐ์ด O(n)์ด๋ ์ ์ฅ๊ณต๊ฐ์ O(1) ์ธ๊ฒ์ ์ ์ ์๋ค.ย
๋ฆฌ์ปค์ ผ๊ณผ ์ดํฐ๋ ์ด์ ์ ๊ทธ๋ฆผ ์ค๋ช ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐ.ย
https://gall.dcinside.com/mgallery/board/view?id=game_dev&no=108191
์ด๋ฌํ ๊ณ์ฐ๋ค์ ๋์ฑ๋ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํด ์ฌ๋ฌ๊ฐ์ง ๊ผผ์๊ฐ ์กด์ฌํ๋ค.ย
์๋ฅผ ๋ค์ด์ ๊ฐ์ฅ ๋นํจ์จ์ ์ธ๊ฒ ์ด๊ฑฐ๋ผ๋ฉดย
๊ทธ๊ฑธ ์ฝ๊ฐ ๋ ํจ์จ์ ์ด๊ฒ ํ๋ค๋ฉด ์ด๋ฐ๊ฑธ ์๊ฐํด ๋ณผ ์ ์๊ฒ ๊ณ ย
์ด๊ฑธ ์ผ๋ฐํ ํ๋ฉด ์๋์ ๊ฐ์ด ๋๋ค.ย
์ฝ๋๋ก ํํํ๋ฉด ์๋์ ๊ฐ๋คย
์คํธ... ์ด๊ฒ ์ด๋ฐ์์ผ๋ก ํํ์ด ๋๋๊ตฌ๋...ย
์๋ฅผ ๋ค์ด์ 2^8์ ๊ณ์ฐํ๋ค๊ณ ํ๋ฉดย
(exp 2 8)
-> (square (exp 2 4))
-> (square (square (exp 2 2)))
-> (square (square (square (exp 2 1))))
-> (square (square (square (* 2 exp(2 0)))))
-> (square (square (square (* 2 1))))
-> (square (square (square (2))))
-> (square (square (4))))
-> (square (16))
->ย 256
์ด๋ฆฌ ๋๋ค๋ ๊ฑฐ์๊ตฌ๋ง.
์ด๊ฒ์ ๊ณต๊ฐ๋ ๊ณ์ฐ ์คํ ๋ O(log n) ์ธ ๋ชจ์.ย
์ด ์ฌ๊ทํจ์๋ฅผ iterative ๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ์ฐ์ต๋ฌธ์ ๋ก ์๋๋ฐ ํจ์ค.ย
์ฌํผ ์ค๋๋ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ด์๊ตฌ์.ย
์์ง๋ ๋ชธ์ด ๋ค ๋ซ์ง ์์์ผ๋ฏ๋ก ์ค๋์ ์ฌ๊ธฐ๊น์งย
5์งค ๊ฐ์๊ฑด ๋ถํ ์ ๋ณต?์์ ์์ด๋์ด๋ฅผ ๊ฐ์ ธ์จ ๊ฑด๊ฐ์? ์ ์ฉํ๋ค์. ๊ฒฐ๊ตญ ์ฌ๊ท๋ ํธ์ถ์ ์ฌ๋ฌ๋ฒ ํด์ผ๋๋๊น ๊ทธ๋งํผ ์ก์๋จน๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํฌ๊ณ ๊ทธ๊ฑธ ๊ทธ๋๋ง ๋ฉ๋ชจ๋ฆฌ๋ผ๋ ๋ ์ก์๋จน๊ฒ ํ๊ธฐ ์ํด์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ๊ณ ๋ฐ๋ณต๋ฌธ์์ ๊ณ์ฐ ๋จ๊ณ/๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ค์ด๊ธฐ ์ํด์ ๋ถํ ์ ๋ณต์ ๋์ ํด๋ด๋ ๊ฑด๊ฐ์? ์ ๊ฐ ์ดํดํ ๊ฒ ๋ง๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ด์ ใ ใ ;