The I/O is fairly simple. Given a range and a number within that range, produce another number with within that range. Distribution should be essentially pseudorandom, not succession or anything like that. The trick is that the complimentary function has to reverse the first function. So, with the range implied, b(a(x)) gets x.
The added difficulty is that all values within the range have to be a product of the function, with the whole range being exhausted from a single starting point (no gaps), and it has to return to its starting point. I don't mind if ranges are increased in blocks.
I haven't started thinking deeply about this, but I thought I'd share it before I forget about it.
< that's the story of my life | BBC White season: 'Rivers of Blood' > |