关系随机的问题(急)
这个每一秒产生两个随机数的代码,分别为randNumberA;randNumberB;范围一样,但是这两个数会有记录重复,那我加个whilewhile(randNumberA==randNumberB){这里该怎么写呢)我想说一样的时候 让其中一个数再进行随机,但这样会显示3个数,怎么写,当数字一样的时候不显示一样的数,而显示另一个不一样的数呢?或者还有其他办法,目的就是让这两个数随机产生不相同的两个人,求大神帮忙看看 写下代码!!(急)
long randNumberA;
long randNumberB;
void setup(){
Serial.begin(9600);
randomSeed(analogRead(A0));
}
void loop() {
randNumberA = random(20);
Serial.println(randNumberA);
randNumberB = random(20);
Serial.println(randNumberB);
delay(1000);
}
long randNumberA;
long randNumberB;
void setup(){
Serial.begin(9600);
}
void loop() {
int i=0;
randomSeed(analogRead(A0));
randNumberA = random(20);
Serial.print(randNumberA);
randNumberB = random(20);
while(randNumberA==randNumberB){
randNumberB = random(20);
i++;
}
Serial.println(" " +String(randNumberB) + "(Repeat:" + i +")" );
delay(1000);
}
//A0采集的随机数种子很重要,看运行截图:
lbh_sd 发表于 2015-12-27 12:21 static/image/common/back.gif
long randNumberA;
long randNumberB;
非常感谢! lbh_sd 发表于 2015-12-27 12:21 static/image/common/back.gif
long randNumberA;
long randNumberB;
大神我有一个关于随机数问题想要请教。我想按下总开关按钮,然后出现2个随机数(依旧不相同),下一个的随机数要等到你按下下一个按钮之后,才会再显示一个,再按下,再显示一个,循环在一分钟内。怎么设定这个变量X=0或1来控制有没有按下按钮然后去显示这个随机数呢。求大神给下代码做下参考 谢谢了!!!
#define GreenKEY 2 //绿色为总开关按钮
#define KEY1 3 //10个红色按钮
#define KEY2 4
#define KEY3 5
#define KEY4 6
#define KEY5 7
#define KEY6 8
#define KEY7 9
#define KEY8 10
#define KEY9 11
#define KEY10 12 gthrtg 发表于 2015-12-29 21:17 static/image/common/back.gif
大神我有一个关于随机数问题想要请教。我想按下总开关按钮,然后出现2个随机数(依旧不相同),下一个的随 ...
#define KEY 2
#define KEY1 3
#define KEY2 4
#define KEY3 5
#define KEY4 6
#define KEY5 7
#define KEY6 8
#define KEY7 9
#define KEY8 10
unsigned long currentMillis;
long randNumberA1;
long randNumberA2;
long randNumberB1;
long randNumberB2;
int KEY_NUM = 0;int KEY1_NUM = 0;int KEY2_NUM = 0;
int KEY3_NUM = 0;int KEY4_NUM = 0;int KEY5_NUM = 0;
int KEY6_NUM = 0;int KEY7_NUM = 0;int KEY8_NUM = 0;
int a=63;int b=0;int c=0;int interval = 1000;
void setup()
{
Serial.begin(9600);
pinMode(KEY,INPUT_PULLUP);
pinMode(KEY1,INPUT_PULLUP);
pinMode(KEY2,INPUT_PULLUP);
pinMode(KEY3,INPUT_PULLUP);
pinMode(KEY4,INPUT_PULLUP);
pinMode(KEY5,INPUT_PULLUP);
pinMode(KEY6,INPUT_PULLUP);
pinMode(KEY7,INPUT_PULLUP);
pinMode(KEY8,INPUT_PULLUP);
}
void loop()
{
if(digitalRead(2)==LOW){b=1;}
if(b==1){
unsigned long startMillis = millis();
for(currentMillis = millis();startMillis + interval > currentMillis;)
{currentMillis=millis();
if(a<=59){
ScanKey1();
if(KEY1_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey2();
if(KEY2_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey3();
if(KEY3_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey4();
if(KEY4_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
ScanKey5();
if(KEY5_NUM == 1)
{
digitalWrite(randNumberA1,!digitalRead(randNumberA1));
randNumberA1 = random(23,33);
Serial.println(randNumberA1);
}
}
if(a<=0){a=63;b=0;}
}
Serial.println(a);
a--;
if(a==59){
randNumberA1 = random(23,33);
Serial.print("A1:");
Serial.print(randNumberA1);
Serial.print(",");
randNumberA2 = random(23,33);
Serial.print("A2:");
while(randNumberA1==randNumberA2){
randNumberA2 = random(23,33);
c++;}
Serial.println(" " +String(randNumberA2) + "(Repeat:" + c +")" );
randNumberB1 = random(33,43);
Serial.print("B1:");
Serial.print(randNumberB1);
Serial.print(",");
randNumberB2 = random(33,43);
Serial.print("B2:");
while(randNumberB1==randNumberB2){
randNumberB2 = random(33,43);
c++;}
Serial.println(" " +String(randNumberB2) + "(Repeat:" + c +")" );
}
}
}
void ScanKey()
{
KEY_NUM = 0;
if(digitalRead(KEY) == LOW)
{
delay(20);
if(digitalRead(KEY) == LOW)
{
KEY_NUM = 1;
while(digitalRead(KEY) == LOW);
}
}
}
void ScanKey1()
{
KEY1_NUM = 0;
if(digitalRead(KEY1) == LOW)
{
delay(20);
if(digitalRead(KEY1) == LOW)
{
KEY1_NUM = 1;
while(digitalRead(KEY1) == LOW);
}
}
}
void ScanKey2()
{
KEY2_NUM = 0;
if(digitalRead(KEY2) == LOW)
{
delay(20);
if(digitalRead(KEY2) == LOW)
{
KEY2_NUM = 1;
while(digitalRead(KEY2) == LOW);
}
}
}
void ScanKey3()
{
KEY3_NUM = 0;
if(digitalRead(KEY3) == LOW)
{
delay(20);
if(digitalRead(KEY3) == LOW)
{
KEY3_NUM = 1;
while(digitalRead(KEY3) == LOW);
}
}
}
void ScanKey4()
{
KEY4_NUM = 0;
if(digitalRead(KEY4) == LOW)
{
delay(20);
if(digitalRead(KEY4) == LOW)
{
KEY4_NUM = 1;
while(digitalRead(KEY4) == LOW);
}
}
}
void ScanKey5()
{
KEY5_NUM = 0;
if(digitalRead(KEY5) == LOW)
{
delay(20);
if(digitalRead(KEY5) == LOW)
{
KEY5_NUM = 1;
while(digitalRead(KEY5) == LOW);
}
}
}
页:
[1]