Форум программистов, компьютерный форум CyberForum.ru

srand для вещественных чисел - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.81
obZen
1 / 1 / 0
Регистрация: 11.03.2011
Сообщений: 22
22.03.2011, 22:05     srand для вещественных чисел #1
Здравствуйте! Необходима генерация случайных вещественных чисел (double, float). Функция srand возвращает только целое число. Есть ли ф-я либо алгоритм, с помощь которых можно добиться подобного результата?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2011, 22:05     srand для вещественных чисел
Посмотрите здесь:

C++ div и mod, вернее их аналоги в C++ не подходят для вещественных чисел
rand() в С для вещественных чисел C++
Генерация случайных чисел с использованием srand и библиотеки time может выдавать одинаковые числа, если... C++
C++ Описать класс CFMATRIX1 для работы с матрицей вещественных чисел
C++ Описать класс для работы с матрицей вещественных чисел.
Глобальная переменная для хранения вещественных чисел C++
C++ Работа с srand и установка начального значения генератора чисел
Создать класс для работы с двумерным массивом вещественных чисел C++
C++ Перегруженные функции для сложения вещественных чисел; для сложения комплексных чисел
C++ Как сделать подбор рандомный разных чисел (srand (time(0) не помогает)?
C++ Преобразование фурье для вещественных чисел
Реализовать генерацию случайных чисел с помощью функции srand() C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Leningradeс
 Аватар для Leningradeс
10 / 10 / 1
Регистрация: 03.03.2011
Сообщений: 331
22.03.2011, 22:36     srand для вещественных чисел #2
C++
1
2
3
4
5
6
7
8
9
10
#include <stdlib.h> 
 
float random (float a, float b) //a, b например числа определяющие интервал
{
    float y;
    int x;
    x = rand(); //рандомим число
    y = a + (x * (b - a)) / RAND_MAX; //всё время забываю че тут происходит...
    return y;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2841 / 1778 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.03.2011, 22:46     srand для вещественных чисел #3
obZen, Можно как-то так, генерирует из заданого диапазона вещественные числа з двумя знаками после запятой.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
 
double get_double_rand_num(double l, double r){
  int l_ = l * 10 * 10;
  int r_ = r * 10 * 10;
  return static_cast<double>(rand() % (r_ - l_) + l_) / 100;
}
 
int main(){
  double l_lim = 1.0, r_lim = 3.5;
  const size_t cnt = 10;
  srand(time(0));
  for(size_t i = 0; i < cnt; ++i)
    std::cout << get_double_rand_num(l_lim, r_lim) << '\n';
  return 0;
}
obZen
1 / 1 / 0
Регистрация: 11.03.2011
Сообщений: 22
23.03.2011, 11:07  [ТС]     srand для вещественных чисел #4
Leningradeс, asics, Всем спасибо!)
Но выкрутился короче, что-то вроде
C++
1
double a = (double)(srand()%100)/(double)(srand()%100);
Yandex
Объявления
23.03.2011, 11:07     srand для вещественных чисел
Ответ Создать тему
Опции темы

Текущее время: 19:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru