PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Как посчитать вероятность события?

DOM и браузер

Вероятность события считают как отношение благоприятных исходов к общему числу: `P = favorable / total`. Для эмпирической — по частоте наблюдений. Диапазон [0, 1].

Классическая вероятность

Отношение благоприятных исходов к общему числу равновозможных:

// P(выпадения 6 на кубике) = 1/6
const probability = favorable / total; // 1 / 6 ≈ 0.167

P в диапазоне [0, 1] (0 — невозможно, 1 — достоверно).

Эмпирическая (частотная)

По результатам наблюдений — частота события:

// Из 1000 запросов 50 упали
const errorRate = 50 / 1000; // 0.05 (5%)

В коде (пример симуляции)

function estimateProbability(trials, event) {
  let count = 0;
  for (let i = 0; i < trials; i++) {
    if (event()) count++;
  }
  return count / trials; // эмпирическая вероятность
}

// Вероятность выпадения орла
estimateProbability(10000, () => Math.random() < 0.5); // ~0.5

Комбинации событий

  • И (независимые): P(A и B) = P(A) × P(B).
  • ИЛИ (несовместные): P(A или B) = P(A) + P(B).
  • Условная: P(A|B) = P(A и B) / P(B).

В контексте фронтенда/бэкенда

  • A/B-тесты, распределение нагрузки, вероятность ошибки/повтора, случайная выборка (feature-флаги на % пользователей):
if (Math.random() < 0.1) enableFeature(); // 10% пользователей

Коротко для собеседования

Вероятность события: классическая — P = благоприятные / общее (диапазон [0,1]); эмпирическая — частота по наблюдениям (ошибки / всего). Комбинации: И (независимые) — умножение, ИЛИ (несовместные) — сложение. В коде — симуляция (count / trials) или Math.random() < p для события с вероятностью p (feature-флаги на % пользователей).

Другие вопросы раздела