蒙特卡洛随机性验证

在这个挑战中,你需要实现一个随机选择算法,该算法会从一个矩阵中均匀随机地选择若干个格子。我们会通过大量模拟来验证你的算法是否真正随机。

要求

  • 实现一个 randomSelect 函数,该函数从 width × height 的矩阵中随机选择 selectCount 个不同的格子
  • 确保每个格子被选中的概率相同(均匀随机)
  • 函数应返回一个包含所选格子坐标的数组,每个坐标为 [x, y] 形式

输入输出

  • width: 矩阵宽度
  • height: 矩阵高度
  • selectCount: 要选择的格子数量
  • 返回值:选中格子的坐标数组,每个元素是 [x, y] 形式

评估标准

我们将运行你的函数 100,000 次,并记录每个格子被选中的频率。均匀随机的算法应该使每个格子被选中的频率接近理论预期值。

  • 相对标准差 < 5%: 非常均匀的分布
  • 相对标准差 5-10%: 较为均匀的分布
  • 相对标准差 > 10%: 分布不均匀

可视化说明

  • 红色: 表示该格子被选中的频率高于期望值
  • 蓝色: 表示该格子被选中的频率低于期望值
  • 颜色越深: 表示偏离期望值越远

祝你好运!