РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
495 of 541 menu

Метод hypergeometric

Метод hypergeometric класса Generator генерирует случайные числа из гипергеометрического распределения. Это распределение описывает вероятность получить определённое количество успехов в выборке без возвращения из конечной популяции, содержащей заданное число объектов двух типов.

Синтаксис

generator.hypergeometric(ngood, nbad, nsample, size=None)

Параметры метода:

  • ngood - количество объектов первого типа (успехов) в популяции. Должно быть неотрицательным целым числом.
  • nbad - количество объектов второго типа (неудач) в популяции. Должно быть неотрицательным целым числом.
  • nsample - размер выборки без возвращения. Должен быть неотрицательным целым числом и не превышать общее количество объектов ngood + nbad.
  • size - форма возвращаемого массива (необязательный параметр). Если не указан, возвращается одно случайное число.

Пример

Сгенерируем одно случайное число из гипергеометрического распределения с 10 успешными элементами, 5 неудачными и выборкой из 7 элементов:

import numpy as np rng = np.random.default_rng(0) res = rng.hypergeometric(10, 5, 7) print(res)

Результат выполнения кода:

5

Пример

Сгенерируем массив из 5 случайных чисел из гипергеометрического распределения с 20 успешными элементами, 10 неудачными и выборкой из 15 элементов:

import numpy as np rng = np.random.default_rng(0) arr = rng.hypergeometric(20, 10, 15, size=5) print(arr)

Результат выполнения кода:

[11 11 8 10 10]

Пример

Создадим двумерный массив случайных чисел из гипергеометрического распределения с 30 успешными элементами, 20 неудачными и выборкой из 10 элементов:

import numpy as np rng = np.random.default_rng(0) arr = rng.hypergeometric(30, 20, 10, size=(2, 3)) print(arr)

Результат выполнения кода:

[[6 6 4] [7 6 5]]

Пример

С помощью метода hypergeometric можно вычислить вероятность получить ровно 3 успеха при выборке 5 элементов из популяции с 10 успешными и 7 неудачными объектами. Для этого сгенерируем большое количество выборок и подсчитаем долю тех, где число успехов равно 3:

import numpy as np rng = np.random.default_rng(0) samples = rng.hypergeometric(10, 7, 5, size=100000) probability = np.mean(samples == 3) print(probability)

Результат выполнения кода:

0.32792

Смотрите также

  • класс Generator,
    который используется для создания генераторов случайных чисел
  • метод binomial,
    который генерирует числа из биномиального распределения
  • метод random,
    который генерирует числа из равномерного распределения на интервале [0, 1)
  • метод choice,
    который генерирует случайную выборку из заданного массива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить