Приветствует, стоит задача на некотором действительном отрезке (условно от 0.0 до limit) случайно сгенерировать N точек, при этом точки должны быть распределены равномерно.
Сначала написал свой код, с использованием rand()
, то поскольку точек много (около 100 миллионов), а rand()
ограничен пределом в 2^16 значений и генерировать действительные числа проблематично, решил воспользоваться разработками умных людей и использовать boost::random
.
В результате получился следующий код (активно использовал примеры):
#include <ctime>
#include <boost/random/linear_congruential.hpp>
#include <boost/random/uniform_real.hpp>
#include <boost/random/variate_generator.hpp>
#include <boost/generator_iterator.hpp>
typedef boost::minstd_rand base_generator_type;
base_generator_type generator((unsigned int)time(NULL));
boost::uniform_real<> uni_dist(0.0, myDataLimit);
boost::variate_generator<base_generator_type&, boost::uniform_real<> > uni(generator, uni_dist);
for (int index = 0; index < myDataSize; index++)
{
myData[index] = uni();
}
У меня вопросы
1) всё ли корректно сделано? Проверил данные - вроде как равномерно распределены, но всё таки.
2) уж очень брутальный код, возможно ли как-то более красиво это сделать, что-то типа
boost::mysuper_linear_random(myData, myData + myDataSize, 0, limit);
Еще поизучал вопрос - C++11 решает кучу проблем
#include <ctime>
#include <random>
// std::mt19937 gen((unsigned int)time(0));
std::random_device genSource;
std::uniform_real_distribution<> generator(0.0, myDataLimit);
for (int index = 0; index < myDataSize; index++)
{
myData[index] = generator(genSource);
}
std::sort(myData, myData + myDataSize);
тот же boost, только встроенный и не такие навороченные конструкции писать надо
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Вот так ругается компиляторКак можно реализовать такой динамический массив?
У меня есть база данных и 3 таблицы: ProductEntity, OrderEntity и ProductInOrder
Друзья, здравствуйте, Подскажите как настроить вproperties log4j путь к логам внутри проекта? То есть что бы после пула с гита путь был всегда октуален