반응형
파이썬에 수학 nCr 함수가 있습니까? [복제]
가능한 중복 :
통계 : 파이썬
계산 조합 및 순열의 조합을 효율적
으로 파이썬에서 오일러 문제를 프로젝트하십시오 (문제 53)
파이썬의 수학 라이브러리에 내장 된 것이 nCr (n Choose r) 함수인지 확인하고 싶습니다.

나는 이것이 프로그래밍 될 수 있다는 것을 이해하지만, 그것이 전에 내장되어 있는지 확인하려고 생각했다.
다음 프로그램 nCr은 계승 등을 계산하는 것과 비교하여 효율적인 방식으로 계산합니다.
import operator as op
from functools import reduce
def ncr(n, r):
r = min(r, n-r)
numer = reduce(op.mul, range(n, n-r, -1), 1)
denom = reduce(op.mul, range(1, r+1), 1)
return numer / denom
반복을 원하십니까? itertools.combinations . 일반적인 사용법 :
>>> import itertools
>>> itertools.combinations('abcd',2)
<itertools.combinations object at 0x01348F30>
>>> list(itertools.combinations('abcd',2))
[('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')]
>>> [''.join(x) for x in itertools.combinations('abcd',2)]
['ab', 'ac', 'ad', 'bc', 'bd', 'cd']
수식을 계산해야하는 경우 math.factorial을 사용 하십시오 .
import math
def nCr(n,r):
f = math.factorial
return f(n) / f(r) / f(n-r)
if __name__ == '__main__':
print nCr(4,2)
Python 3에서는 오버플 //로 /를 피하기 위해 정수 나누기를 대신 사용하십시오 .
return f(n) // f(r) // f(n-r)
산출
6
참고 URL : https://stackoverflow.com/questions/4941753/is-there-a-math-ncr-function-in-python
반응형
'IT박스' 카테고리의 다른 글
| 목록의 제품 반품 (0) | 2020.06.15 |
|---|---|
| 바인딩 변환기 (0) | 2020.06.15 |
| SQL Server에서 선행 0을 트리밍하는 더 나은 기술은 무엇입니까? (0) | 2020.06.15 |
| 테이블에 고정 된 잠금을 확인하는 방법 (0) | 2020.06.15 |
| matplotlib에 플롯이 완료되었음을 어떻게 알 수 있습니까? (0) | 2020.06.15 |