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, в которых приходится вычислять