Main Content

nchoosek

이항 계수 또는 모든 조합

설명

예제

b = nchoosek(n,k)는 다음과 같이 정의되는 이항 계수를 반환합니다.

Cnk=(nk)=n!(nk)!k!.

이것은 n개 항목 중에서 한 번에 k개를 선택하는 조합의 수입니다. nk는 음이 아닌 정수여야 합니다.

예제

C = nchoosek(v,k)는 벡터 v의 요소 중에서 한 번에 k개를 선택할 때 가능한 모든 조합이 포함된 행렬을 반환합니다. 행렬 C에는 k개 열과 m!/((m–k)! k!)개 행이 있습니다. 여기서 m은 length(v)입니다.

예제

모두 축소

b = nchoosek(5,4)
b = 5
v = 2:2:10;
C = nchoosek(v,4)
C = 5×4

     2     4     6     8
     2     4     6    10
     2     4     8    10
     2     6     8    10
     4     6     8    10

v = uint16([10 20 30]);
C = nchoosek(v,uint16(2))
C = 3x2 uint16 matrix

   10   20
   10   30
   20   30

입력 인수

모두 축소

선택할 수 있는 항목 수로, 음이 아닌 정수 스칼라로 지정됩니다. n은 모든 숫자형일 수 있으나 실수여야 합니다.

예: 10

예: int16(10)

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

선택한 항목 수로, 음이 아닌 정수 스칼라로 지정됩니다. k는 모든 숫자형일 수 있으나 실수여야 합니다. nchoosek(n,k)에서 nk의 유형은 동일하거나 최소한 둘 중 하나의 유형이 double형이어야 합니다.

nchoosek(v,k)에서 서로 다른 유형의 입력값을 조합하는 데에는 제한 사항이 없습니다.

예: 3

예: int16(3)

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

모든 선택 항목의 집합으로, 벡터로 지정됩니다.

예: [1 2 3 4 5]

예: [1+1i 2+1i 3+1i 4+1i]

예: int16([1 2 3 4 5])

예: [true false true false]

예: ['abcd']

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
복소수 지원 여부:

출력 인수

모두 축소

이항 계수로, 음이 아닌 스칼라 값으로 반환됩니다. bnk와 같은 유형입니다. nk의 데이터형이 다르면 b는 비double형으로 반환됩니다.

v의 모든 조합으로, v와 동일한 유형의 행렬로 반환됩니다. 행렬 C에는 k개 열과 n!/((n–k)! k!)개 행이 있습니다. 여기서 n은 length(v)입니다.

C의 각 행에는 v에서 선택한 k개 항목의 조합이 들어 있습니다. C의 각 행에 있는 요소는 v에 표시되는 순서와 동일하게 나열됩니다.

k > numel(v)이면 C는 빈 행렬이 됩니다.

제한 사항

  • b = nchoosek(n,k)가 너무 크면 nchoosek에서 결과가 정확하지 않을 수 있다는 경고를 표시합니다. 이때의 결과는 배정밀도 입력값의 경우 15자리까지만 정확하고 단정밀도 입력값의 경우 8자리까지만 정확합니다.

  • C = nchoosek(v,k)는 사실상 length(v)가 약 15 미만일 때에만 실용적입니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

|