Скажем, у меня есть n
2-D координаты, случайно расположенные на [ 0 , L ] x [ 0 , L ] квадрат, содержащийся в массиве n x 2, что-то вроде следующего:
n <- 1000
L <- 1000
c <- runif(n*2, 0, L)
coord <- cbind(c[1:n], c[(n+1):(2*n)])
Разделить область на J
квадратов одинакового размера, где J
- некоторый квадратцелое число (4, 9, 16 ...).
Первое разрешение, J = 4
В каждом из этих субрегионов R_1, R_2, ... R_J, случайным образом выберите r
точек из coord
, которые содержатся в этой области.
Теперь разбейте каждую из этих областей на J
субрегионов, отбирая еще r
точек из каждого субрегиона.
Второе разрешение, J = 4
Повторите это фрактальное разложение M
раз.
Я хотел бы иметь возможность вызвать в воображении r
индексы в coord
, соответствующие координатам, которые лежат в любом конкретном субрегионе, скажем R_314 (4-й квадрат в 1-м квадрате в третьем квадрате.
1) Что я заКакую структуру можно использовать для выполнения этой фрактальной декомпозиции для произвольных M
, J
и r
и для хранения индексов, связанных с каждым регионом?Мне нужна древовидная структура, но я не знаю, как это сделать.
2) Как я могу заполнить эту структуру памяти индексами, не используя абсурдное количество циклов и операторов if?