#include <iostream>
#include <random>
#include <functional>

int main()
{
    std::mt19937 engine1(1234);
    std::mt19937 engine2(1234);
    std::uniform_int_distribution<> dist(100,200);

    for (int i=0; i<20; i++)
    {
         std::cout << dist(engine1) << " is equal to " << dist(engine2) << std::endl;
    }

    auto gen1 = std::bind(dist, engine1);
    auto gen2 = std::bind(dist, engine1);

    for (int i=0; i<20; i++)
    {
         std::cout << gen1() << " is equal to " << gen2() << std::endl;
    }

}
