qwer1111 发表于 2015-12-27 10:30:18

关系随机的问题(急)

这个每一秒产生两个随机数的代码,分别为randNumberA;randNumberB;范围一样,但是这两个数会有记录重复,那我加个while
while(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);
}

lbh_sd 发表于 2015-12-27 12:21:49

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采集的随机数种子很重要,看运行截图:

qwer1111 发表于 2015-12-27 18:47:07

lbh_sd 发表于 2015-12-27 12:21 static/image/common/back.gif
long randNumberA;
long randNumberB;



非常感谢!                  

gthrtg 发表于 2015-12-29 21:17:27

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

qwer1111 发表于 2015-12-30 13:20:43

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]
查看完整版本: 关系随机的问题(急)