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

double rand() - C++

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

точнее как в диапазоне записать, например от -100.0 до 100.0??
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
184 / 180 / 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
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
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()
Еще ссылки по теме:

Почему перестает работать программа при замене double на long double? C++
Преобразовать 2 числа int в 1 число float(double) | double int1.int2 C++
Почему мы пишем double x (double y)? а не через запятую double x,y 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()
Ответ Создать тему
Опции темы

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