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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.73
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
#1

double rand() - C++

14.11.2011, 01:22. Просмотров 3982. Ответов 7
Метки нет (Все метки)

как записать случайное double число?

точнее как в диапазоне записать, например от -100.0 до 100.0??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 01:22     double rand()
Посмотрите здесь:

C++ invalid operands of types ‘double*’ and ‘double’ to binary ‘operator*’
Какая-нибудь реализация функции void Fun (double in, double *out) C++
C++ Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
C++ long double и double в MSVC 12 одно и тоже, нужна информация,желательно быстрей
C++ std::copy из vector<double> в *double, непонятный warning
C++ Вывести long double число без перевода в double
Почему перестает работать программа при замене double на long double? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
14.11.2011, 01:26     double rand() #2
для double нет функции, но можно написать свою
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdlib>
#include <ctime>
 
double rand(double b, double e)
{
   return b + (rand() % static_cast<unsigned int>((e - b) * 1000)) / 1000.;   
}
 
int main()
{
   srand(static_cast<unsigned int>(time(NULL)));
   std::cout << rand(10, 20) << std::endl;
   return EXIT_SUCCESS;
}
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
14.11.2011, 01:26     double rand() #3
Стандартной функции нет, но можно написать свое.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
14.11.2011, 01:32  [ТС]     double rand() #4
я тут как-то намутил, но проблемка... хочу от -100.0 до 100.0 ... Но как-то не правильно работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>  
#include <time.h>
using namespace std;   
int main() 
{ 
    srand(time(NULL));
    double a[15];
    for(int i = 0; i < 15; i++)
        a[i] = (double)(rand() % 10000 - 5000)/100;
    for(int i = 0; i < 15; i++)
        cout << a[i] << endl;
}
эта программа от -50.0 до 50.0
Пробовал добавлять нули, но потом всякий бред выходит. Как из этого получить -100 до 100??
nonamez123
 Аватар для nonamez123
185 / 181 / 12
Регистрация: 23.10.2010
Сообщений: 1,301
14.11.2011, 11:02     double rand() #5
вообще-то формула rand() % (b - a + 1) + a, может чем поможет... у меня чот тоже неполучается

Добавлено через 12 минут

Не по теме:

вот он, ВОООТТ рандом твоей мечты))))))))


C++
1
a[i] = (double) (rand() % ( 10000 - (-10000) + 1)+(-10000))/100;
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
14.11.2011, 11:10  [ТС]     double rand() #6
спасибо, все работает)
odip
Эксперт С++
 Аватар для odip
7151 / 3291 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
14.11.2011, 14:42     double rand() #7
FAQ почитать не судьба ?
http://www.cyberforum.ru/cpp-beginners/thread44753.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2011, 14:52     double rand()
Еще ссылки по теме:

Преобразовать 2 числа int в 1 число float(double) | double int1.int2 C++
Почему мы пишем double x (double y)? а не через запятую double x,y C++
C++ Error: invalid types 'double [10][10][double]' for array subscript
Исправить ошибки "cannot convert 'double (*)(double)' to 'double'" и "too many arguments to function" C++
Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double C++

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

Или воспользуйтесь поиском по форуму:
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
14.11.2011, 14:52  [ТС]     double rand() #8
не нашел
Yandex
Объявления
14.11.2011, 14:52     double rand()
Ответ Создать тему
Опции темы

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