Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何限制C+中随机生成的项的出现+;?_C++_Arrays_Random - Fatal编程技术网

C++ 如何限制C+中随机生成的项的出现+;?

C++ 如何限制C+中随机生成的项的出现+;?,c++,arrays,random,C++,Arrays,Random,假设一个数组可以容纳10个元素,我想用1到5的随机整数填充它。在C++中,可以用RAND()来方便地完成。 但是我想将数字5的出现次数限制为两次。[最后,数组必须包含两个5s。] 那么,C++中有什么功能来设置这个约束?< /P> 这就是我到目前为止所做的 for(int i=0; i<10; i++) { num=rand()%5+1; if(num==5) { if(count<2) { count++; arr

假设一个数组可以容纳10个元素,我想用1到5的随机整数填充它。在C++中,可以用RAND()来方便地完成。 但是我想将数字5的出现次数限制为两次。[最后,数组必须包含两个5s。]

那么,C++中有什么功能来设置这个约束?< /P> 这就是我到目前为止所做的

for(int i=0; i<10; i++)
{   num=rand()%5+1;
    if(num==5)
    {   if(count<2)
        {   count++;
            arr[i]=num;
        }
        else
        {   i--;
            continue;
        }
    }
    else
        arr[i]=num;
}

for(inti=0;i只需跟踪您是否已经在自定义生成器中生成了5

class arunAJs_generator {
    int number_of_fives=0;
public:
    int operator()() {
        if (number_of_fives == 2) {
            //return random number 1-4
            return rand() % 4 + 1;
        } else {
            //return random number 1-5
            int value = rand() % 5 + 1;
            if (value == 5)
                ++number_of_fives;
            return value;
        }
    }
};

int main() {
    arunAJs_generator gen;
    int values[10];
    std::fill(std::begin(values), std::end(values), gen);
}

不能使用
rand
,可能是因为您创建了自己的随机函数。好的。还有其他方法可以获得结果吗?第二次之后您不需要5次。是什么阻止您从那时起最多随机4次?
将数字5的出现次数限制为最多2次
并且
最后,数组必须包含在两个5s中
是不一样的。你想要最多两个5还是正好两个5?如果数组必须正好包含两个5s,那么只有8个随机元素。因此生成8个元素,添加5s,然后重新排列。请不要通过回答这些问题来鼓励不劳而获的问题。我认为5应该被允许两次,而不是一次,否则这就是问题最好的方法。@ PravavSoangdia:发现一个生成器的概念,也很难,语法也很复杂。这说明,还有更多。@ Pravav我已经完成了我的问题。我只是在检查C++中是否有函数。@哼鸭这是个好主意。改变随机范围。谢谢。