gpt4 book ai didi

c++ - 如何在二维数组上随机放置 2 个唯一点?

转载 作者:行者123 更新时间:2023-11-30 01:26:25 25 4
gpt4 key购买 nike

挑选本身很容易,但我无法确保无法将这些点放在同一位置。我当然可以重新随机,但是有更好的方法吗?非常感谢!

最佳答案

从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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com