【问题标题】:Randomly fill 100 grid of 100X100 matrix by 1用 1 随机填充 100 个 100X100 矩阵的网格
【发布时间】:2018-08-27 16:14:35
【问题描述】:

我有一个M[100][100] 的矩阵,全部用ZERO 填充。现在我想用“1”随机填充 100 个网格。我该怎么做?

我面临的挑战:

当我随机选择任何职位(x, y) 时,该职位可能已经被1 填补。我必须尽量减少rand() 的调用次数。是否可以在100rand()通话限制内填写?

another question 将问题标记为重复,但这不能解决我的问题吗?二维矩阵有什么通用的想法吗?

【问题讨论】:

标签: c random probability


【解决方案1】:

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

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

然后你只打乱第一个(或最后一个)100 个元素,之后前(最后一个)100 个元素将是你的坐标。您可以重复使用相同的数组而无需后续初始化。每 100 个随机填充只需要恰好生成 100 个随机数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 2013-12-01
    • 2012-03-06
    • 2021-10-08
    相关资源
    最近更新 更多