On Fri, Aug 29, 2008 at 11:09 AM, Fred lunnon <fred.lunnon@gmail.com> wrote:
On 8/29/08, Mike Stay <metaweta@gmail.com> wrote:
... This isn't the usual Hilbert curve, but it does touch each space once and, because of the tensor, stays local. (And it looks like an H for Hilbert!)
Interleaving does improve the locality over my crude base-(2^l) suggestion; but I think one essential property of any generalisation must be that the resulting walk is Hamiltonian --- each step altering just one coordinate by (+/-)1 --- which this construction fails to enforce.
It inherits it from the fact that the original walk is a Gray code, which has that property.
To get the usual one, you use a slightly more complicated tensor product involving some swapping of bits and xors. But since you want to generalize to other dimensions and bases, I suggest using the simple algorithm described above.
Sounds as if this might be the basis for the algorithm published by Butz in the 1970's, and unfortunately documented with the thoroughness customary in those primeval times --- which is to say, not! Do you have a reference?
No, sorry. -- Mike Stay - metaweta@gmail.com http://math.ucr.edu/~mike http://reperiendi.wordpress.com