from math import comb
import random

# 설정 변수
total_numbers = 100  # 총 번호 개수
winning_numbers = 6  # 당첨 번호 개수
chosen_numbers = 24  # 사용자가 고르는 번호 개수
lottery_price = 30000  # 복권 가격 (1장당)
n_lotteries = 100  # 구매할 복권 수

# 당첨금 설정 (등수별 상금)
prize_money = {
    6: 200_000_000,  # 1등
    5: 10_000_000,   # 2등
    4: 500_000,      # 3등
    3: 50_000,       # 4등
    2: 20_000,       # 5등
    1: 10_000,       # 6등
    0: 0             # 7등
}

# 전체 경우의 수 계산
total_combinations = comb(total_numbers, chosen_numbers)

# 등수별 확률 계산
probabilities = {}
for k in range(winning_numbers + 1):  # 0개 맞춤부터 6개 맞춤까지
    if k <= chosen_numbers:  # 고른 번호 개수 이상 맞출 수 없음
        matching_combinations = comb(winning_numbers, k)  # 당첨 번호 중 k개 선택
        non_matching_combinations = comb(total_numbers - winning_numbers, chosen_numbers - k)  # 나머지 선택
        probability = (matching_combinations * non_matching_combinations) / total_combinations
        probabilities[k] = probability  # 확률 저장

# 손익 계산을 위한 복권 구매 후 실제 당첨금을 계산
total_spent = lottery_price * n_lotteries  # 총 지출
total_winnings = 0  # 총 당첨금

# 각 등수별 당첨 횟수 계산 (n_lotteries번 복권을 뽑았을 때)
# 확률에 따라 복권이 당첨될 때마다 등수를 계산
prize_counts = {k: 0 for k in prize_money}

for _ in range(n_lotteries):
    # 0~6개 맞춘 당첨 결과를 시뮬레이션
    drawn_numbers = random.sample(range(1, total_numbers + 1), chosen_numbers)  # 사용자가 고른 번호
    winning_numbers_set = random.sample(range(1, total_numbers + 1), winning_numbers)  # 당첨 번호
    
    # 맞춘 번호 개수 계산
    matched_numbers = len(set(drawn_numbers) & set(winning_numbers_set))
    
    # 해당 등수 당첨
    prize_counts[matched_numbers] += 1
    total_winnings += prize_money[matched_numbers]  # 해당 등수의 상금을 더함

# 손익 계산
profit_or_loss = total_winnings - total_spent  # 손익 계산

# 결과 출력
print("복권 시뮬레이션 결과")
print(f"복권 가격: {lottery_price}원")
print(f"구매한 복권 수: {n_lotteries}장")
print(f"총 지출: {total_spent:,}원")
print(f"실제 당첨금: {total_winnings:,.2f}원")
print(f"손익: {profit_or_loss:,.2f}원")
print("\n각 등수별 당첨 횟수:")

for k in sorted(prize_counts.keys(), reverse=True):
    print(f"{k}개 맞춘 당첨 횟수: {prize_counts[k]}회")

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: