- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
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 36728 1
    16285 스포츠1라 2/3시점에 쓰는 월드컵 이야기 the hive 26/06/16 140 0
    16284 일상/생각17년차 남편은 낭만보다 안전한 방법을 택합니다. 5 큐리스 26/06/16 580 8
    16283 사회SNS와 숏폼이 해롭다면, 아이들에게 법으로 금지해야 할까 14 루루얍 26/06/16 663 8
    16282 창작리쥬브 프로토콜: 30-3. 강아지일까, 고양이일까? T.Robin 26/06/15 282 0
    16281 방송/연예2026 걸그룹 2/6 14 헬리제의우울 26/06/14 622 18
    16280 오프모임6/19일 한양도성길 같이하실분 12 살찐론도 26/06/14 526 2
    16279 역사윤석열 등의 평양 무인기 도발사건 (일반이적 등) 재판부 설명자료 3 + 과학상자 26/06/14 613 4
    16278 정치6.3 지방선거 동일득표수의 우연성 검증 10 Memex 26/06/14 860 6
    16277 정치미국 2030 대졸자의 정치성향 동향 2 열한시육분 26/06/14 654 2
    16276 창작리쥬브 프로토콜: 30-2. make soooome NOISEEEE! T.Robin 26/06/13 545 0
    16275 정치2030세대의 보수화가 아니라 2030세대의 대한민국화 32 가람 26/06/13 1459 11
    16274 창작1화. 밤 11시 11분 큐리스 26/06/12 402 0
    16273 일상/생각교육이야기가 나올때마다 드는 생각 23 JUFAFA 26/06/11 1113 2
    16272 도서/문학'소프트웨어 객체의 생애주기'의 NTR적 비극성과 순애 3 알료사 26/06/11 709 7
    16271 방송/연예올타임 멜론 걸그룹 별 누적 감상자 1위 곡들 2 Leeka 26/06/11 416 0
    16270 IT/컴퓨터드디어 나타난 클로드 미소스 Fable 17 토비 26/06/10 925 1
    16269 창작리쥬브 프로토콜: 30-1. 차갑지만 따뜻한 T.Robin 26/06/10 990 0
    16268 일상/생각네비가 없던 시절 2 큐리스 26/06/10 537 4
    16267 일상/생각캠핑장에서 있었던 일인데요 3 큐리스 26/06/10 624 1
    16266 정치정당한 분노를 폄하하려는 자 누구인가 1 meson 26/06/09 763 6
    16265 일상/생각놀이공원 패스권은 정당한가 28 당근매니아 26/06/09 1176 5
    16264 일상/생각B팀장과 정년보장 (최종) 9 Picard 26/06/09 625 4
    16263 정치요번 선거 단상. 15 세인트 26/06/09 871 27
    16262 정치연대에타의 잠실시위 취재기-변질된적 없는 잠실시위 41 고고공교 26/06/09 1486 4
    목록

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