본문 바로가기
programming language/MATLAB

MATLAB Combination 구하기 nchoosek

by __observer__ 2014. 6. 19.
반응형

아래 포스팅에서 국내 로또와 미국 로또의 경우의 수를 구한 파일을 올린 적이 있는데요~


2014/05/16 - [로또] - 미국 로또 메가 밀리언 모든 경우의 수


2011/03/02 - [로또] - 로또 복권의 모든 경우의 수

 

우리 나라 로또의 경우의 수는 45C6 (45 Combination 6)이죠~

 

Combination에 대한 정의는 아래 위키피디아에 설명이 자세히 나와 있습니다.

 

http://ko.wikipedia.org/wiki/%EC%A1%B0%ED%95%A9

 

MATLAB 에서는 이런 조합의 경우의 수를 매우 쉽게 구할 수 있습니다.

 

이런 조합의 경우의 수를 구하는 함수는 nchoosek() 라는 함수 입니다.

 

간단하게 로또로 예를 들어보면~ 45 개의 숫자중에 6개를 뽑는 경우의 수니까~

 

MATLAB command window 에서 아래와 같이 표현 할 수 있습니다. 로또 복권의 모든 경우의 수인 8145060 가 나오는 것을 확인 할 수 있죠~

 

>> nchoosek(45,6)

ans =

8145060

 

다음으로 조합을 다 구하고 싶다면 첫번재 인자에 벡터 값을 넣어 주면 됩니다.

 

1~5 중에서 2 개를 뽑는 경우의 수를 모두다 구해 볼까요~

 

>> nchoosek(1:5, 2) 

ans =

1 2

1 3

1 4

1 5

2 3

2 4

2 5

3 4

3 5

4 5

 

위 예와 같이 첫 번재 인자로 벡터를 넣어 주니까~ 조합의 경우의 수가 아니라 조합을 다 구해 주는 것을 확인 할 수 있습니다.

 

너무 간단하죠~ MATLAB 이 설치 안되신 분들은 OCTAVE 에서도 동일하게 nchoosek() 함수를 사용할 수 있습니다.

반응형

댓글