C++ 如何使用boost生成不同位的随机多精度整数?

C++ 如何使用boost生成不同位的随机多精度整数?,c++,boost,constexpr,boost-multiprecision,C++,Boost,Constexpr,Boost Multiprecision,我需要生成大量不同位的随机多精度整数(boost mpx_int)。我当前的方法基于以下两个示例:。要以这种方式生成一个随机数,我需要位数作为constexpr。我可以生成一个constexpr int数组,但由于无法从for循环中访问它们,因此我陷入了困境 代码示例: #包括 #包括 #包括 使用名称空间std; 使用名称空间boost::multiprecision; 使用名称空间boost::random; 模板 结构N_位\u nums { constexpr N_bit_nums():

我需要生成大量不同位的随机多精度整数(boost mpx_int)。我当前的方法基于以下两个示例:。要以这种方式生成一个随机数,我需要位数作为constexpr。我可以生成一个constexpr int数组,但由于无法从for循环中访问它们,因此我陷入了困境

代码示例:

#包括
#包括
#包括
使用名称空间std;
使用名称空间boost::multiprecision;
使用名称空间boost::random;
模板
结构N_位\u nums
{
constexpr N_bit_nums():bits{}
{
对于(int i=0;icout我能够通过将独立的_bits_引擎固定到所需的最大比特数,然后掩蔽到所需的比特数来实现这一点

例如:

#包括
#包括
#包括
使用名称空间std;
使用名称空间boost::multiprecision;
使用名称空间boost::random;
int main()
{
constexpr int bit_limit=100;
独立的发动机发电机;
//打印位大小从1到位\u限制的随机数

对于(int n=1;n为什么你要经历模板化的麻烦。首先让它开始工作。记住,每比特\u限制将有一个模板化代码版本。你真的想要一百万份代码吗?使用模板是我发现的一种创建基于的constexpr int数组的方法。我在这里学习如何解决这个问题无论如何,不一定是我目前尝试的方法。为什么需要位数作为常量表达式?它是boost::random::independent_bits_Engine所必需的boost文档中的示例: