import random

def simulate_lottery_profit(num_simulations=10000):
    # 定義參數
    prize_value = 1100            # 每個大獎的價值
    num_tickets = 160             # 每輪抽獎券數量
    num_prizes = 4                # 每輪大獎數量
    
    # 定義抽獎券價格分布及其對應的機率
    ticket_price_options = [10, 20, 30, 40, 50, 60, 70, 90]
    ticket_price_probabilities = [0.05, 0.10, 0.10, 0.30, 0.20, 0.10, 0.10, 0.05]
    
    successful_profit_simulations = 0  # 記錄賺錢的模擬次數

    for _ in range(num_simulations):
        # 初始化每輪變數
        total_revenue = 0         # 此輪總收入
        total_payout = 0          # 此輪總支出（大獎價值總和）

        # 開始新一輪的抽獎
        prizes_remaining = num_prizes  # 初始化剩餘大獎數量
        tickets_remaining = list(range(1, num_tickets + 1))  # 初始化抽獎券列表

        while prizes_remaining > 0:
            # 隨機選擇 ticket_price 並扣除一張券
            ticket_price = random.choices(ticket_price_options, ticket_price_probabilities)[0]
            drawn_ticket = random.choice(tickets_remaining)
            tickets_remaining.remove(drawn_ticket)
            total_revenue += ticket_price  # 每抽一次增加收入

            # 檢查是否中獎
            if drawn_ticket <= num_prizes:
                total_payout += prize_value  # 中大獎則支出增加
                prizes_remaining -= 1  # 減少一個剩餘大獎
            
            # 當大獎抽完，重新開始一輪
            if prizes_remaining == 0:
                # 計算賺錢情況
                if total_revenue > total_payout:
                    successful_profit_simulations += 1  # 記錄此輪賺錢
                break  # 結束這一輪並重置

    # 計算賺錢的機率
    profit_probability = successful_profit_simulations / num_simulations
    return profit_probability

# 模擬並顯示結果
profit_probability = simulate_lottery_profit(10000)
print(f"賣家賺錢的機率約為: {profit_probability:.2%}")
