Случайные числа из бета-распределения, C++

Я написал симуляцию на C++, которая генерирует (1 000 000 )^2 чисел из определенного распределения вероятностей, а затем что-то с ними делает.. До сих пор я использовал экспоненциальное, нормальное, гамма, равномерное распределение и распределение Пуассона. Вот код одного из них:

#include 

...main...

    srand(time(NULL)) ;
    seed = rand();
    boost::random::mt19937 igen(seed) ;
    boost::random::variate_generator >
    norm_dist(igen, boost::random::normal_distribution<>(mu,sigma)) ;

Теперь мне нужно запустить его для бета-версии. Все дистрибутивы, которые я сделал до сих пор, заняли 10 -15 часов. Бета-дистрибутив отсутствует в пакете boost/random, поэтому мне пришлось использовать пакет boost/math/distributions. Я нашел эту страницу на StackOverflow , которая предложила решение. Вот это (копировать -вставить):

#include  
using namespace boost::math;  
double alpha, beta, randFromUnif;  
//parameters and the random value on (0,1) you drew  
beta_distribution<> dist(alpha, beta); 
double randFromDist = quantile(dist, randFromUnif); 

Я скопировал и все заработало. Оценки времени выполнения моей симуляции линейны и точно предсказуемы. Говорят, что это будет длиться 25 дней. Я вижу две возможности :1. предложенный метод уступает тому, который я использовал ранее для других дистрибутивов 2. В дистрибутиве Beta гораздо сложнее генерировать случайные числа из

. Имейте в виду, что у меня ниже минимального понимания кодирования на C++, поэтому вопросы, которые я задаю, могут быть глупыми. Я не могу ждать месяц, пока эта симуляция завершится, могу ли я что-нибудь сделать, чтобы улучшить ее? Возможно, использовать первоначальный метод, который я использовал, и изменить его для работы с пакетом boost/math/distributions? Я даже не знаю, возможно ли это.

Другая часть информации, которая может быть полезна, заключается в том, что параметры одинаковы для всех (1 000 000 )^2 чисел, которые мне нужно сгенерировать. Я говорю это потому, что в бета-дистрибутиве есть неприятный PDF-файл, и, возможно, знание того, что параметры фиксированы, можно как-то использовать для упрощения процесса? Просто случайное предположение.

8
задан ROMANIA_engineer 1 November 2017 в 22:26
поделиться