распределеНия: задача усложНилась
- From
- Victor Snezhko ()
- To
- Yuri Sergeev
- Date
- 2003-01-19T11:36:19Z
- Area
- RU.ALGORITHMS
From: "Victor Snezhko" <9223@inf.tsu.ru>
Приветствую, Yuri!
Однажды Sun, 19 Jan 2003 09:03:12 +0300 ты писал к All:
YS> Значит есть некоторые объекты, заданные двумя свойствами X и Y.
YS> Необходимо в некоторой области, ограниченной радиусом R, с центром
YS> в точке (Xc,Yc), равномерно и нормально распределить N объектов.
Для равномерного подходят полярные преобразования:
r1=R*rand()/RAND_MAX; // равномерное на (0;R)
r2=2.0*pi*rand()/RAND_MAX; // равномерное на (0; 2pi)
X=r1*cos(r2) + Xc;
Y=r1*sin(r2) + Yc;
А вот для нормального я слабо представляю, как это сделать в ограниченном
радиусе :) Нормальная СВ по определению не должна укладываться в какие-то
рамки. Другое дело, что вероятность больших отклонений от центра мала, и
чем дальше, тем сильно меньше вероятность...
Если достаточно, чтобы вероятность выхода за область не превышала примерно
0.002 (точнее, 1-[ф(3)-ф(-3)], ф - интеграл вероятности), генерируй 2
независимых
нормальных СВ. МО у первой - Xc, у второй - Yc. СКО - R/3. А потом
полученный вектор надо преобразовать ковариационной матрицей, чтобы
получилось нечто вроде 3D-колокола, подробнее надо в литературе смотреть,
не помню сейчас, как работает она...
WBR, Victor V. Snezhko. E-mail: 9223(at)inf.tsu.ru
--- ifmail v.2.15dev5
* Origin: Tomsktelecom - Digital Networks (2:5020/400)