...오늘도 출근하면서 로또를 샀는데.
글 제목과 같은 의문이 들어 계산을 해보게 됐다.
계산엔 다음과 같은 스크립트가 동원되었다:
#!/usr/bin/ruby
# lotto_estimate.rb
#
#
# created on : 2009.10.09
# last update: 2009.10.09
#
# by meinside@gmail.com
params = {
"hit" => 6, # 찍을 숫자 개수
"total" => 45, # 전체 숫자 개수
"year" => 10, # 예상할 년수
"money" => 1000, # 로또 한 개당 가격
"times" => 5, # 1회 로또에 몇 개나 사는지
}
def total_number_of_cases(total, hit)
cases = 1
total.downto(total - hit + 1).each{|n|
cases *= n
}
orders = 1
hit.downto(1).each{|n|
orders *= n
}
return cases / orders
end
if __FILE__ == $0
if ARGV.count > 0 && ARGV.include?("help")
puts "usage 1: ./lotto_estimate.rb"
puts "usage 2: ./lotto_estimate.rb hit=6 total=45 year=10 money=1000 times=5"
exit 0
end
begin
if ARGV.count > 0
ARGV.each{|arg|
splitted = arg.split("=")
if splitted.count == 2
if params.has_key? splitted[0]
params[splitted[0]] = splitted[1].to_i
end
end
}
end
year = params["year"]
money = params["money"]
hit = params["hit"]
total = params["total"]
times = params["times"]
cases = total_number_of_cases(total, hit)
probability = (1.0 / cases)
negative_probability = (1.0 - probability)
at_least_once_probability = 1.0 - (negative_probability ** (times * year * 52))
puts "* 로또 #{hit}/#{total} *"
puts
puts "- 1회 로또 경우의 수: #{cases} 가지, 1등 확률: #{probability}"
puts "- #{year} 년간 #{money} 원짜리 로또(1회 #{times}개) 구매비용: #{year * 52 * money * times} 원"
puts "- #{year} 년간 최소 1회 1등에 당첨될 확률: #{at_least_once_probability * 100.0} %"
puts
puts "# 단, #{year} 년간 로또 1개 구매비용이 #{money} 원으로 일정하며"
puts "# 매번 자동 선택한 경우를 가정함"
rescue
puts "* error: #{$!}"
end
end
내가 일일이 손으로 계산할 순 없잖냐...
공식이 맞는지 안맞는지는 모르겠으니
계산되어 나오는 확률이 정확한지는 10년동안 사보면서 테스트들 해보시고,
어쨌거나 저 계산에 의해서 10년간 3천원씩 사면 어떻게 되나 결과를 내봤더니,
* 로또 6/45 *
- 1회 로또 경우의 수: 8145060 가지, 1등 확률: 1.22773803998988e-07
- 10 년간 1000 원짜리 로또(1회 3개) 구매비용: 1560000 원
- 10 년간 최소 1회 1등에 당첨될 확률: 0.0191508805863272 %
# 단, 10 년간 로또 1개 구매비용이 1000 원으로 일정하며
# 매번 자동 선택한 경우를 가정함
헐... 뭐든 꾸준히 하면 된다고 하더니만. 0.019%는 뭐냐.
화딱지가 나서 또 해봤다. 이번엔 5개씩 구매.
* 로또 6/45 *
- 1회 로또 경우의 수: 8145060 가지, 1등 확률: 1.22773803998988e-07
- 10 년간 1000 원짜리 로또(1회 5개) 구매비용: 2600000 원
- 10 년간 최소 1회 1등에 당첨될 확률: 0.0319160967325982 %
# 단, 10 년간 로또 1개 구매비용이 1000 원으로 일정하며
# 매번 자동 선택한 경우를 가정함
0.031%? 쪼금 높아는 졌다?
에라 모르겠다, 인심좀 써서 100년쯤 구매해볼까.
* 로또 6/45 *
- 1회 로또 경우의 수: 8145060 가지, 1등 확률: 1.22773803998988e-07
- 100 년간 1000 원짜리 로또(1회 5개) 구매비용: 26000000 원
- 100 년간 최소 1회 1등에 당첨될 확률: 0.318702970485418 %
# 단, 100 년간 로또 1개 구매비용이 1000 원으로 일정하며
# 매번 자동 선택한 경우를 가정함
100년을 해도 1%가 안되는거냐...
그럼 로또 구매개수를 늘려보자. 한 만 개쯤 사면 되나?
* 로또 6/45 *
- 1회 로또 경우의 수: 8145060 가지, 1등 확률: 1.22773803998988e-07
- 10 년간 1000 원짜리 로또(1회 10000개) 구매비용: 5200000000 원
- 10 년간 최소 1회 1등에 당첨될 확률: 47.1875812880591 %
# 단, 10 년간 로또 1개 구매비용이 1000 원으로 일정하며
# 매번 자동 선택한 경우를 가정함
이야 성공이다!!!
한 주에 만 개씩 로또를 사면 거의 50% 확률로 10년내 1등 당첨될 확률이..........
..........있긴 한데 구매비용이 52억원이야.
헐.
안해.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.