- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
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 토비 15/06/19 36109 1
    16103 게임역대급 오픈월드 붉은 사막 개발기간은 사실 짧은 편이었습니다. 2 + 닭장군 26/03/27 209 2
    16102 IT/컴퓨터저만의 지식/업무/일정관리 시스템 정착기 3 (개인화) 6 스톤위키 26/03/27 358 1
    16101 IT/컴퓨터저만의 지식/업무/일정관리 시스템 정착기 2 (AI, AI, AI) 스톤위키 26/03/27 218 0
    16100 IT/컴퓨터저만의 지식/업무/일정관리 시스템 정착기 1 (GTD와 옵시디언) 3 스톤위키 26/03/27 390 0
    16099 일상/생각철원 GOP, 푸켓 쓰나미.... 제가 살아남은 선택들 게임으로 만들어봤습니다 1 큐리스 26/03/26 263 3
    16098 오프모임[등벙]용마산~아차산 코스를 돌까 합니다(3/28 토욜 아침즈음) 21 26/03/26 399 7
    16097 정치50조 원의 청사진과 2년간 멈춰있던 특별법 13 + 큐리오 26/03/26 564 0
    16096 일상/생각제3화: 2002년 겨울, 아무도 먼저 가려 하지 않았다 3 큐리스 26/03/26 228 4
    16095 일상/생각제2화: 1998년 가을, 그냥 편할 것 같아서 4 큐리스 26/03/24 309 4
    16093 일상/생각나의 윤슬을 찾아서 16 골든햄스 26/03/24 678 11
    16092 일상/생각제1화: 금요일 오후 5시의 공습경보 11 큐리스 26/03/24 562 9
    16091 음악[팝송] 미카 새 앨범 "Hyperlove" 김치찌개 26/03/24 215 2
    16090 방송/연예방탄소년단 광화문 콘서트, 어떻게 찍어야 할 것인가? (복기) 8 Cascade 26/03/23 796 22
    16089 일상/생각자전적 소설을 써보려고 해요~~ 5 큐리스 26/03/23 516 2
    16088 육아/가정말주머니 봉인 해제, 둘째 7 CO11313 26/03/22 584 20
    16087 게임[LOL] 3월 22일 일요일 오늘의 일정 발그레 아이네꼬 26/03/22 236 0
    16086 게임붉은사막 짧은 소감. 갓겜 가능성은 있으나, 덜만들었다. 6 닭장군 26/03/21 764 0
    16085 게임[LOL] 3월 21일 토요일 오늘의 일정 발그레 아이네꼬 26/03/21 242 0
    16084 영화[스포O] <기차의 꿈> - 넷플릭스에 숨어있는 반짝거림 당근매니아 26/03/20 389 1
    16083 게임[LOL] 3월 20일 금요일 오늘의 일정 1 발그레 아이네꼬 26/03/20 281 0
    16082 게임[LOL] 3월 19일 목요일 오늘의 일정 1 발그레 아이네꼬 26/03/18 307 0
    16081 일상/생각ev4 구입기 32 Beemo 26/03/18 1199 15
    16080 게임[LOL] 3월 18일 수요일 오늘의 일정 5 발그레 아이네꼬 26/03/17 334 0
    16079 일상/생각가르치는 일의 신비함 1 골든햄스 26/03/17 745 7
    목록

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

    댓글