초간단! 엑셀로 로또 번호 자동생성기 만들기 순열과 랜덤 함수 이해하기

2020. 11. 19. 10:12인공지능,프로그래밍

반응형

로또는 1에서 45까지의 숫자 중에서 무작위로 6개를 뽑아 만든 숫자가 내가 선택한 번호와 맞으면 당첨되는 복권입니다. 

 

얼마전에 예능프로그램 1박 2일에서 1등 당첨자와 인터뷰를 하는 장면이 나왔는데요,

 

그만큼 1등이 되기도 어렵고 그 사람을 만나는 것도 신기한 일입니다. 

 

그럼 실제 당첨 확률은 얼마나 될까요?

 

이를 알기 위해서는 먼저 순열을 알아야 하는데요,

 

순열이란 숫자의 나열된 세트를 말합니다. 

 

하지만 순열은 1,2와 2,1이 다른 것으로 인식하기 때문에 

 

로또와 같이 단지 뽑을 확률을 구하려면 먼저 그 경우의 수를 알아야 하는데요,

 

예를 들어 4개 중에서 2개를 뽑을 경우의 수는 그 순열에서 2! 만큼 나누어 주어야 합니다. 

 

(2!는 2x1 이란 의미인데요, 같은 원리로 5!는 5x4x3x2x1 입니다. )

 

공식으로 하면 4!/(4-2)! 에 2!를 나눈 수가 됩니다. 

 

그럼 5개 중에서 2개를 뽑을 경우의 수는 5!/(5-2)! 를 2!로 나눈 수가 됩니다. 

 

풀어보면 5x4x3x2x1/(5-2)! = 5x4x3x2x1/(3x2x1) = 20에서 2!로 나눈 수 인 10이 됩니다. 

 

그럼 이 경우 하나의 경우가 나오는 확률은 어떻게 될까요?

 

모든 경우 중에서 하나이므로 1/10 즉, 10%가 됩니다. 

 

이제 로또에 적용해 보겠습니다. 

 

로또의 숫자는 총 45개입니다. 

 

이중에서 6개를 뽑아 나열한 순열은 45!/(45-6)! 이며, 

 

순열이 아닌 숫자세트를 뽑는 경우는 6!를 추가로 나눈 수가 됩니다. 

 

이제 계산해 보면 (45x44x43x42x41x40x39x38x37x ~ 2x1)/(39x38x37x ~ 2x1) 이 되는데요,

 

여기에서 물결 즉 '~'로 표현한 부분은 길어서 생략한 것으로 이해해 주시면 되겠습니다. 

 

39 부터 같은 수이므로 나누면 상단에 45~40까지의 곱이 남습니다. 

 

이제 이 숫를 6! 즉 6x5x4x3x2x1 = 480으로 나누면 모든 경우의 수가 나오겠네요.

 

45x44x~x41x40을 계산하면 계산기를 누르는 것도 쉽지 않겠네요.

 

이럴때 편한 것이 엑셀입니다. 

 

엑셀에 40과 41을 입력하고 두 칸을 선택한 다음 구석을 잡아서 늘리면 45까지 자동으로 채워집니다. 

 

먼저 두개의 숫자를 넣고 선택합니다. 
마우스로 한쪽 끝을 잡고 오른쪽으로 당기면 45까지 자동으로 채워집니다. 

 

 

이 상태에서 오른쪽 상단의 자동합계 부분의 오른쪽 화살표를 선택하면 아래처럼 메뉴가 나옵니다. 

 

 

여기에 곱셈이 없으므로 기타 함수를 선택하면 다음과 같은 화면이 나옵니다. 

 

 

위 화면에서 첫 번째 함수가 전체를 곱하는 함수네요.

 

혹시 다른 함수를 찾으려면 검색 기능을 사용하면 좋습니다. 

 

곱하기 함수를 선택하면 아래와 같은 화면이 나옵니다. 

 

 

 

위 화면은 범위를 지정하는 것인데요,

 

하나 주의할 점은 범위가 잘 지정되었는지 확인하는 것과

 

계산된 숫자가 표시되어야 할 셀을 하나 더 선택해 주는 것입니다. 

 

셀을 더 선택하지 않고 진행하면  마지막 숫자가 지워지는데요,

 

그러면 계산 값도 틀리게 됩니다. 

 

이제 계산하면 아래처럼 결과가 나옵니다. 

 

 

 

5,864,443,200 이라는 어마어마한 수가 나왔네요.

 

이 값을 6! 즉 480으로 나누면 경우의 수가 나오게 됩니다. 

 

이 때도 엑셀로 하면 편합니다. 아래처럼 말이죠.

 

결과는 12,217,590입니다. 

 

그럼 확률은 1/12,217,590 이네요.

 

굳이 숫자로 표현하면 0.000008% 입니다. 

 

이정도면 제로라고 해도 될 정도네요.

 

 

 

 

확률을 높이려면 여러장을 사면 되는데요, 

 

10장을 사면 확률은 0.00008%가 되고,

 

100장으로 사면 0.0008%가 됩니다. 

 

1000장은 0.008%, 1만장은 0.08%, 10만장은 0.8%가 되네요.

 

그래도 1%가 안되는 확률입니다. 10만장을 사도 안될 확률이 99%가 넘네요.

 

이정도면 왜 로또라고 하는지 알 수 있을 것 같습니다. 

 


 

 

그럼 드디어 이번 글의 주제인 엑셀로 로또번호를 추출하는 방법을 알아보겠습니다. 

 

사실 위 글에 비하면 아주 간단합니다. 

 

바로 랜덤 함수를 사용하는 것인데요, 

 

필요한 함수는 RANDBETWEEN(a,b) 함수입니다. 

 

엑셀 빈칸에 아래와 같이 적으면 됩니다. 

 

=RANDBETWEEN(1,45)

 

 

그러면 1~45 사이의 숫자 중의 하나를 랜덤으로 뽑아 줍니다. 

 

그냥 하면 심심하니까 아래와 같은 표를 만들고 그 안을 위 함수로 채워줍니다. 

 

한 번 해 볼까요?

 

 

위와 같이 결과가 나왔습니다.

 

랜덤이기 때문에 같은 숫자가 나오는 경우도 있지만 (세번째 조합의 5번째, 5번째 숫자가 같습니다. )

 

그래도 아닌 경우가 더 많습니다. 

 

지금까지만 해도 머리가 아프신 분은 위 조합에서 중복이 없는 경우를 선택하시면 되겠습니다. 

 

하지만 굳이 중복을 피하려는 분들은 계속 글을 읽어 주시기 바랍니다. ^^

 


 

중복을 피하는 방법이 있습니다. 

 

다음 계산할 때 랜덤 숫자에서 이전에 나온 숫자를 빼는 것인데요,

 

하지만 이 방법은 프로그램을 사용해야 합니다. 

 

그러면 엑셀에서 중복을 피하는 방법은 무엇이 있을까요?

 

엑셀에서 중복을 피하기 위해서는 여러가지 방법이 있는데요. 

 

그중에 가장 손쉬운 방법이 RANK 함수를 이용하는 것입니다. 

 

먼저 아래와 같은 표를 만들어 줍니다. 

 

 

먼저, 난수칸을 총 45개를 만들어 주면 되는데요, 

 

위 이미지는 너무 길어서 잘랐습니다. 

 

난수칸에는 '=RAND()' 라고 입력해 줍니다. 

 

순위칸에는 RANK 함수를 상용하는데요, 

 

아래 그림처럼 괄호 안에는 왼쪽 난수 칸을 선택하고, 

 

쉼표를 찍은 후에 범위를 지정해 줍니다. 

 

그리고 쉼표를 찍고 1이나 0을 적습니다.

(오름차순이냐 내림차순이냐를 정하는 것이므로 모두 가능합니다.)

 

단, 주의할 점은 범위를 적을 때 달러 표시($) 를 아래 그림처럼 적어 주어야 하는데요, 

 

그래야 첫 칸을 복사해서 붙여 넣을 때 범위가 밀리지 않고 동일하게 적용됩니다. 

 

수식을 변경할 때마다 난수는 변경되고 로또번호도 바뀌는데요, 

 

그냥 'F9' 키를 눌러도 로또번호가 바뀌게 됩니다. 

 

이렇게 중복이 없이 로또번호를 얻는 방법을 알아보았습니다. 

 

 

재미로 해본 로또 번호 생성기였는데요, 

 

비교적 간단해 보이는 번호 생성도 나름 고려할 점들이 많습니다. 

 

그래도 한 번 해 보시면 엑셀 실력에 도움이 되리라 생각합니다. 

 

이상 글을 마칩니다. 

반응형