Расширение последовательности Halton
Я пытаюсь заполнить область, определенную двумя интервалами [a, b] x [c, d] точками, равномерно распределенными, и я реализую последовательность Халтона. Я использую следующий код (который генерирует вспомогательные числа).
The number I is input.
The number H is output.
for i = 1:N
H = 0
half = 1 / 2
I = rand() % MATLAB rand()
do while ( I is not zero )
digit = mod ( I, 2 )
H = H + digit * half
I = ( I - digit ) / 2
half = half / 2
end
x(i) = H
end
Для оси x я использую базу 2, а для оси y- базу 3. Поскольку я делю на 2, 3, мне кажется, что я не могу полностью заполнить все пространство [0,1] x [0,1]. Я должен заполнить [0,1] х [0,1], и я на самом деле заполнить [0,0,5] х [0,0,35]. И когда я пытаюсь расширить алгоритм для [a, b] x [c, d], я получаю очки в [a,b-0.5] x [c,d-1]. Что я могу сделать, чтобы заполнить правильный full
интервалы?