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

총 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% 상승으로 나타난 듯 함.
세상의모든계산기 님의 최근 댓글
뉴턴-랩슨 적분 방정식 시각화 v1.0 body { font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; display: flex; flex-direction: column; align-items: center; background: #f8f9fa; padding: 40px 20px; margin: 0; color: #333; } .container { background: white; padding: 40px; border-radius: 20px; box-shadow: 0 15px 35px rgba(0,0,0,0.08); max-width: 900px; width: 100%; } header { border-bottom: 2px solid #f1f3f4; margin-bottom: 30px; padding-bottom: 20px; } h1 { color: #1a73e8; margin: 0 0 10px 0; font-size: 1.8em; } p.subtitle { color: #5f6368; margin: 0; font-size: 1.1em; } .equation-box { background: #f1f3f4; padding: 15px; border-radius: 10px; text-align: center; margin-bottom: 30px; font-size: 1.3em; } canvas { border: 1px solid #e0e0e0; border-radius: 12px; background: #fff; width: 100%; height: auto; display: block; } .controls { margin-top: 30px; display: flex; gap: 15px; align-items: center; justify-content: center; flex-wrap: wrap; } button { padding: 12px 25px; border: none; border-radius: 8px; background: #1a73e8; color: white; cursor: pointer; font-weight: 600; font-size: 1em; transition: all 0.2s; box-shadow: 0 2px 5px rgba(26,115,232,0.3); } button:hover { background: #1557b0; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(26,115,232,0.4); } button:active { transform: translateY(0); } button.secondary { background: #5f6368; box-shadow: 0 2px 5px rgba(0,0,0,0.2); } button.secondary:hover { background: #4a4e52; } .status-badge { background: #e8f0fe; color: #1967d2; padding: 8px 15px; border-radius: 20px; font-weight: bold; font-size: 0.9em; } .explanation { margin-top: 40px; padding: 25px; background: #fff8e1; border-left: 5px solid #ffc107; border-radius: 8px; line-height: 1.8; } .explanation h3 { margin-top: 0; color: #856404; } .math-symbol { font-family: 'Times New Roman', serif; font-style: italic; font-weight: bold; color: #d93025; } .code-snippet { background: #202124; color: #e8eaed; padding: 2px 6px; border-radius: 4px; font-family: monospace; } 📊 Newton-Raphson 적분 방정식 시뮬레이터 미분적분학의 기본 정리(FTC)를 이용한 수치해석 시각화 목표 방정식: ∫₀ᴬ (2√x) dx = 20 을 만족하는 A를 찾아라! 계산 시작 (A 추적) 초기화 현재 반복: 0회 💡 시각적 동작 원리 (Newton-Raphson & FTC) Step 1 (오차 측정): 현재 A까지 쌓인 파란색 면적이 목표치(20)와 얼마나 차이나는지 계산합니다. Step 2 (FTC의 마법): 면적의 변화율(미분)은 그 지점의 그래프 높이 f(A)와 같습니다. Step 3 (보정): 다음 A = 현재 A - (면적 오차 / 현재 높이) 공식을 사용하여 A를 이동시킵니다. 결론: 오차를 현재 높이로 나누면, 오차를 메우기 위해 필요한 가로 길이(ΔA)가 나옵니다. 이 과정을 반복하면 정답에 도달합니다! const canvas = document.getElementById('graphCanvas'); const ctx = canvas.getContext('2d'); const iterText = document.getElementById('iterText'); // 수학 설정 const targetArea = 20; const f = (x) => Math.sqrt(x) * 2; // 피적분 함수 f(x) = 2√x const F = (x) => (4/3) * Math.pow(x, 1.5); // 정적분 결과 F(x) = ∫ 2√x dx = 4/3 * x^(3/2) let A = 1.5; // 초기값 let iteration = 0; let animating = false; // 그래프 드로잉 설정 const scale = 50; const offsetX = 60; const offsetY = 380; function drawGrid() { ctx.strokeStyle = '#f1f3f4'; ctx.lineWidth = 1; ctx.beginPath(); for(let i=0; i 2026 04.11 참값 : A = ±2√5 근사값 : A≈±4.472135954999579392818347 2026 04.10 fx-570 ES 입력 결과 초기값 입력 반복 수식 입력 반복 결과 2026 04.10 파이썬 코드 검증 결과 초기값: 5.0 반복 1회차: 4.5000000000 반복 2회차: 4.4722222222 반복 3회차: 4.4721359558 반복 4회차: 4.4721359550 반복 5회차: 4.4721359550 초기값: 10.0 반복 1회차: 6.0000000000 반복 2회차: 4.6666666667 반복 3회차: 4.4761904762 반복 4회차: 4.4721377913 반복 5회차: 4.4721359550 2026 04.10 감사합니다. 주말 잘 보내세요. 2026 03.06