์ด ๊ณ์ฐ๊ธฐ๋ ๋ฌด์์ ํ๋์?
ํ ํจ์ ๊ณ์ฐ๊ธฐ๋ ํ๋์ ์์ f(x, y, z)๋ฅผ 3์ด ๋ฐ์ดํฐ ํ์ ๋ชจ๋ ํ์ ์ ์ฉํฉ๋๋ค. ๊ฐ ํ์ ์ ๋ ฅํ ์ธ ๊ฐ์ ์ซ์๊ฐ ์ฐจ๋ก๋๋ก ๋ณ์ x(1์ด), y(2์ด), z(3์ด)์ ๋์๋ฉ๋๋ค. ๊ณ์ฐ๊ธฐ๋ ์์์ ํ ๋ฒ๋ง ๋ถ์ํ ๋ค ๊ฐ ํ์ ๋ํด ๊ณ์ฐ์ ์ํํ๊ณ , ํ๋ง๋ค ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋๋ ค์ค๋๋ค. 1๋ณ์ยท2๋ณ์ ํ ํจ์ ๋๊ตฌ๋ฅผ 3๋ณ์๋ก ํ์ฅํ ๋ฒ์ ์ด๋ฉฐ, ๋ฒ์ฉ ์ผ๊ด ์์ ์์ง์ผ๋ก๋ ํ์ฉํ ์ ์์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
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\)๋ ์ฐ๊ฒฐํฉ ๊ฑฐ๋ญ์ ๊ณฑ ๊ท์น์ ๋ฐ๋ผ ๊ณ์ฐ๋ฉ๋๋ค.
์์ ๋ก ๋ณด๊ธฐ
๊ธฐ๋ณธ ์์ $$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 ์ธ ๊ฐ์ด ๋ชจ๋ ์์ด์ผ ํ๋ฏ๋ก, ํด๋น ํ์ ์ ๋ ฅ ์ค๋ฅ๋ก ํ์๋ฉ๋๋ค.