- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- Составные операторы
- Данные
- Типы данных
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- random()
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
random()
Описание
Функция random генерирует псевдослучайные числа.
Синтаксис
random(max)
random(min, max)
Параметры
min: нижняя граница случайного значения включительно (необязательно).
max: верхняя граница случайного значения, не включительно.
Возвращаемые значения
Случайное число между min и max-1 (long)
Примечание
Если при циклическом использовании функции random() важно получать последовательность различных случайных чисел, то для инициализации генератора случайных чисел используйте функцию randomSeed() с параметром, представляющим собой в определенной степени случайную величину. Таким параметром может быть, например, величина напряжения, считанная функцией analogRead() с не подсоединенного вывода.
Изредка требуется и обратное - использовать точно повторяющиеся последовательности псевдо-случайных чисел. Для этого перед началом генерирования последовательности случайных чисел необходимо вызвать функцию randomSeed() с параметром, представляющим собой фиксированное число.
Пример
long randNumber;
void setup(){
Serial.begin(9600);
// если аналоговый вход 0 ни к чему не подсоединен, то произвольный аналоговый
// шум на нем обеспечит разные исходные числа, передаваемые функции randomSeed()
// при каждом запуске программы. Впоследствии это позволит функции random
// генерировать разные значения.
randomSeed(analogRead(0));
}
void loop() {
// выводим случайное число в диапазоне от 0 до 299
randNumber = random(300);
Serial.println(randNumber);
// выводим случайное число в диапазоне от 10 до 19
randNumber = random(10, 20);
Serial.println(randNumber);
delay(50);
}