- 세상의 모든 계산기 수학, 과학, 공학 이야기 확률통계 ()
[확률] - 6/45 로또를 5게임을 선택 했을 때, 당첨 번호 6개 하나도 안맞을 확률은?
1. 게임간 숫자 중복 선택을 허용하지 않을 때
문제 요약
- 45개의 번호 중 6개가 1등 번호입니다.
- 5게임을 중복 없이 선택하면 총 30개의 번호가 선택됩니다.
- 이 30개 번호 중에 1등 번호가 하나도 포함되지 않을 확률을 구하려고 합니다.
접근 방식
1. **총 경우의 수:**
- 45개 숫자 중 30개를 선택하는 경우의 수는 \(\binom{45}{30}\)입니다.
2. **바람직하지 않은 경우의 수:**
- 1등 번호 6개를 제외한 39개 숫자 중 30개를 선택하는 경우의 수는 \(\binom{39}{30}\)입니다.
3. **확률 계산:**
- 확률은 \(\frac{\binom{39}{30}}{\binom{45}{30}}\)입니다.
계산
1. **총 경우의 수** \(\binom{45}{30}\) 계산:
\[
\binom{45}{30} = \frac{45!}{30! \times (45-30)!} = \frac{45!}{30! \times 15!}
\]
2. **바람직하지 않은 경우의 수** \(\binom{39}{30}\) 계산:
\[
\binom{39}{30} = \frac{39!}{30! \times (39-30)!} = \frac{39!}{30! \times 9!}
\]
3. **확률 계산**:
\[
P(\text{1등 번호 미포함}) = \frac{\binom{39}{30}}{\binom{45}{30}}
\]
수치 계산
- \(\binom{45}{30}\)의 값은 약 344,867,425,584 입니다.
- \(\binom{39}{30}\)의 값은 약 211,915,132 입니다.
따라서 확률은:
\[
P(\text{1등 번호 미포함}) = \frac{211,915,132}{344,867,425,584} \approx 0.00061448288901494
\]
이 확률은 약 0.061448288901494%입니다. 이는 30개의 숫자 중에 1등 번호가 하나도 포함되지 않을 확률이 매우 낮다는 것을 의미합니다.
통계적 검증
import random
import time
# Simulate lottery draws (number of simulations)
simulations = 1000000
progress_interval = simulations // 10 # Update progress every 1% of total simulations
favorable_cases = 0 # Initialize inside the loop
total_set = set(range(1, 46)) # 전체 집합
start_time = time.time()
for i in range(simulations):
# Winning numbers (replace with actual winning numbers if desired)
winning_numbers = set(random.sample(range(1, 46), 6))
# Choose 30 unique numbers from the total 45 numbers
chosen_30 = set(random.sample(sorted(total_set), 30))
# The remaining 15 numbers that are not chosen
remaining_numbers = total_set - chosen_30
# Check if the winning numbers are in the remaining 15 numbers
if set(winning_numbers).issubset(remaining_numbers):
favorable_cases += 1
# Print progress
if (i + 1) % progress_interval == 0:
elapsed_time = time.time() - start_time
percentage = (i + 1) / simulations * 100
estimated_total_time = (elapsed_time / (i + 1)) * simulations
remaining_time = estimated_total_time - elapsed_time
print(f"Progress: {percentage:.2f}% | Elapsed Time: {elapsed_time:.2f}s | Estimated Remaining Time: {remaining_time:.2f}s")
# Probability estimation
probability = favorable_cases / simulations
# Print final results
print(f"Estimated probability of NOT including all winning numbers in any of the 5 sets (without replacement, after {simulations} simulations): {probability:.10f}")
결과
Estimated probability of NOT including all winning numbers in any of the 5 sets (without replacement, after 1000000 simulations): 0.0006410000
39C9 / 45C15 로 계산할 수 있음.
1~45중에서 15개의 숫자를 선택하는 전체 경우 수 45C15
15개 숫자 중 6개의 당첨 번호를 미리 비워 두고, 나머지 39개의 숫자 중 나머지 15-6개의 자리를 채우는 경우의 수 39C9
2. 게임간 숫자 중복 선택을 허용할 때
문제 정의
- 전체 숫자: 1부터 45까지 (N = 45)
- 각 게임에서 선택하는 숫자: 6개 (k = 6)
- 게임 수: 5 (m = 5)
- 당첨 번호: 6개
우리는 5게임 중 어떤 게임에서도 6개의 당첨 번호가 포함되지 않을 확률을 구하려고 합니다.
1. 각 게임에서 당첨 번호가 포함되지 않을 확률
하나의 게임에서 특정 6개의 당첨 번호가 포함되지 않을 확률을 계산합니다.
- 전체 조합 수: \(\binom{45}{6}\)
- 특정 6개의 당첨 번호를 포함하지 않는 조합 수: \(\binom{39}{6}\) (총 45개 숫자에서 6개를 제외한 39개 숫자 중에서 6개를 선택하는 조합)
따라서, 하나의 게임에서 특정 6개의 당첨 번호가 포함되지 않을 확률은:
\[
P(\text{특정 번호 포함되지 않음}) = \frac{\binom{39}{6}}{\binom{45}{6}}
\]
2. 5게임 모두에서 당첨 번호가 포함되지 않을 확률
5게임 모두에서 특정 6개의 당첨 번호가 포함되지 않을 확률을 계산합니다. 각 게임이 독립적이라고 가정하면, 다음과 같이 계산할 수 있습니다:
\[
P(\text{5게임 모두에서 포함되지 않음}) = \left(\frac{\binom{39}{6}}{\binom{45}{6}}\right)^5
\]
3. 수식 계산
# 전체 조합 수 계산
- 전체 6개 숫자를 선택하는 조합의 수:
\[
\binom{45}{6} = \frac{45!}{6!(45-6)!} = 8{,}145{,}060
\]
# 특정 번호를 포함하지 않는 조합의 수
- 39개 숫자 중에서 6개를 선택하는 조합의 수:
\[
\binom{39}{6} = \frac{39!}{6!(39-6)!} = 3{,}262{,}623
\]
# 확률 계산
- 특정 번호가 포함되지 않을 확률:
\[
\frac{\binom{39}{6}}{\binom{45}{6}} = \frac{3{,}262{,}623}{8{,}145{,}060} \approx 0.4005
\]
- 5게임 모두에서 포함되지 않을 확률:
\[
\left(\frac{3{,}262{,}623}{8{,}145{,}060}\right)^5 \approx 0.010312477830338
\]
결론
따라서, 6개의 당첨 번호가 5게임 중 어디에도 포함되지 않을 확률은 약 0.01024 (즉, 약 1.024%)입니다.
통계적 검증
from scipy.special import comb
import random
import time
# Simulate lottery draws (number of simulations)
simulations = 1000000
progress_interval = simulations // 10 # Update progress every 1% of total simulations
favorable_cases = 0 # Initialize inside the loop
winning_numbers = set(random.sample(range(1, 46), 6))
# Initialize min and max length trackers
min_length = float('inf')
max_length = float('-inf')
start_time = time.time()
for i in range(simulations):
# Winning numbers (replace with actual winning numbers if desired)
# Generate 5 sets of 6 random numbers
chosen_numbers = [random.sample(range(1, 46), 6) for _ in range(5)]
# Flatten the list and remove duplicates
all_numbers = list(set([num for sublist in chosen_numbers for num in sublist]))
total_set = set(range(1, 46)) # 전체 집합
all_numbers_set = set(all_numbers) # all_numbers를 집합으로 변환
# 여집합 계산
all_other_numbers = total_set - all_numbers_set
# Update min and max length
current_length = len(all_numbers)
if current_length < min_length:
min_length = current_length
if current_length > max_length:
max_length = current_length
# Check if all winning numbers are included in the all_other_numbers
if set(winning_numbers).issubset(all_other_numbers):
favorable_cases += 1
# Print progress
if (i + 1) % progress_interval == 0:
elapsed_time = time.time() - start_time
percentage = (i + 1) / simulations * 100
estimated_total_time = (elapsed_time / (i + 1)) * simulations
remaining_time = estimated_total_time - elapsed_time
print(f"Progress: {percentage:.2f}% | Elapsed Time: {elapsed_time:.2f}s | Estimated Remaining Time: {remaining_time:.2f}s")
# Probability estimation
probability = favorable_cases / simulations
# Print final results
print(f"Minimum length of all_numbers across simulations: {min_length}")
print(f"Maximum length of all_numbers across simulations: {max_length}")
print(f"Estimated probability of NOT including all winning numbers in any of the 5 sets (after {simulations} simulations): {probability:.10f}")
Minimum length of all_numbers across simulations: 15
Maximum length of all_numbers across simulations: 30
Estimated probability of NOT including all winning numbers in any of the 5 sets (after 1000000 simulations): 0.0103890000
3. 반대의 경우 : 1등 번호를 모두 포함할 때
https://allcalc.org/45197
댓글1
-
세상의모든계산기
등위별 당첨 확률
등위 당첨방법 당첨확률 당첨금의 배분 비율 1등 6개 번호 일치 1 / 8,145,060
=0.00001228%
총 당첨금 중 4등, 5등 금액을 제외한 금액의 75% 2등 5개 번호 일치
+ 보너스 번호일치1 / 1,357,510
=0.00007366%총 당첨금 중 4등, 5등 금액을 제외한 금액의 12.5% 3등 5개 번호 일치 1 / 35,724
=0.00279924%
총 당첨금 중 4등, 5등 금액을 제외한 금액의 12.5% 4등 4개 번호 일치 1 / 733
=0.136425645%
50,000원 5등 3개 번호 일치 1 / 45
=2.222222222%
5,000원
세상의모든계산기 님의 최근 댓글
Ctrl+Z 를 이용해 뒤로 돌아기기 Undo 기능이 있는지 살펴보세요. 2026 01.23 쌀집계산기로 연립방정식 계산하기 - 크래머/크레이머/크라메르 공식 적용 https://allcalc.org/56739 3. 'x' 값 구하기 계산기 조작법 목표: x = Dx / D = [(c×e) - (b×f)] / [(a×e) - (b×d)] 계산하기 1단계: 분모 D 계산 (메모리 활용) 1 * 1 M+ : 메모리(M)에 1를 더합니다. (현재 M = 1) -0.1 * -0.2 M- : 메모리(M)에서 0.02를 뺍니다. (현재 M = 0.98 = 0.98) 이로써 메모리(MR)에는 분모 0.98가 저장됩니다. 2단계: 분자 Dx 계산 후 나누기 78000 * 1 : 78000를 계산합니다. = : GT에 더합니다. -0.1 * 200000 : -20000를 계산합니다. ± = : 부호를 뒤집어 GT에 넣습니다. // sign changer 버튼 사용 GT : GT를 불러옵니다. GT는 98000 (분자 Dx) 값입니다. ÷ MR = : 위 결과(98000)를 메모리(MR)에 저장된 분모 D(0.98)로 나누어 최종 x값 100,000를 구합니다. 4. 'y' 값 구하기 계산기 조작법 목표: y = Dy / D = [(a×f) - (c×d)] / [(a×e) - (b×d)] 계산하기 1단계: 분모 D 계산 (메모리 활용) 'x'에서와 분모는 동일하고 메모리(MR)에 0.98가 저장되어 있으므로 패스합니다. 2단계: 분자 Dy 계산 후 나누기 GT ± = : GT를 불러오고 부호를 뒤집어 GT에 더합니다. GT가 0으로 리셋됩니다. 【AC】를 누르면 M은 유지되고 GT만 리셋되는 계산기도 있으니 확인해 보세요. 1 * 200000 : 200000를 계산합니다. = : GT에 더합니다. 78000 * -0.2 : -15600를 계산합니다. ± = : 부호를 뒤집어 GT에 넣습니다. GT : GT를 불러옵니다. 215600 (분자 Dy) 값입니다. ÷ MR = : 위 결과(215600)를 메모리(MR)에 저장된 분모 D(0.98)로 나누어 최종 y값 220,000를 구합니다. x, y 값을 이용해 최종 결과를 구합니다. 2026 01.18 크레이머 = 크레머 = 크라메르 공식 = Cramer's Rule https://allcalc.org/8985 2026 01.18 부호 변경, Sign Changer 버튼 https://allcalc.org/52092 2026 01.18 [fx-570 CW] 와의 차이 CW에 【×10x】버튼이 사라진 것은 아닌데, 버튼을 누를 때 [ES][EX] 처럼 특수기호 뭉치가 생성되는 것이 아니고, 【×】【1】【0】【xㅁ】 버튼이 차례로 눌린 효과가 발생됨. ※ 계산 우선순위 차이가 발생할 수 있으므로 주의. 괄호로 해결할 것! 2026 01.18