2 つの間隔 [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] x [0,1] を埋める必要があり、実際には [0,0.5] x [0,0.35] を埋めます。[a,b] x [c,d] のアルゴリズムを拡張しようとすると、[a,b-0.5] x [c,d-1] のポイントが得られます。full
正しい間隔を埋めるにはどうすればよいですか?