로또복권얘기가 한창이다. 이번에 1등은 100억이 넘을꺼라나... 복권소비율이 급증하고, 복권공화국이 된다고 하고, 대박이란 흥부전에서 처음 소개된 용어라느니, 이래저래 대박얘기들이다. 되면좋겠지. 그러나 당첨되도 문제다. 그사람의 인생에 있어 긍정적일지 부정적일지를 논하자면, 당근 부정적인측면이 부각되게 되어있다.

함 재미삼아 사봐야지..; 45개의 숫자중 6개를 고르는건 중복없는 Combination문제이다. 계산해보면,

$$ {45 \choose 6} = \frac{45!}{6! \times 39!} = 8145060 $$

보통 사람들은 이 6가지 숫자를 고르려고, 주민번호니 생일이니 등등의 숫자를 뽑는다. 내 생각엔 45개의 숫자들에 공평하게 가중치를 주는 방법은 오로지 RandomNumber를 이용하는것이 그나마 당첨Probability를 높이지 않을까 생각됨. 왜냐, 난수표도 있지않은가. ExperimentalDesign시 가장 외부영향없는 샘플링을 위해서 보통 난수표를 쓰는것이다. 그래서 생각한것이 Python의 random.shuffle을 써서, 앞자리6개씩 5번뽑아 만원어치사면 어떨까.. (재미삼아 :) ) See Lotto.py

생각난김에, 만원어치 만들어보자. seed는 당근 내가좋아하는 숫자인 27

   1 [[9, 42, 12, 37, 29, 5],
   2  [20, 12, 25, 17, 15, 26],
   3  [42, 38, 35, 6, 19, 23],
   4  [29, 44, 34, 17, 28, 43],
   5  [32, 44, 12, 11, 13, 34]]

이거 당첨되면.. 으흐... --yong27, 2003-01-29

  • Lotto.py돌려보면 알겠지만, 어휴, 2개이상 맞은게 없다. 숫자하나맞은것도 달랑 두개뿐. 진짜 맞추기 어렵겠고만


Lotto.py써서 만든 번호로 만원어치구입. 비록 맞을Probability 매우 낮지만 혹시아나..흐흐...

   1 [[8, 13, 20, 26, 29, 37],
   2  [5, 16, 18, 24, 28, 35],
   3  [11, 14, 20, 36, 37, 43],
   4  [14, 20, 26, 38, 40, 43],
   5  [1, 7, 8, 12, 24, 35]]

RandomNumber생성방법을 seed로 날짜 '20030208'(추첨일)로 하고, shuffle메쏘드로 섞어서 앞엣것 6개를 취하는 방법을 썼다. 근데, 좀더 현실을 잘 모델링하려면, shuffle한다음 choice해야할것같은 느낌이 들어서 새로 자식클래스를 만들어서 숫자를 만들어도 봤는데, 이긍... 이번호도 사야하나...-_-; 만일 이번호가되면 어쩌지... 말도안되는 고민중...

Lotto.py따위를 쓰느냐고 묻는다면, 난 Python이 좋아서요~ 라고 대답할꺼다. 되면 Python때문이다.

  • 헉 형도 만들었군요 --; --destine

    • 헉 너도? 후... 첨엔 재미로 만들었는데, 재미로 만든 번호가 만일 당첨되면 얼마나 아까울까하는 생각에 구매... 이런경우도 있슴..


점심시간, 회사동료와 로또복권얘기를 좀 했다. 1등의 평균수령액 50억정도. 사실 그정도로 인생역전은 힘들꺼라는... 잠시간의 생활의 풍족정도는 모를까, 역전은 힘들다. 그 역전은 철저한 자기자신의 수련속에서나 가능할듯.

$$ {45 \choose 6} = \frac{45!}{6! \times 39!} = 8145060 $$

이란 로또의 확률은 정말 얼마나 일어나기 힘든 Probability일까, 주사위를 가지고 함 생각해봤다. 주사위를 두번 던졌을 때, 둘다 6이 나올확률 은 1/6*6 즉, n번던졌을때 n번모두 6이나올확률은 1/6n, 따라서 8백만분의 1이란 확률은

$$ \log_{6}{8145060} = 8.881171 $$

즉, 주사위 아홉번 던졌는데, 아홉번 모두 6이 나올확률이랑 비슷하단 얘기... 거의 일어나기 힘들지.

--yong27, 2003-10-20

Lotto (last edited 2011-11-23 14:00:13 by 211)

web biohackers.net