아두이노 랜덤 숫자(난수)생성 함수, random(), randomSeed()

아두이노에서 랜덤 숫자(난수)를 생성하는 함수인 random()에 대해 알아보겠습니다.

 

정의

 

랜덤 함수는 난수를 생성합니다.

random(max)
random(min, max)

 

매개 변수

 

min: 임의 값의 하한값 (포함)입니다 (선택 사항).
max: 임의의 값의 상한이며 배타적입니다.

min과 max-1 사이의 난수입니다. 데이터 유형 : long.

 

예제 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
long randNumber;
 
void setup() {
  Serial.begin(9600);
 
  // if analog input pin 0 is unconnected, random analog
  // noise will cause the call to randomSeed() to generate
  // different seed numbers each time the sketch runs.
  // randomSeed() will then shuffle the random function.
  randomSeed(analogRead(0));
}
 
void loop() {
  // print a random number from 0 to 299
  randNumber = random(300);
  Serial.println(randNumber);
 
  // print a random number from 10 to 19
  randNumber = random(1020);
  Serial.println(randNumber);
 
  delay(50);
}
 

 

 

 

랜덤한 숫자가 생성된 것을 확인 할 수 있습니다.

 

random()이후에 스케치를 실행할 때에 의해 생성 된 일련의 값 이 달라야하는 경우, 연결되지 않은 핀 randomSeed()과 같이 임의의 입력으로 난수 생성기를 초기화하는 데 사용 하십시오 analogRead().

반대로, 정확하게 반복되는 의사 랜덤 시퀀스를 사용하는 것이 유용한 경우가 있습니다. randomSeed()임의 순서를 시작하기 전에 고정 번호 로 호출 하면됩니다.

max파라미터 값을 저장하는 변수의 데이터 타입에 따라 선택되어야한다. 어쨌든, 절대 최대 long값은 생성 된 값  특성 (32 비트-2,147,483,647)에 바인딩됩니다 . 더 높은 값으로 설정 하면 컴파일 중에 오류가 발생하지 않지만 스케치 실행 중에 생성 된 숫자는 예상과 다릅니다.

 

randomSeed()의사 난수 생성기를 초기화하여 임의 순서의 임의의 지점에서 시작합니다. 

 

randomSeed(seed)

seed: 의사 난수 시퀀스를 초기화하는 숫자입니다. 허용되는 데이터 유형 : unsigned long.

댓글()