Imagine you have an array of 1000 items and you want to share 100 specific ones that you selected with someone else. Is there a way to create a random seed so that when the other person uses it, they can generate the exact same selection of 100 items based on their indices? It seems possible theoretically, especially if they run a random number generator (RNG) using that seed. However, are there methods to easily obtain a seed from the chosen values or any algorithms that allow this kind of extraction? I understand simpler methods of data transfer exist, but I'm curious about the feasibility of this approach.
5 Answers
This concept is reminiscent of crypto mining, where finding a valid seed is proof of work. The effort lies in varying the generation to find a specific pattern, kind of like how you aim for certain results in mining.
While it's possible, it might end up being more complex than just sending the numbers directly. These days, transferring large amounts of data has moved from physical methods to just sending messages or using integrations. But it’s an interesting idea!
One issue is that there's no guarantee your specific sequence will show up in the generator's cycle. Even if you find a way to know the seed that gets you close, it may not hit precisely what you want. It's tricky!
Thinking about it another way, sending the indices you want can be like compressing data. If you have the same array of random digits—say from Pi—you could send indices instead of the numbers themselves.
Yeah, you can do this if you have a deterministic random number generator, meaning it always produces the same output for the same seed. Just make sure you pick your indices beforehand, and you can share the seed with your friend to reproduce your selection.

That's true; generating the perfect match is pretty hit-or-miss depending on the RNG.