본문 바로가기
Programming/Matlab, Octave, Scilab

[Matlab/Octave] Programing for estimated number of lotto combinations

by 도파공 2010. 5. 1.
728x90
반응형
% ============================================================================

% Octave 또는 Matlab에서 사용하면 된다. 다른 언어의 경우 수정이 필요하다.

% 프로그래밍에 관심이 있으신 분만 활용 바란다.

% ============================================================================
% octave : if - endif, while - endwhile, for-endfor ...



% 예상 수, 예상 번호만 남기고 나머지 삭제하면 된다.
data=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45];


[m n]=size(data);

tmp=1;
genN=10; % 만들어 낼 조합수

lotto=zeros(genN,6);


count=0;
while tmp~=0
    address=randi(n,1,6);
    address=sort(address);
   
    if address(1)~=address(2) && address(1)~=address(3) && address(1)~=address(4) && address(1)~=address(5) && address(1)~=address(6)
        if address(2)~=address(3) && address(2)~=address(4) && address(2)~=address(5) && address(2)~=address(6)
            if address(3)~=address(4) && address(3)~=address(5) && address(3)~=address(6)
                if address(4)~=address(5) && address(4)~=address(6) && address(5)~=address(6)
                    count=count+1;
                    lotto(count,1)=data(address(1));
                    lotto(count,2)=data(address(2));
                    lotto(count,3)=data(address(3));
                    lotto(count,4)=data(address(4));
                    lotto(count,5)=data(address(5));
                    lotto(count,6)=data(address(6));

                    if count>genN
                        tmp=0;
                    end
                end
            end
        end
    end
end

 

Matlab이나 Octave에서 lotto를 타이핑하고 엔터를 치면 결과를 얻을 수 있다.

728x90
반응형

댓글