作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
挑选本身很容易,但我无法确保无法将这些点放在同一位置。我当然可以重新随机,但是有更好的方法吗?非常感谢!
最佳答案
从N个可能的位置随机选择K个索引相当于先随机洗牌数组然后取前K个索引。如果你用 c++ 编程(这是你作为标签给出的),它可以很简单:
首先,让你的二维数组变平,假设它存储在一个 vector 中:vector elems;
#include <vector>
#include <algorithm>
using namespace std;
.... initialize elems to whatever you want, here all zeros ......
vector<int> elems (N*M, 0);
// assigning your indices from 0 to elems.size()-1
vector<int> index (elems.size());
for (int i=0; i<index.size(); i++)
{
index[i] = i;
}
// now random permute
random_shuffle (index.begin(), index.end());
// now assign the elements to whatever you want, here assign them to 1
elems[index[0]] = 1;
elems[index[1]] = 1;
关于c++ - 如何在二维数组上随机放置 2 个唯一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10457446/
我是一名优秀的程序员,十分优秀!