我有以下函数生成随机数并且我有一个二维数组,如何在数组上的随机位置上分配函数生成的值,而不是数组大小?
int size = 10;
int randm(){
random_device seeder;
mt19937 engine(seeder());
uniform_int_distribution<int> dist(0, 100);
return dist(engine);
}
int** ary = new int*[size];
for(int i = 0; i < size; ++i)
ary[i] = new int[size];
答案 0 :(得分:2)
要在随机位置分配随机数,您必须生成另外两个随机数:一个用于第一个索引,另一个用于第二个索引。
例如,使用示例代码,您可以执行以下操作:
// Create a random number generator in the range [0, size-1]
random_device seeder;
mt19937 engine(seeder());
uniform_int_distribution<int> dist(0, size - 1);
// Assign a random value in a random place
ary[dist(engine)][dist(engine)] = randm();