
Описание функции random
Функция random()
используется для получения псевдослучайного числа.
При вызове функции генерируется длинная-длинная последовательность случайных чисел, которая является неизменной. Изменяется только параметр, который задает точку начала генерации случайных чисел, и задается он функцией randomSeed. Примерно так:

Для того, чтобы при каждом запуске устройства получать различные значения псевдослучайных чисел, при запуске необходимо проинициализировать генератор с произвольным параметром. Как вариант, если есть неиспользуемый аналоговый вход/выход, то можно в качестве параметра передавать значение, которое вернет функция analogRead.
Синтаксис
long random(long howbig); long random(long howsmall, long howbig)
Параметры
- howsmall: нижняя граница диапазона случайных значений (включительно);
- howbig: верхняя граница диапазона случайных значений (не включительно).
Что возвращает
Случайное число из диапазона от howsmall до howbig или из диапазона от 0 до howbig.
Пример
Выведем псевдослучайные числа из диапазона от 0 до 10 и из диапазона от 50 до 100:
void setup() { Serial.begin(9600); } void loop() { Serial.print("Псевдослучайное число из диапазона от 0 до 10: "); Serial.println(random(11)); Serial.print("Псевдослучайное число из диапазона от 50 до 100: "); Serial.println(random(50, 101)); Serial.println("---------------------------------------------------"); delay(1000); }

Код функции random
(hardware/arduino/avr/cores/arduino/WMath.cpp 1.8.10)
long random(long howbig) { if (howbig == 0) { return 0; } return random() % howbig; } long random(long howsmall, long howbig) { if (howsmall >= howbig) { return howsmall; } long diff = howbig - howsmall; return random(diff) + howsmall; }