Я использую boost::random::uniform_int_distribution<boost::multiprecision::uint256_t>
для генерации некоторых юнит-тестов. Обратите внимание, что я использую multiprecision
, поэтому мне нужно использовать boost, а не стандартную библиотеку. Для моих периодических тестов мне нужно генерировать детерминированные результаты из недетерминированного семени, но таким образом, чтобы я мог воспроизвести результаты позже в случае неудачи тестов.
Итак, я бы сгенерировал истинное случайное число и использовал бы его как начальное число, и вставил бы его в uniform_int_distribution
. Цель состоит в том, что если это не удастся, я смогу воспроизвести проблему с тем же начальным числом, из-за которого тесты не пройдены.
Поддерживает ли эта часть boost генерирование случайных чисел на основе начальных чисел в своем интерфейсе? Если нет, есть ли другой способ сделать это?
В настоящий момент я генерирую случайные числа:
boost::random::random_device gen;
boost::random::uniform_int_distribution<boost::multiprecision::uint256_t> dist{100, 1000};
auto random_num = dist(gen);
PS: Обратите внимание, что основное требование заключается в поддержке multiprecision
. Мне требуются числа в диапазоне от 16 до 512 бит. Это для тестов, поэтому производительность не является обязательным требованием. Я в порядке генерации больших случайных чисел другими способами и преобразования их в boost::multiprecision
.