gpt4 book ai didi

c++ - 如何在随机位置用特定数量的 1's and 0' 填充数组?

转载 作者:可可西里 更新时间:2023-11-01 15:19:44 26 4
gpt4 key购买 nike

我有一个数组,其中包含 8 个要填充的点以及 4 个 1 和 4 个 0 的填充点,但希望位置是随机的。我对如何做到这一点而不是多余的有点难过。有没有一种简单的方法可以做到这一点,或者我是否必须随机用 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--;
}
}
}

这主要是可行的,但有一些明显的缺点,所以任何关于更好的方法的指示都将不胜感激。

最佳答案

更新:这个答案与原来的答案略有不同

对于资源紧张的Arduino,这段代码就足够了,不需要链接额外的库:

int a[8] = { 0,0,0,0,1,1,1,1 };


void setup() {

randomSeed(analogRead(A0));

for (int n=7;n>0;n--) {
int r = random(n+1);
int t = a[n];
a[n] = a[r];
a[r] = t;
}

}

This is exactly how the std::shuffle function is implemented , 仅受内置 Arduino random() 函数

执行效率的限制

关于c++ - 如何在随机位置用特定数量的 1's and 0' 填充数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895781/

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