← Назад к вопросам

Какова вероятность достать два белых шара из мешка, в котором лежит 3 белых и 3 черных шара

1.3 Junior🔥 121 комментариев
#Статистика и математика

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Вероятность достать два белых шара

Это классическая задача на комбинаторику и теорию вероятностей, которая часто встречается в собеседованиях. Решу её несколькими способами.

Условия задачи

  • Всего в мешке: 6 шаров (3 белых + 3 чёрных)
  • Нужно найти: вероятность P(два белых шара)
  • Предполагаем: вытягиваем шары последовательно БЕЗ возврата

Решение 1: Через условные вероятности

Вероятность того, что первый шар белый: P(B₁) = 3/6 = 1/2

Условная вероятность того, что второй шар белый при условии, что первый белый:

P(B₂|B₁) = 2/5 (осталось 2 белых из 5 оставшихся)

По правилу произведения вероятностей:

P(оба белые) = P(B₁) × P(B₂|B₁) = (3/6) × (2/5) = 1/2 × 2/5 = 2/10 = 1/5 = 0.2

Решение 2: Через комбинации

Общее число способов выбрать 2 шара из 6:

C(6,2) = 6!/(2!×4!) = (6×5)/(2×1) = 15

Число способов выбрать 2 белых шара из 3:

C(3,2) = 3!/(2!×1!) = 3

Вероятность:

P(оба белые) = C(3,2) / C(6,2) = 3/15 = 1/5 = 0.2

Решение 3: Python реализация

import math
from itertools import combinations

# Метод 1: Аналитический расчёт
def probability_both_white_analytical():
    # P(1-й белый) × P(2-й белый | 1-й белый)
    p_first_white = 3/6
    p_second_white_given_first = 2/5
    probability = p_first_white * p_second_white_given_first
    return probability

print(f"Аналитический метод: {probability_both_white_analytical()}")
# Вывод: 0.2

# Метод 2: Через комбинации
def probability_both_white_combinations():
    from math import comb
    total_ways = comb(6, 2)  # Выбрать 2 из 6
    favorable_ways = comb(3, 2)  # Выбрать 2 белых из 3
    return favorable_ways / total_ways

print(f"Метод комбинаций: {probability_both_white_combinations()}")
# Вывод: 0.2

# Метод 3: Монте-Карло симуляция
import random

def probability_both_white_simulation(n_simulations=100000):
    count_both_white = 0
    
    for _ in range(n_simulations):
        # Создаём мешок: 0,1,2 - белые, 3,4,5 - чёрные
        bag = [0, 1, 2, 3, 4, 5]
        # Вытягиваем 2 шара без возврата
        sample = random.sample(bag, 2)
        # Проверяем, оба ли белые (< 3)
        if all(ball < 3 for ball in sample):
            count_both_white += 1
    
    return count_both_white / n_simulations

sim_prob = probability_both_white_simulation()
print(f"Монте-Карло симуляция: {sim_prob:.4f}")
# Вывод: примерно 0.2 (с небольшой ошибкой)

Ответ

P(два белых шара) = 1/5 = 0.2 = 20%

Альтернативный сценарий: с возвратом

Если шары возвращаются в мешок после вытягивания (выборка с возвратом):

P(B₁) = 3/6 = 1/2
P(B₂) = 3/6 = 1/2 (независимое событие)
P(оба белые) = 1/2 × 1/2 = 1/4 = 0.25

Практическое применение в Data Science

Эта задача иллюстрирует важные концепции:

1. Условные вероятности (Conditional Probability)

Фундамент для Байесовского подхода и классификации

2. Правило произведения (Multiplication Rule)

P(A и B) = P(A) × P(B|A)

3. Комбинаторика

Используется в:

  • Выборке данных
  • Кросс-валидации
  • Тестировании гипотез

4. Монте-Карло методы

Симуляция — мощный инструмент когда аналитическое решение сложно

Частые ошибки при решении

Ошибка 1: Забыть, что после вытягивания первого шара его не возвращают

  • Неправильно: P = (3/6) × (3/6) = 1/4
  • Правильно: P = (3/6) × (2/5) = 1/5

Ошибка 2: Не учесть порядок

  • Из 6 шаров можно выбрать пару упорядоченно или неупорядоченно
  • Для этой задачи порядок не важен, поэтому используем комбинации C(n,k), а не перестановки P(n,k)

Интервью-совет

Когда интервьюер дает такую задачу:

  1. Уточни условие: с возвратом или без?
  2. Выбери метод: аналитический, комбинаторный или симуляция
  3. Реализуй в коде: покажи Python код
  4. Проверь: убедись что результат логичен (0.2 < 0.25, что правильно)
  5. Масштабируй: как будет меняться вероятность если изменить количество шаров?