|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Kluchnikov Eugene 2:5003/39.64 09 Dec 2001 19:32:12 To : Igor Dolgov Subject : Спрашивал уже, но меня не поняли... --------------------------------------------------------------------------------
ID> Есть N точек относительно равномерно распределенных по поверхности
ID> круга радиуса R. Все точки находятся друг от друга на приблизительно
ID> одинаковом расстоянии. Сначала в памяти заводишь массив точек, образующих
ID> соты. (То есть стоят в вершинах правильных шестиугольников). Сделать это
ID> не трудно - вдоль прямой параллельной ox ставишь на расстоянии 1 точки -
ID> две поставил, одну пропустил, и снова. Делаешь такие же линии, со сдвигом
ID> - получаешь соты.
Ограничь примерно, чтобы было 6*N точек (на деле можно гораздо меньше - лень
считать).
Теперь надо проделать одну процедуру 2 раза - сначала с центром в вершине соты,
потом с центром в центре соты.
Подбирай r так, чтобы количество точек входящих в круг радиуса r стремилось к N
(метод половинных делений).
Получили, приближенно - l=R/r.
Это простой, но плохой способ.
Лучше представить каждую из N точек, как магнит, ограничивающее кольцо - тоже
магнит. Случайно накидать точки внутрь кольца. И пусть они по принципу
суперпозиции расталкивают друг друга. Если среда вязкая (скорость всегда
падает), то скоро магниты найдут хорошее взаиморасположение. Посчитай среднее
расстояние до ближайшего соседа всех магнитов - вот и результат.
_WBR_, _/*Eustas*/_.
--- Shadow of Warrior
* Origin: My life for Aiur (2:5003/39.64)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33763c13889e.html, оценка из 5, голосов 10
|