generowanie liczb losowych podwójnych między dwoma przedziałami [a, b]

Muszę wygenerowaćX losowe liczby podwójne równomiernie rozmieszczone między dwoma przedziałami [a, b], gdziea ib są także liczbami podwójnymi.

TeX liczby muszą być generowane wewnątrz funkcji klasy, powiedzmymyclass::doSomething(a,b). Chodzi o to, że przerwy[a,b] przekazany dodoSomething(a,b) zmiana funkcji za każdym razemdoSomething(a,b) funkcja jest wywoływana przez inną funkcję klasy, powiedzmydoThat().

Chciałbym rozwiązanie, które pozwoli mi:
1. Miećengine z wyższym zakresem, idealnie, powinien być wysiewany tylko raz na uruchomienie aplikacji.
2. TheX losowe podwójne liczby generowane wewnątrz każdego pojedynczego połączenia dodoSomething() funkcja powinna być równomiernie rozłożona.

Moje rozwiązanie poniżej nie pozwala na większy zakresengine i wydaje się, że wygenerowane liczby niekoniecznie są równomiernie rozłożone.

<code>//file: utilities.h
template <typename Generator>
double randomDoubleEngine(Generator& engine, double low_bound, double high_bound )
{
        if (low_bound > high_bound){
                std::swap(low_bound, high_bound);
        }

        return std::uniform_real_distribution<>( low_bound, high_bound )( engine );
}

//file: myclass.h
       void myclass::doThat(param1, param2){

            for(int i=0; i < myclass.iter; i++){
                ...
                ...
                doSomething(a,b);
                ...
            }

        }

        void myclass::doSomething(double a, double b)
        {
                std::random_device rd;
                static std::mt19937 engine(rd());
                .....
                double curThreshold = randomDoubleEngine(engine, a, b);
                ...
         }
</code>

questionAnswers(1)

yourAnswerToTheQuestion