我目前正在为Arduino制作一个随机数发生器,它将作为彩票。我需要六个不同的数字,所有这些都在1到50之间。我已经放在一起的代码可以很容易地实现这一点,但随机数字并不是随机的,它们有时会重复。变量存储在一个数组中而不是单独的变量,所以它不是直接(对我来说)添加说法或语句等。另外我想将它保存在While循环中而不是For循环。
非常感谢任何帮助和建议。
以下是我到目前为止编写的代码:
int counter = 0; // Counter to be incremented
int maxNum = 6; // Max amount to increment to
int randNums[0]; // Random numbers array
void setup(){
Serial.begin(9600);
randomSeed(analogRead(0));
delay(300);
}
void loop(){
while(counter < maxNum){
randNums[counter] = random(1,50);
Serial.println(randNums[counter]);
delay(500);
counter++;
}
}
&#13;
答案 0 :(得分:0)
我在你的问题中看到两个部分: - 随机性的质量 - 如何使用临时数组存储(?我不完全理解这个问题)
关于随机性的质量,您可以查看一下这个Arduino库:http://code.google.com/p/tinkerit/wiki/TrueRandom,但是,如上所述:http://www.instructables.com/id/Arduino-True-Random-Number-Generator/ 这不符合NIST。虽然,我认为这是迈向良好方向的一步。
关于您的阵列问题,我看到的第一个问题是您在声明中只保留了0个项目。为什么?要么在编译时使用int randNums [6]保留内存,要么声明指向int的指针,并在执行期间使用malloc。
HTH