- 세상의 모든 계산기 수학, 과학, 공학 이야기 확률통계 ()
게임에서 가챠 아이템을 뽑을 확률은?

총 10개의 아이템이 있고, 두 부류로 구분 됨.
A형 5종 : 각 12% 의 확률로 선택됨
B형 5종 : 각 8% 의 확률로 선택됨
합계 100%로
10개 상품이 온전히 있을 때 그 중 1개 뽑을 때의 확률을 의미함.
실제로는
아이템 구매시 2개의 아이템이 선택되어 나오고,
동일한 아이템이 한꺼번에 나오지는 않음.
B형 아이템 중 특정한 아이템인 B1이 나올 확률은?

B1을 획득할 확률
= A상품 후 B1을 뽑는 확률 + B1아닌 B상품 후 B1을 뽑는 확률 + B1을 처음에 뽑는 확률
* 동일한 아이템이 선택되지 않도록 순차적으로 뽑는다고 생각하면,
두번째 선택시의 선택확률이 다시 주어져야 하지만 조건으로 주어지지 않았기 때문에
B1을 제외한 나머지의 선택확률은 남은 것들 중의 각각의 비중 비률로 계산함.
댓글2
-
세상의모든계산기
시뮬레이션의 결과 (비복원 - 본문 풀이 논리와 동일)
import random def generate_items_and_weights(): # a형 항목 a_items = [f'a{i}' for i in range(1, 6)] a_weights = [12] * 5 # 각 a형 항목의 선택 확률은 12% # b형 항목 b_items = [f'b{i}' for i in range(1, 6)] b_weights = [8] * 5 # 각 b형 항목의 선택 확률은 8% items = a_items + b_items weights = a_weights + b_weights return items, weights def draw_items(items, weights): if len(items) < 2: return [] # 항목이 충분하지 않으면 빈 리스트 반환 # 첫 번째 항목을 선택 first_item = random.choices(items, weights=weights, k=1)[0] first_index = items.index(first_item) # 선택한 항목을 제거 del items[first_index] del weights[first_index] # 두 번째 항목을 선택 second_item = random.choices(items, weights=weights, k=1)[0] return [first_item, second_item] def is_valid_draw(draw): return draw[0] != draw[1] def main(): total_trials = 10000000 # 테스트를 위한 시도 횟수 valid_count = 0 invalid_count = 0 b1_count = 0 for _ in range(total_trials): items, weights = generate_items_and_weights() drawn_items = draw_items(items, weights) if len(drawn_items) == 2: # 항목이 2개 선택되었는지 확인 if is_valid_draw(drawn_items): valid_count += 1 if 'b1' in drawn_items: b1_count += 1 else: invalid_count += 1 else: invalid_count += 1 if valid_count == 0: probability_b1_given_valid = 0 else: probability_b1_given_valid = b1_count / valid_count print(f"Total trials: {total_trials}") print(f"Valid draws: {valid_count}") print(f"Invalid draws: {invalid_count}") print(f"'b1' picked in valid draws: {b1_count}") print(f"Probability of 'b1' given valid draw: {probability_b1_given_valid:.4f}") if __name__ == "__main__": main()실행 결과
Total trials: 10000000
Valid draws: 10000000
Invalid draws: 0
'b1' picked in valid draws: 1623986
Probability of 'b1' given valid draw: 0.1624 -
세상의모든계산기
시뮬레이션의 결과 (복원 추출 - 단, 중복시 무효화 Invalid 처리)
위의 비복원 추출에서 코드 일부 주석처리하여 설정함.
# 선택한 항목을 제거 # del items[first_index] # del weights[first_index]실행 결과
Total trials: 10000000
Valid draws: 8960517
Invalid draws: 1039483
'b1' picked in valid draws: 1472355
Probability of 'b1' given valid draw: 0.1643비복원 추출과 결과가 같을 줄 알았는데... 0.2% 높게 나옴.
(여러차례 실행해도 같음)A1~B5 까지 중복시 무효처리가 동일하게 적용되기 때문에 영향이 없을 것으로 예상했지만,
실제로는 B1~B5 의 중복 선택 확률이 낮고 A1~A5의 중복 선택 확률이 높기 때문에,
B1이 안뽑히는 것 중에서 무효처리 되는 것이 상대적으로 많아짐.
즉 구하려는 확률에서 분모값이 작아지는 효과가 나타났고 확률값이 커지는 효과가 0.2% 상승으로 나타난 듯 함.
세상의모든계산기 님의 최근 댓글
2) 고정기준값 41에 대한 오차 제곱합 계산방법 이건 통계메뉴에서는 딱히 방법이 떠오르지 않네요. 질문하신 것과 같이 적은 갯수의 data라면 직접 입력하시는게 최선입니다. 하지만 DATA 갯수가 수십개 이상이라면? ㄴ 스프레드시트 기능을 이용하시는게 좋겠습니다. 【MENU】【8】 A열에 DATA 입력하고 B로 이동한 후 OPTN 【1】 Fill Formula 【ALPHA】키 방향키 숫자키 등을 이용해 수식 완성 C로 이동후 Formula 수식 입력 D의 빈공간으로 이동 후 OPTN 방향키 아래 누르다보면 Sum 보임 ALPHA 키 이용해서 수식 완성. : 기호는 MENU 버튼 바로 아래 있음 (ALPHA키로 입력) 【=】입력하면 최종결과 확인 * 주의 (B열, C열과 달리) D1 셀은 계산 결과인 951이 직접 입력된 상태이므로 DATA 수정후 recalculation 하여도 자동계산되지 않음. 자동계산을 위해서는 formula 형식으로 입력해야 함. 2026 10.27 1) 통계적 편차제곱합(평균 50.25기준) 입력 방법 【MENU】 【6】 【1】 로 1-var Stat 모드로 진입하여 【48】 【=】 【66】 【=】 【32】 【=】 【55】【=】 DATA 입력 【OPTN】 【3】 【▼】 【▼】 fx-570EX 기종에도 편차제곱합을 바로 보여주진 않습니다. 본문에 나온 것처럼 앞서 계산되어 저장된 각종 변수를 이용해 계산합니다. 【AC】【OPTN】【4】Statistics Calc 이 화면에서 다시 OPTN 하고 (메뉴가 3개로 줄어 있죠?) 여기서 방향키로 【▼】 아래를 내려보면 추가 메뉴가 있습니다. 4개 메뉴에는 각각 아래 하위 메뉴가 있습니다. 이 중에서 필요로 하는 것을 골라 계산하시면 되겠습니다. Variable 에 있는 값을 이용하면 다른 공식을 쓰셔도 됩니다. 2026 10.27 질문자님, 48,66,32,55 네 개 DATA 의 평균은 50.25라서 41은 평균이 아닙니다. 그래서 식을 두 가지로 나눠서 봐야 합니다. 1) 통계적 편차제곱합(평균 50.25기준)이면 답은 608.75 입니다. 2) 만약 41이라는 고정 기준값에 대한 제곱합을 구하시는 거면 식은 (48-41)²+... 이고 답은 951입니다. 원문에 +로 쓰신 건 -의 오타로 보입니다. 2026 10.27 본문의 변환 위젯에 사용된 전서체 폰트는 대만의 최고 학술 연구 기관인 중앙연구원(Academia Sinica)에서 제공하는 ‘숭희전체(崇羲篆體)’로 전통 한자 서체인 소전(小篆)을 현대 컴퓨터 폰트(글꼴)로 구축한 오픈소스 프로젝트로 개발되었습니다. https://xiaoxue.iis.sinica.edu.tw/chongxi/download.htm 2026 10.20 예제1) 예제2) 예제3) 추가옵션 2026 10.18