부티크 의상 얻을 확률은 62.83% 2025-02-27 00:33 로슈 (210.181.*.152)

#PYTHON

import random

# 확률 테이블 (아이템, 실타래 개수, 확률)
prob_table = [
("엔카로샤 실타래 2000개", 2000, 0.001),
("BD9 N 의상 세트 상자", 2000, 0.001),
("BD9 N (남) 의상 상자", 0, 0.0075),
("BD9 N (여) 의상 상자", 2000, 0.0075),
("[남] BD9 N 외형 장식 상자", 0, 0.02),
("[여] BD9 N 외형 장식 상자", 0, 0.02),
("엔카로샤 실타래 1000개", 1000, 0.003),
("엔카로샤 실타래 500개", 500, 0.005),
("엔카로샤 실타래 100개", 100, 0.03),
("엔카로샤 실타래 50개", 50, 0.1),
("엔카로샤 실타래 30개", 30, 0.2),
("엔카로샤 실타래 15개", 15, 0.3),
("엔카로샤 실타래 10개", 10, 0.305),
]

def simulate_draw(n, m):
successful_trials = 0 # 여성 의상을 얻은 시뮬레이션 횟수

for _ in range(m):
silk_thread = 0 # 실타래 개수
has_women_outfit = False # 여성 의상을 얻었는지 여부

for _ in range(n):
rand = random.random() # 0~1 사이 난수 생성
cumulative_prob = 0

for item, thread, prob in prob_table:
cumulative_prob += prob
if rand <= cumulative_prob:
silk_thread += thread
if item == "BD9 N (여) 의상 상자":
has_women_outfit = True
break # 한 번 뽑았으면 종료

# 실타래를 2000개 이상 모았는지 체크
if has_women_outfit or silk_thread >= 1450:
successful_trials += 1

return successful_trials / m # 여성 의상을 얻을 확률

# 예제 실행: 50회 뽑기를 10만번 시뮬레이션
n = 50 # 50회 뽑기
m = 100000 # 10만번 실험
probability = simulate_draw(n, m)

print(f"{n}회 뽑기 시 여성 의상을 얻을 확률: {probability * 100:.2f}%")

 

가성비 패키지 6.6만 원으로 50회 뽑기 + 실타래 2000개로 교환해서 원하는 의상(여 혹은 남) 하나를 얻을 확률은 62.83%네요.

*확률 테이블을 (여) 의상 기준으로 했어요.

*의상 남, 여 상관이 없다면 확률이 이보다 올라갑니다.

로슈

67591
  • 작성한 글29
  • 작성한 댓글6
  • 보낸 추천1
  • 받은 추천1
댓글 2
탕후루쇼넨 (1.235.*.111) 2025-02-28 13:58
잘봤습니다 혹시 # 실타래를 2000개 이상 모았는지 체크인데 1450으로 조건을 설정하신게 왜그럴까요?
2025-02-28 13:58
로슈 (210.181.*.152) 2025-02-28 15:45
패키지를 구매하면 기본적으로 실타래 550개를 가지고 시작하기 때문이죠! (2.2만 패키지*3 + 펄 2회)
2025-02-28 15:45
페이지 상단으로 이동
글쓰기