- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date 17/02/08 10:35:42
Name   April_fool
Subject   로또 번호와 정규분포

어제의 일입니다. 부장님이 잡담하시는 것을 듣고 있는데, 문득 그 중에 “로또에서 각 번호들의 총합이 백 얼마인 것이 가장 당첨 확률이 높더라”는 내용이 있더군요. 당연한 게 아닌가? 싶기도 했지만, 그래도 왠지 확인을 해보고 싶더라고요.

그래서 다음과 같은 간단한 프로그램을 짜서 돌려 보았습니다.

  1. import random
  2.  
  3. def plusAll(a):
  4.     # 리스트 속에 있는 모든 숫자를 더해 반환한다.
  5.     result = 0
  6.     while len(a) != 0:
  7.         result += a.pop()
  8.     return result
  9.  
  10. def counter(a):
  11.     # 리스트 속의 원소의 개수를 세어 튜플로 반환한다.
  12.     result = {}
  13.     for i in a:
  14.         if i in result:
  15.             result[i] = result[i] + 1
  16.         else:
  17.             result[i] = 1
  18.     return result
  19.  
  20. = []
  21. for i in range(1000000+1):
  22.     b = random.sample(range(1, 45+1), 6)
  23.     a.append(plusAll(b))
  24. = counter(a)
  25. = sorted(b.items())
  26.  
  27. file1 = open("a.tsv", "w")
  28. for (k, v) in c:
  29.     line = str(k) + "\t" + str(v) + "\n"
  30.     file1.write(line)
  31. file1.close()

이 파이썬 프로그램은 랜덤으로 로또 번호를 백만 개 생성하여, 그 숫자들의 합이 몇 개나 나오는지 세어서 특정 파일에다가 그 결과를 기록합니다. 이 결과물은 Microsoft Excel에서 열어볼 수가 있지요. 그리고, 그 결과물을 엑셀에서 분산형 차트로 그려보면 다음과 같습니다.

 …어디서 많이 본 듯한 모양의 그래프가 나왔습니다. 제가 듣기로, 이런 모양을 가리켜 [정규분포]라고 한다고 하더군요.

그러면, 저 그래프에서 가장 높은 값(=가장 많이 나온 값)은 어디일까요? 생각해보면, 로또의 각 숫자를 더한 값 중 가장 작은 수는 1+2+3+4+5+6=21이고, 가장 큰 수는 45+44+43+42+41+40=255입니다. (21+255)÷2=138이지요. 실제로 생성된 파일의 데이터를 살펴보아도, 138 부근의 값이 가장 많이 나온 것을 알 수 있습니다. 다시 말해서, 이론적으로 로또의 각 숫자의 합이 138과 유사한 경우가 상대적으로 당첨 확률이 높다는 결론이 나옵니다. 이걸 응용하면 옛날에 타임라인에 올렸던 로또번호 생성 프로그램을 개량할 수 있을 것 같아요.

이상, 오늘의 월도짓이었습니다.




3


    정규분포(normal distribution)이 normal로 불리는 이유중 하나지요. 거의 모든 종류의 분포를 계속 더하면 정규분포에 수렴하게 됩니다.
    예를 들어 주사위롤도 100번 돌려서 나온수를 합하는 시뮬레이션으로 기록하면 정규분포가 되죠. (기대값 3.5)*100 중앙값이 3500이 될겁니다.
    직관적으로 쉽게 주사위 2개 던지면 7나올 확률이 제일 높죠. 그다음으로 6과 8이고 등등
    April_fool
    그러합니다.
    로또는 근데 합을 맞추는게 아니라서 합이 138이라고 맞출 확률이 올라가는건 아닙니다. 모노폴리랑은 다르죠.
    April_fool
    어 그런가요?
    …생각해보니까 그렇네요.
    네 결국 랜덤넘버로 가는게 정답입니다. 생년월일이나 기념일등은 다른 사람들이 쓸 확률이 높기때문에 이겼을때 기대보상도 떨어지니까요.
    저도 그렇고 사람이 돈이 걸리면 판단을 자기가 유리한 시점에서 멈춰버리더라고요. 유리한걸 기대해서 그런가.. ㅋㅋㅋ
    April_fool
    원래 사람은 비합리적인 존재죠 ㅋㅋㅋ
    Beer Inside
    실제 당첨번호과 비교하면 재미는 있겠지만 의미는 없겠죠......
    April_fool
    재미로 하는 거죠, 재미로.
    수성펜
    만들어줘요!
    April_fool
    나중에 시간 나면요.
    Morpheus(R)
    와 내가 여태 이걸 몰라서 당첨이 안됐네!!!
    이번 주 1등은 제껍니다
    April_fool
    그 전에 제가 당첨이 되나 안 되나 테스트를…
    어차피 판매점 기계가 뽑아주는 번호의 합도 동일한 정규분포를 그릴텐데요... 진지는 잠시 후 연포탕 먹을 생각입니다.
    April_fool
    그렇죠. 어차피 의사 난수일 테고…
    우주최강킹왕짱
    음... 합이 138에 가까울수록 당첨 확률이 높은 게 아니라 합이 138에 가까운 수의 조합이 훨씬 많아서 그런 거 아닌가요?
    아 본문이 그 의미인가...
    April_fool
    본문의 의미는 랜덤으로 로또번호를 뽑아봤더니 합이 138과 가까운 숫자가 가장 많이 나오더라…는 것입니다.
    베누진A
    로또를 100퍼센트 당첨할 수 있는 방법이 있습니다. 모든 가능한 당첨번호의 경우의 수만큼 로또를 사는 겁니다.
    April_fool
    8145060×1000원=8,145,060,000원이니까 한 81억 5000만원만 쏟아부으면 되네요! 야 신난다!
    베누진A
    로또 총 당첨금액이 얼마죠?
    베누진A
    100퍼센트 당첨되면서 동시에 100퍼센트 망하는 길이로군요(..)
    말씀하신 전략은 몇번 연속으로 이월되서 당첨금액이 엄청 쌓이면 사용가능한 전략이죠. 단, 한국로또는 이월회수가 제한되어있어서 이 전략이 막혀있습니다.
    참고로 모든 경우를 구입하는 경우는 구입액수도 엄청나서 당첨금액에도 영향을 줍니다...
    베누진A
    아쉽군여(?)
    그러니까 해외로또를 유심히 살펴보다가 당첨금이 몇번 이월되었다고하면 작전을 준비하는게 옳습니다.
    베누진A
    일단 빚을 내서..(음?)
    레지엔
    잠시 잊고 살았는데 그래프를 보는 순간 갑자기 분노와 짜증과 허탈감이... 통계 나빠요...
    April_fool
    트라우마 스위치였나요…
    캡틴아메리카
    그냥 아주 단순하게 생각해서 1부터 45까지의 평균인 23의 6배가 138이죠 ㅎㅎ
    April_fool
    오, 그렇게도 나오는군요.
    NightBAya
    http://www.sajuforum.com/01forum/lotto/lotto_tong.php

    구간으로 나타나있기는 하지만 실제 1회부터 지난주 당첨분인 740회까지의 합계 자료는 이렇다네요.
    NightBAya
    구간이 아닌 합계별로 나타내면 이렇게 되네요.
    하이_
    파이썬 코딩으로 따라해봤는데, 바탕화면에 a.tsv 파일이 생기긴하는데요..
    a.tsv 파일을 어떻게 엑셀로 열죠..? 코딩까진 문제가없는데 엑셀 분산형 차트로 그리는 과정에서 막혀서요./..
    목록
    번호 제목 이름 날짜 조회 추천
    4805 기타로또 번호와 정규분포 33 April_fool 17/02/08 13864 3
    5380 기타제가 그동안 했던 야구게임들.jpg 11 김치찌개 17/04/05 13861 0
    1285 과학/기술우주팽창, 건포도빵, 풍선 12 눈부심 15/10/18 13821 0
    259 기타정도전 27화 천하대장군 15/06/08 13781 0
    514 기타보는 웹툰 29 헬리제의우울 15/07/05 13762 0
    671 역사은나라 주왕은 정말 폭군이었는가 8 개평3냥 15/07/28 13741 0
    1191 역사천연두 바이러스 6 모모스 15/10/07 13730 5
    1348 음악우울할 때 듣는 음악 List(스크롤 압박 有) 26 *alchemist* 15/10/26 13715 0
    106 기타[불판] 가입 인사 불판입니다. 88 Toby 15/05/31 13714 0
    4216 의료/건강청와대에서 구입한 리도카인은 뭐하는 물건인고? 17 모모스 16/11/23 13713 12
    1668 방송/연예그것이 알고 싶다 레전드 수지킴 편 3 삼공파일 15/11/30 13667 0
    2711 역사유게에 올라온 유재흥 글에 대해 63 눈시 16/04/29 13659 36
    255 기타책장에서 책을 치우자! (북스캐너 + 스캔이북 써먹기) 20 damianhwang 15/06/08 13633 0
    4736 게임스플렌더 앱에 온라인 대전모드가 추가되었습니다. 2 Toby 17/02/01 13613 0
    6982 스포츠[불판] 정현 vs 조코비치의 16강 경기가 시작합니다. 248 맥주만땅 18/01/22 13602 4
    3721 의료/건강엔돌핀 vs 모르핀 10 모모스 16/09/17 13538 2
    1441 의료/건강[약쟁이] 이히히히히히… 약빨 쥑인다… 이히히히히히… 9 April_fool 15/11/03 13499 0
    5850 일상/생각몇가지 기묘한 불륜에 관한 사례들 15 사악군 17/06/28 13498 1
    1277 일상/생각이민을 생각한 계기, 과정 그리고 결과 26 damianhwang 15/10/17 13489 6
    9151 영화용산 CGV 가는 길(지름길) 8 Cascade 19/05/04 13460 4
    1616 꿀팁/강좌해커 스크립트 6 Toby 15/11/23 13429 5
    1524 음악체르니 몇 번까지 치셨나요?? 24 표절작곡가 15/11/10 13420 1
    3989 게임문명 6 리뷰 11 저퀴 16/10/23 13411 3
    248 기타정도전 25화 4 천하대장군 15/06/07 13403 0
    1742 영화2015년 최고의 영화, <시카리오: 암살자의 도시> 2 한아 15/12/09 13377 2
    목록

    + : 최근 2시간내에 달린 댓글
    + : 최근 4시간내에 달린 댓글

    댓글