I need a C ++ 11 random number generator that is "good enough" and which I can save and restore state to. I want the saved state to be significantly less than 6.6kb or so what this code produces
std::mt19937 rng (1); std::ofstream save ("save.txt"); save << rng;
std :: mersenne_twister_engine has a large number of parameters. This is a little scary.
For my purposes, a period of the order of billions is enough. I heard about TinyMT, which may be appropriate, but cannot figure out how to implement it as a specialized specialization.
How to choose options? I suspect this will break down a lot if I simply reduce the state size parameter to a few words.
I would consider using another engine entirely, but, not allowing a moderate period, I do not want to sacrifice the quality of statistical randomness. Artifacts such as the following (for linear congruents) are not acceptable.

source share