为数组元素生成随机数

时间:2015-02-04 08:16:50

标签: c++ arrays binary

我在使用C ++生成二进制随机数时遇到问题。我想创建一个数组,每个元素都包含二进制形式的随机数。我想要将XOR元素放在一起。这是我的代码

void Msg::setXOR(double Code)
{
  int array[30];
  srand ( time(0) );
  for(int j = 0;j<30;j++)
  {
    i = rand();         
    array[j]=i
    double x = array[j]^ array[j+1]^ array[J+2];
    code = x ;
    this -> code_var = code
  }
}

它不起作用,它不会产生二进制随机数。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:5)

std::default_random_engine generator;
std::uniform_int_distribution<int> distribution;
auto generatef = std::bind(distribution,generator);
std::array<int,30> array;
std::generate(array.begin(), array.end(), generatef);
double x = std::accumulate(array.begin(), array.end(), 0, std::bit_xor<>);

答案 1 :(得分:0)

您没有将生成的随机数存储在数组中。

int array[30];
srand ( time(0) );
int x=0;
for (int j = 0;j<30;j++)
{
   array[j]=rand();
   x ^= array[j];
}
return x;