- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
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


    목록
    번호 제목 이름 날짜 조회 추천
    공지 티타임 게시판 이용 규정 2 Toby 15/06/19 31708 7
    15061 스포츠[MLB] 2024 AL,NL MVP 수상자.jpg 1 + 김치찌개 24/11/22 73 1
    15060 스포츠[MLB] 2024 AL,NL 사이영 수상자.jpg 김치찌개 24/11/22 76 1
    15059 음악[팝송] 션 멘데스 새 앨범 "Shawn" 김치찌개 24/11/22 70 0
    15058 방송/연예예능적으로 2025년 한국프로야구 순위 및 상황 예언해보기 11 문샤넬남편(허윤진남편) 24/11/21 424 0
    15057 일상/생각우리는 어쩌다 이렇게 됐을까 3 SKT Faker 24/11/21 586 1
    15056 오프모임23일 토요일 14시 잠실 보드게임, 한잔 모임 오실 분? 4 트린 24/11/20 328 0
    15055 방송/연예페미니스트 vs 변호사 유튜브 토론 - 동덕여대 시위 관련 25 + 알료사 24/11/20 3168 32
    15054 생활체육[홍.스.골] 10,11월 대회 상품공지 켈로그김 24/11/19 252 1
    15053 여행여자친구와 부산여행 계획중인데 어디를 가면 좋을까요?! 29 포도송이 24/11/19 687 0
    15052 일상/생각오늘도 새벽 운동 다녀왔습니다. 5 큐리스 24/11/19 456 9
    15051 일상/생각의식의 고백: 인류를 통한 확장의 기록 11 알료사 24/11/19 495 6
    15050 게임[1부 : 황제를 도발하다] 님 임요환 긁어봄?? ㅋㅋ 6 Groot 24/11/18 454 0
    15049 꿀팁/강좌한달 1만원으로 시작하는 전화영어, 다영이 영어회화&커뮤니티 19 김비버 24/11/18 930 10
    15048 의료/건강고혈압 치료제가 발기부전을 치료제가 된 계기 19 허락해주세요 24/11/18 714 1
    15047 일상/생각탐라에 쓰려니 길다고 쫓겨난 이야기 4 밀크티 24/11/16 898 0
    15046 정치이재명 1심 판결 - 법원에서 배포한 설명자료 (11page) 33 매뉴물있뉴 24/11/15 1795 1
    15045 일상/생각'우크라' 표기에 대한 생각. 32 arch 24/11/15 1008 5
    15044 일상/생각부여성 사람들은 만나면 인사를 합니다. 6 nothing 24/11/14 903 20
    15043 일상/생각수다를 떨자 2 골든햄스 24/11/13 459 10
    15042 역사역사적으로 사용됐던 금화 11종의 현재 가치 추산 2 허락해주세요 24/11/13 559 7
    15041 영화미국이 말아먹지만 멋있는 영화 vs 말아먹으면서 멋도 없는 영화 8 열한시육분 24/11/13 689 3
    15040 오프모임11/27(수) 성북 벙개 33 dolmusa 24/11/13 752 3
    15039 요리/음식칵테일 덕후 사이트 홍보합니다~ 2탄 8 Iowa 24/11/12 411 7
    15022 기타[긴급이벤트] 티타임 따봉 대작전 (종료) 19 dolmusa 24/11/05 1079 31
    목록

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

    댓글