Re[3]: Задача экспромт
От: Neo09 Россия  
Дата: 20.06.04 18:33
Оценка: -1
Здравствуйте, rus blood, Вы писали:


A>>Можно в лоб

A>>Берём два случайных числа x и y, <=R. Переводим (x, y) в (r, fi). Если я не ошибаюсь, fi = arctg(y/x), r = sqrt(x^2+y^2) Если r>R, число отбрасываем. Если нет — плюём на экран

RB>Нет, нужно случайно брать угол и расстояние от центра. Скажем так, способ с квадратом плох тем, что его КПД равно pi/4. Если использовать полярные координаты, то КПД будет 1.


Это неправильно, т.к. в этом случае распределение не будет равномерным.
Наиболее лучшим здесь будет вот что:
Берем случайно x из отрезка [-R, R], а y из отрезка [-sqrt(R^2 — x^2), sqrt(R^2 — x^2)].
А далее, как уже было сказано, переходим в полярные координаты.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.