Генерация случайных чисел из заданного диапазона - C (СИ)
Формулировка задачи:
как сделать рандом из определенного интервала? т.е
if (x>0.15 && y<0.456) z=[-42.5,-78]//z принимает значения из этого интервала
Решение задачи: «Генерация случайных чисел из заданного диапазона»
textual
Листинг программы
#include <iostream>
#include <stdlib.h>
#include <time.h>
double randomizer(double ER,double ERD)
{
srand(time(NULL));
if (ER<0 && ER>-2 && ERD<0 && ERD>-2 )
return (40+(44.9-40)*rand()/100000);
else if (ER>0 && ERD>0 && ER<1 && ERD<1 || ER<1 && ER>0 && ERD>1 && ERD<2)
return (41+(44-41)*rand()/100000);
/*else if (ER<0 && ER<-1)
return [38,40];
else if (ER<0 && ER>-2 && ERD<-2)
return [35.04,37];
else if (ER>-2 || ER>-1 && ERD>-2 || ERD>-1)
return [20.0,25];
else if (ER>1 || ERD>1)
return [60,63];
else
return [41,43];*/
}
int main()
{
srand(time(NULL));
cout<<randomizer(0.36,0.702)<<endl;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с генерацией случайных чисел и временной меткой.
- Функция
randomizerпринимает два аргумента типаdouble:ERиERD. - Инициализируем генератор случайных чисел с помощью
srand(time(NULL)), гдеtime(NULL)- это текущее время. - Проверяем каждый из четырех возможных диапазонов случайных чисел, которые нужно сгенерировать, и возвращаем соответствующее случайное число.
- В функции
mainинициализируем генератор случайных чисел с помощьюsrand(time(NULL)). - Вызываем функцию
randomizerс аргументами 0.36 и 0.702 и выводим результат на консоль.