์กฐํฉ๋ก (Combinatorics)์ ์ค์ํ ์์ ์ค ํ๋์ธ ์์ด(Permutation)์ ์์๋ค์ ์ด๋ป๊ฒ ๋์ดํ ์ ์๋์ง๋ฅผ ๊ตฌํ๋ ๊ฒ์ ์ง์คํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋์ปต์์ A, B, C ๊ตญ๊ฐ๊ฐ 1~3๋ฑ์ ์ฐจ์งํ๋ค๋ ์ ๋ณด๋ง ์๊ณ ์์ ๋, ๊ฐ๋ฅํ ๋ชจ๋ ๋ฑ์๋ฅผ ๊ตฌํด๋ด
์๋ค.1๋ฑ2๋ฑ3๋ฑABCACBBACBCACABCBA์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์๋ 6๊ฐ๋ก, ๊ทธ ๊ฐ๋ฅํ ๊ฐ์ง์๋ 3 * 2 * 1 = 3! ์ด์์ต๋๋ค. n๊ฐ์ ์์๋ค ์ค์์ r๊ฐ์ ์์๋ฅผ ๋์ดํ ๋ (ํน์ ๋ฝ์ ๋), ๊ฐ๋ฅํ ๊ฐ์ง์์ธ nPr์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.nPr = n! / (n-r)!์ฐ๋ฆฌ์ ์์์์ n = 3, r = 3 ์ด์์ผ๋ฏ๋ก 3P3 = 3! / (3-3)! = 3! / 1 = 3! = 6 ์ด์์ต๋๋ค.(0 ํฉํ ๋ฆฌ์ผ์ 1์
๋๋ค) ์ฌ๊ธฐ์ ๋ค ์์๊ฒ ์ง..
factorial
Recursive function, ์ฌ๊ทํจ์๋ '์ค์ค๋ก๋ฅผ ํธ์ถํ๋ ํจ์' ์
๋๋ค. ์ค์ค๋ก๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํธ์ถํ ์๋ ์๊ณ , ๋ค๋ฅธ ํจ์๋ฅผ ํตํด ๊ฐ์ ํธ์ถํ ์๋ ์์ต๋๋ค. ์ฌ๊ทํจ์๋ ์ด์งํ์, ํฉํ ๋ฆฌ์ผ ์ฐ์ฐ, ํผ๋ณด๋์น ์์ด ๋ฑ ์ํ์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ถ์ผ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ์ฒซ๋ฒ์งธ๋ก ํฉํ ๋ฆฌ์ผ(!)์ ์์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ ํฉํ ๋ฆฌ์ผ์ด๋, '๊ทธ ์๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ชจ๋ ์์ ์ ์์ ๊ณฑ' ์
๋๋ค. 0! = 1 ์ด๊ณ , n! = n * (n - 1)! ์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋ฉ๋๋ค. ๊ทธ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ๊ทํจ์๋ฅผ ํ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค. // factorial function unsigned long long factorial(unsigned long long n) { if (n == 0) re..