Здравствуйте, 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)].
А далее, как уже было сказано, переходим в полярные координаты.