我想在每次迭代中从特定范围生成一个随机数
for (int i = 0; i < 10; i++)
{
v1[i] = rand() % n;
}
此代码将生成一个介于 0
和 9
之间的数字。但是,我不希望所选数字与索引 i
相同。例如,如果我在第一次迭代中(即:i == 1
),我希望随机数为 0、2、3、4、5、6、7、8, 9 而不是 1。
有人可以帮我吗?
最佳答案
如果您想排除一个数字,只需从可能的选择集中删除最大的数字,如果您碰巧选择了您不想要的数字,请选择最大的数字。
例如,如果你想在0到9之间选择一个数字,但它不应该是数字1,那么就在0到8之间选择一个数字。如果你选择1,那就选择9。
关于c++ - 从随机范围中排除一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31183048/