【发布时间】:2018-04-04 09:08:11
【问题描述】:
我有一个数组,其中有 8 个点要填充,4 个点和 4 个点要填充,但希望这些位置是随机的。我有点难过如何做到这一点而不是多余的。有没有一种简单的方法可以做到这一点,或者我是否必须随机用 1 或 0 填充数组,然后在事后检查它是否具有正确的数字?我当前的代码类似于
void setup() {
int one = 0;
randomSeed(analogRead(A0));
for (int i=0; i<8; i++){
array[i] = random(0, 2);
if (array[i] == 1){
one++;
}
if(one >4){
array[i] = 0;
one--;
}
}
}
这主要是可行的,但有一些明显的缺点,所以任何关于更好方法的指针都将不胜感激。
【问题讨论】:
-
我可能会将数组设置为 [1,1,1,1,0,0,0,0] 然后随机播放。随机选择两个元素并交换它们几次。
-
这不是一个坏主意,我一定要考虑一下,这绝对是一个不错的选择。
-
@Octopus 的建议可以be performed for you by
std::shuffle.
标签: c++ arrays sorting random arduino