코딩 수학


sympy ¸ðµâÀ» ºÒ·¯¿À°í, »ç¿ëÇÒ ±âÈ£ º¯¼ö¸¦ ¼±¾ðÇÑ´Ù.

In [1]:
from sympy import *
init_printing()          

n, r = symbols('n r', integer=True)

순열과 조합

계승함수

Á¤¼ö $n$ ÀÇ °è½Â(factorial)À» Ç¥ÇöÇÑ´Ù.

In [2]:
factorial( n )
Out[2]:
$$n!$$
In [3]:
factorial( 4 )
Out[3]:
$$24$$

$0$ ÀÇ °è½ÂÀº $1$ ·Î Á¤ÀÇÇÑ´Ù. $$ 0! = 1 $$

In [4]:
factorial( 0 )
Out[4]:
$$1$$

°è½ÂÇÔ¼ö´Â ¸Å¿ì ºü¸£°Ô Áõ°¡ÇÏ´Â ÇÔ¼öÀÌ´Ù.

In [5]:
factorial( 100 )
Out[5]:
$$93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000$$

순열

¼ø¿­ÀÇ ¼ö (the number of permutations):

$$ _ n P _ r = \frac {n!} {(n-r)!} $$
In [6]:
factorial( n ) / factorial( n-r )
Out[6]:
$$\frac{n!}{\left(n - r\right)!}$$

조합

Á¶ÇÕÀÇ ¼ö (the number of combinations):

$$ _ n C _ r = \frac {n!} {r! \, (n-r)!} = {n \choose r} $$

¶ÇÇÑ, Á¶ÇÕÀÇ ¼ö´Â ÀÌÇ×°è¼ö(binomial coefficient)¿Í °°´Ù.

In [7]:
binomial( n, r )
Out[7]:
$${\binom{n}{r}}$$

µÎ Ç¥ÇöÀÌ µ¿ÀÏÇÔÀ» simplify ÇÔ¼ö·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù

In [8]:
simplify( factorial( n ) / factorial( r ) / factorial( n-r ) - binomial( n, r ) )
Out[8]:
$$0$$