5.5. Выбор равномерно распределенных точек в сложных областях.
Методы отбора (36) легко обобщить так, чтобы отбирались значения многомерной случайной величины
. Мы рассмотрим лишь один прием, который имеет много практических приложений. Его можно считать частным случаем метода моделирования усеченных распределений (п. 5.2), если иметь в виду обобщение этого метода на многомерный случай.
Пусть В — ограниченная область на плоскости х, у, «сложная» с точки зрения вычислительной практики:
например, невыпуклая или несвязная или такая, что границы на отдельных участках трудно записать в явном виде. Предположим лишь, что существует достаточно простой алгоритм, позволяющий определить, принадлежит ли области В любая заданная точка
или нет.
Выберем прямоугольник
, содержащий область В (рис. 32).
Рис. 32.
Рис. 33.
Координаты случайной точки
равномерно распределенной в П, легко вычислить (п. 2.1):
Для нахождения точек, Q, равномерно распределенных в В, можно вычислять точки Q, равномерно распределенные в П, и отбирать среди них те, которые принадлежат В. В самом деле, для любой области
Так как Q равномерно распределена в П, то вероятность попадания Q в любую область пропорциональна площади этой области:
Следовательно,
или, что то же, плотность
в области В.
Эффективность такого метода равна отношению площадей
Поэтому
будет наибольшей тогда, когда площадь П минимальна — результат очевидный геометрически. Ясно также, что в тех случаях, когда область В хорошо вписывается, например, в круг С (рис. 33), лучше не пользоваться прямоугольником П, а отбирать точки Q из числа точек Q, равномерно распределенных в С. Эффективность такого метода
будет выше, ибо
Пример. Случайные точки
, равномерно распределенные в шаре
можно выбирать следующим образом: 1) находим три случайных числа
; 2) вычисляем координаты
; 3) если
то полагаем
в противном случае выбираем новую тройку
Эффективность метода
Несмотря на то, что
близка к 1/2, по полученным здесь формулам случайные точки в шаре вычисляются быстрее, чем по формулам п. 2.4.1, в которых приходится вычислять