- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
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
    와 내가 여태 이걸 몰라서 당첨이 안됐네!!!
    이번 주 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 파일을 어떻게 엑셀로 열죠..? 코딩까진 문제가없는데 엑셀 분산형 차트로 그리는 과정에서 막혀서요./..
    목록
    번호 제목 이름 날짜 조회 추천
    4497 일상/생각잡담 몇 가지. 10 April_fool 16/12/31 4296 0
    4572 IT/컴퓨터[소개] Swift Calcs - 최고의 온라인 계산기 8 April_fool 17/01/08 8972 10
    4600 기타[퀴즈] O링의 크기를 알아맞히는 법 42 April_fool 17/01/11 11748 0
    4705 기타2012년 기준 각국의 무역관계 네트워크 분석 - FTA 체결과 같은 무역장벽 철폐를 중심으로 3 April_fool 17/01/27 7656 1
    4724 기타나무위키의 “젠더 이퀄리즘” 날조 사건 29 April_fool 17/01/30 8401 2
    4768 음악KOTOKO - 雪華の神話 1 April_fool 17/02/04 3761 0
    4805 기타로또 번호와 정규분포 33 April_fool 17/02/08 13929 3
    4822 IT/컴퓨터간단한 로또 번호 생성 프로그램 13 April_fool 17/02/09 8448 3
    4831 IT/컴퓨터로또 번호 생성 프로그램과 정지 문제 11 April_fool 17/02/10 6027 1
    4842 음악N.EX.T - Lazenca, Save Us 8 April_fool 17/02/11 5433 2
    5554 정치각 후보들의 공약 중 마음에 드는 것을 뽑아 봅시다. 1 April_fool 17/05/01 4847 0
    6037 IT/컴퓨터전일제 비전공자 코딩교육 업체에 대한 간단한 정리. 21 April_fool 17/08/01 15179 0
    6212 과학/기술FDA, 특정 인공심장박동기의 해킹 위험성 제기 19 April_fool 17/09/02 6673 0
    6231 IT/컴퓨터[긴급] 혹시 알툴바나 스윙 브라우저의 자동 로그인 기능 “알패스”를 쓰시는 분이 계신가요? 24 April_fool 17/09/05 6037 0
    7360 의료/건강[인용] 인간은 언제 죽는가 20 April_fool 18/04/10 6849 3
    8497 사회한국의 미약한 공익신고자 보호 - 대리수술 편 3 April_fool 18/11/09 5840 1
    8572 꿀팁/강좌지금 쓰는 안경에만 돈을 75만원씩 퍼부은 사람이 알려주는 안경 렌즈 선택의 거의 모든 것 19 April_fool 18/11/28 56996 42
    8703 의료/건강저의 정신과 병력에 대한 고백 13 April_fool 18/12/29 7747 44
    8761 IT/컴퓨터문재인 정부의 ActiveX 제거 공약이 어느 정도 실현될 것 같습니다. 23 April_fool 19/01/14 7370 1
    5915 오프모임내일 저녁 고기벙개 52 aqua 17/07/07 6479 2
    6268 일상/생각친구의 결혼 6 aqua 17/09/13 4296 10
    6327 여행안나푸르나 기슭에 가본 이야기 (주의-사진많음) 6 aqua 17/09/23 4862 18
    6370 IT/컴퓨터모델러의 히포크라테스 선서 4 aqua 17/10/05 4714 7
    6443 일상/생각울진 않을거 같습니다. 14 aqua 17/10/21 5247 51
    6751 도서/문학선귤당 선비님 3 aqua 17/12/10 4524 7
    목록

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

    댓글