MCP๋กœ ์—ฐ๊ฒฐ โ†’

๊ณ„์‚ฐ ์ž…๋ ฅ

ํ•œ ์ค„์— ํ•œ ํ–‰์”ฉ ์ž…๋ ฅํ•˜๊ณ , ๊ฐ ํ–‰์—๋Š” ์ˆซ์ž ์„ธ ๊ฐœ๋ฅผ ๊ณต๋ฐฑ, ์‰ผํ‘œ ๋˜๋Š” ํƒญ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์„ธ์š”. ๊ฐ ์—ด์€ x, y, z์— ๋Œ€์‘๋ฉ๋‹ˆ๋‹ค.

๊ณต์‹

๊ด‘๊ณ 

๊ฒฐ๊ณผ

f(1.0, 4.0, 9.0) for first row
6.0
3 of 3 rows evaluated ยท f = sqrt(x)+sqrt(y)+sqrt(z)
ํ–‰ x y z f(x, y, z)
1 1.0 4.0 9.0 6.0
2 16.0 25.0 36.0 15.0
3 0.0 100.0 4.0 12.0

์ด ๊ณ„์‚ฐ๊ธฐ๋Š” ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?

ํ‘œ ํ•จ์ˆ˜ ๊ณ„์‚ฐ๊ธฐ๋Š” ํ•˜๋‚˜์˜ ์ˆ˜์‹ f(x, y, z)๋ฅผ 3์—ด ๋ฐ์ดํ„ฐ ํ‘œ์˜ ๋ชจ๋“  ํ–‰์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ–‰์— ์ž…๋ ฅํ•œ ์„ธ ๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ๋ณ€์ˆ˜ x(1์—ด), y(2์—ด), z(3์—ด)์— ๋Œ€์‘๋ฉ๋‹ˆ๋‹ค. ๊ณ„์‚ฐ๊ธฐ๋Š” ์ˆ˜์‹์„ ํ•œ ๋ฒˆ๋งŒ ๋ถ„์„ํ•œ ๋’ค ๊ฐ ํ–‰์— ๋Œ€ํ•ด ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ํ–‰๋งˆ๋‹ค ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. 1๋ณ€์ˆ˜ยท2๋ณ€์ˆ˜ ํ‘œ ํ•จ์ˆ˜ ๋„๊ตฌ๋ฅผ 3๋ณ€์ˆ˜๋กœ ํ™•์žฅํ•œ ๋ฒ„์ „์ด๋ฉฐ, ๋ฒ”์šฉ ์ผ๊ด„ ์ˆ˜์‹ ์—”์ง„์œผ๋กœ๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3์—ด ๋ฐ์ดํ„ฐ ํ‘œ๊ฐ€ ํ•จ์ˆ˜ ์ƒ์ž๋กœ ๋“ค์–ด๊ฐ€ ๊ฒฐ๊ณผ ์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๊ทธ๋ฆผ
x, y, z ํ‘œ์˜ ๊ฐ ํ–‰์„ \(f(x,y,z)\)์— ํ†ต๊ณผ์‹œ์ผœ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

f(x, y, z) = ์นธ์— ์ˆ˜์‹์„ ์ž…๋ ฅํ•œ ๋’ค, ํ•œ ์ค„์— ํ•œ ํ–‰์”ฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ์„ธ์š”. ๊ฐ ํ–‰์—๋Š” ์„ธ ๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๊ณต๋ฐฑ, ์‰ผํ‘œ ๋˜๋Š” ํƒญ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ์ ์Šต๋‹ˆ๋‹ค. ํ‘œ์‹œ๋˜๋Š” ๊ฒฐ๊ณผ์˜ ์œ ํšจ์ˆซ์ž ์ž๋ฆฟ์ˆ˜๋„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‚ด๋ถ€ ๊ณ„์‚ฐ์€ ํ•ญ์ƒ ๋ฐฐ์ •๋ฐ€๋„(double)๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค). ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐํ˜ธ์™€ ํ•จ์ˆ˜์—๋Š” \(+\) \(-\) \(*\) \(/\) \(\char`\^\), ๊ด„ํ˜ธ, ์ƒ์ˆ˜ \(\pi\)์™€ \(e\), ๊ทธ๋ฆฌ๊ณ  sqrt, abs, exp, ln, log, log10, sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, floor, ceil, round, pow, min, max, mod ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์‹ ์›๋ฆฌ

i๋ฒˆ์งธ ํ–‰์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ„๋‹จํžˆ \(\text{results}_i = f(x_i, y_i, z_i)\)์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅํ•œ ์ˆ˜์‹์€ ์žฌ๊ท€ ํ•˜ํ–ฅ์‹(recursive-descent) ํŒŒ์„œ๋ฅผ ํ†ตํ•ด ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ(AST)๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ, ํ‘œ์ค€ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„(๋‹จํ•ญ ๋งˆ์ด๋„ˆ์Šค โ†’ \(\char`\^\) โ†’ \(*\) ์™€ \(/\) โ†’ \(+\) ์™€ \(-\))๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ \(2 + 3 \cdot 4\)๋Š” \(14\)๊ฐ€ ๋˜๊ณ , \(2 \char`\^ 3 \char`\^ 2\)๋Š” ์šฐ๊ฒฐํ•ฉ ๊ฑฐ๋“ญ์ œ๊ณฑ ๊ทœ์น™์— ๋”ฐ๋ผ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๊ฐ€ ํฌํ•จ๋œ ์‹์ด ์–ด๋–ป๊ฒŒ ๊ตฌ๋ฌธ ๋ถ„์„๋˜๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ์ˆ˜์‹ ํŠธ๋ฆฌ
์‹์€ ์—ฐ์‚ฐ์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„๋˜์–ด ๊ฐ ํ–‰์˜ x, y, z ๊ฐ’์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ๋กœ ๋ณด๊ธฐ

๊ธฐ๋ณธ ์ˆ˜์‹ $$f(x, y, z) = \sqrt{x} + \sqrt{y} + \sqrt{z}$$์— 1 4 9, 16 25 36, 0 100 4 ์„ธ ํ–‰์„ ๋„ฃ์œผ๋ฉด, ์ฒซ ํ–‰์€ \(1 + 2 + 3 = 6\), ๋‘˜์งธ ํ–‰์€ \(4 + 5 + 6 = 15\), ์…‹์งธ ํ–‰์€ \(0 + 10 + 2 = 12\)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. \(f(x, y, z) = x \cdot y + z\)๋ฅผ ํ–‰ 2 3 5์— ์ ์šฉํ•˜๋ฉด \(2 \cdot 3 + 5 = 11\)์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

0์œผ๋กœ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ์Œ์ˆ˜์— sqrt๋ฅผ ์“ฐ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ํ•ด๋‹น ํ–‰์— ํ‘œ์‹œ๊ฐ€ ๋ถ™์Šต๋‹ˆ๋‹ค. 0์œผ๋กœ ๋‚˜๋ˆ„๋ฉด Infinity, ์ •์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ๊ฒฐ๊ณผ๋Š” NaN์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋ฉฐ, ๋‚˜๋จธ์ง€ ํ–‰์€ ์ •์ƒ์ ์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

์œ ํšจ์ˆซ์ž 15์ž๋ฆฌ๋ฅผ ๋„˜์–ด์„œ๋ฉด ์™œ ๊ฐ’์ด ๋” ์ด์ƒ ๋ฐ”๋€Œ์ง€ ์•Š๋‚˜์š”? ํ‘œ์ค€ ๋ฐฐ์ •๋ฐ€๋„ ์—ฐ์‚ฐ์€ ์•ฝ 15~16์ž๋ฆฌ์˜ ์œ ํšจ์ˆซ์ž๋งŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ทธ ์ด์ƒ์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์š”์ฒญํ•ด๋„ ์‹ค์ œ ์ •๋ฐ€๋„๋Š” ๋Š˜์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•œ ํ–‰์— ์ˆซ์ž๊ฐ€ ์„ธ ๊ฐœ๋ณด๋‹ค ์ ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? x, y, z ์„ธ ๊ฐ’์ด ๋ชจ๋‘ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ, ํ•ด๋‹น ํ–‰์€ ์ž…๋ ฅ ์˜ค๋ฅ˜๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ตœ์ข… ์—…๋ฐ์ดํŠธ: