Boost.RandomやC++標準の乱数ジェネレータは、シードと乱数生成された回数さえ覚えておけば、状態を復旧できます。 乱数生成は分布クラス内部で行われるので、そういうことがしたい場合は、分布処理内での乱数生成回数を覚えておくために、ジェネレータをラップして乱数が生成される度にカウントアップするクラスを用意する必要があります。 #include <iostream> #include <boost/random.hpp> class logged_generator { std::size_t& generate_count_; boost::random::mt19937& gen_; public: typedef boost::random::mt19937 engine_type; typedef engine_type::result_type result_type; lo