随机填充100个100X100矩阵的网格1

时间:2018-03-19 06:53:18

标签: c random probability

我有M[100][100]的矩阵,所有矩阵都填充ZERO。现在我想通过' 1'随机填写100个网格。我该怎么做?

我面临的挑战:

当我随机选择任何位置(x, y)时,该位置可以由1填充。我必须最小化rand()通话计数。是否可以填写100 rand()来电限制?

问题被标记为与another question重复,但这不能解决我的问题? 2D矩阵的任何一般概念?

1 个答案:

答案 0 :(得分:2)

使用Fisher-Yates解决方案from this answer。具体来说,您希望一次创建一个包含数字0 ... 9999的数组,其中包括x = i % 100y = i / 100

或者如果你愿意,你也可以使用struct coords { char x, y; }数组。

然后,您只对第一个(或最后一个)100个元素进行洗牌,之后第一个(最后一个)100个元素将成为您的坐标。您可以重用相同的数组而无需后续初始化。每100个随机填充物仅需要生成100个随机数。