为数组元素生成随机数

-3 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
  }
}
Run Code Online (Sandbox Code Playgroud)

它不起作用,它不会产生二进制随机数.任何人都可以帮助我如何解决它?

TNA*_*TNA 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<>);
Run Code Online (Sandbox Code Playgroud)

  • 实际的C++,真好! (2认同)
  • @Zchen它们只是数字,它们没有基数,即它们既不是二进制,十进制也不是八进制等.如果你想在*表示二进制形式的数字时有一定数量的数字,只需要计算出最大数字,不超过十位二进制数字,并确保随机数不大于该数字. (2认同)