Is there a "shuffle-mapping" function? I need a bijective function to map each array position to a different, random-looking position.
@anathem I usually create an array of indexes. You can shuffle this by 'common' means. If you find a better way, please let me know!
@TheConstructor Yeah, that's a bit of a problem in memory-restricted environments...
@anathem if you have an array with a length of 2^n you could try xor-ing with a random number. It will look random… If the length is not so well aligned you may be able to succeed with a shorter bit-mask (lower-bits 0), but will lose some 'random'-ness especially within groups. Or you could use a second approach for the after 2^n items
@TheConstructor That sounds promising... thanks!
@anathem on second thought it's probably high-bits zero… write tests, please 😉
@anathem hm.. depends on the context and restrictions. maybe something like hash(index) % max_index could do.
@joknopp I don't think that would hold to be bijective ... I just need a way of running through the indices 0..n in a random-looking order. Ideally as a function, so that I don't need a mapping array.
@anathem oh, sorry, missed the bijective Part. That's trickier.
Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!).