Страницы

Поиск по вопросам

четверг, 6 декабря 2018 г.

Как заставить генератор случайных чисел давать дробные значения?

Не могу понять как заставить генератор случайных чисел давать дробные значения. Пробовал сделать так. A = rand() % 158.691+(-1.235); не получилось. Интервал от -1.235 и 157.456. #include #include #include using namespace std;
int main() { int N,M; int max = 157456, min = -1235; cout << "Enter size of matrix A:N " << endl; cin >> M; cout << "Enter size of matrix A:M " << endl; cin >> N; cout << "Creating matrix A:" << endl; // Создаётся матрица A float **A = new float* [M]; srand(time(NULL)); int i = 0; do { A[i] = new float [N]; i++; } while(i cout << endl << endl;
// Освобождение памяти for (int i = 0; i < N; i ++) delete [] A[i]; delete [] A; system("pause"); return 0; }


Ответ

На самом деле всё просто.
// Генерирует случайное действительное число от 0 до 1 (double)(rand())/RAND_MAX // Генерирует случайное действительное число от 0 до N (double)(rand())/RAND_MAX * N
Вот пример:
#include #include #include using namespace std;
// Функция, генерирующая случайное действительное число от min до max double random(double min, double max) { return (double)(rand())/RAND_MAX*(max - min) + min; }
int main() { srand((unsigned int)time(0)); cout << random(-1.235, 157.456) << endl; return 0; }
Здесь проверка.

Комментариев нет:

Отправить комментарий