randomSeed()

Описание

randomSeed() инициализирует генератор псевдослучайных чисел, заставляя его начинать с произвольной точки в случайной последовательности. Эта последовательность, хотя и очень длинная и случайная, всегда одинакова.

Если важно, чтобы последовательность значений, генерируемых random(), отличалась при каждом запуске скетча, используйте randomSeed() для инициализации генератора случайных чисел достаточно случайным входным значением, например analogRead() на неподключённом пине.

И наоборот, иногда бывает полезно использовать псевдослучайные последовательности, которые повторяются точно. Этого можно добиться, вызвав randomSeed() с фиксированным числом перед началом случайной последовательности.

Синтаксис

Используйте следующую функцию для установки начального числа инициализации генератора случайных чисел:

randomSeed(seed)

Параметры

Функция принимает следующий параметр:

  • seed: ненулевое число для инициализации псевдослучайной последовательности. Допустимые типы данных: unsigned long.

Возвращаемое значение

Функция ничего не возвращает.

Пример кода

Код генерирует случайные числа, используя начальное число, и выводит их в монитор порта.

long randNumber;

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
}

void loop() {
  randNumber = random(300);
  Serial.println(randNumber);
  delay(50);
}

Примечания и предупреждения

Предупреждение

Если seed равен 0, randomSeed(seed) не будет иметь никакого эффекта.

См. также