Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Генерация случайных чисел

12K
17 октября 2006 года
GlAl
28 / / 13.10.2006
Доброе время суток! У меня такая проблема: необходимо сгенерировать double числа, а стандартный rand генерит только unsigned int
12K
17 октября 2006 года
rjx
55 / / 11.03.2006
(double)rand() ;)
12K
18 октября 2006 года
GlAl
28 / / 13.10.2006
Код:
int main()
{
    srand(time(0));
   
    for(int i = 0; i < 50;i++)
    {
        cout << (double)rand() << endl;
    }

    return 0;
}


А он все равно генерит только целые цисла, к тому же как задать определенный промежуток для генерации
21K
18 октября 2006 года
PAHDOMACTEP
2 / / 14.10.2006
вариант для генерации значения от 0 до 1:
X=(double)(random(M))/M;
где M - основание ГСЧ (с помощью него можно задать количество знаков после запятой)
12K
18 октября 2006 года
rjx
55 / / 11.03.2006
[QUOTE=GlAl]А он все равно генерит только целые цисла, к тому же как задать определенный промежуток для генерации[/QUOTE]

 
Код:
double MyRand(double min, double max) {
    return (double)rand()/(double)RAND_MAX*(max-min)+min;
}
12K
18 октября 2006 года
GlAl
28 / / 13.10.2006
rjx спасибо, выручил, теперь все работает:)
284
19 октября 2006 года
michael_is_98
587 / / 25.02.2005
Только имейте в виде, что rand() - "грязный" генератор случайных чисел. Т.е. с его помощью генерируются "случайные" числа, которые через определенный промежуток будут повторяться. Есть генераторы, у которых этот промежуток гораздо больше.
533
19 октября 2006 года
Visualex
254 / / 07.01.2005
srand( (unsigned)time( 0 )*1000 );
val=rand()%100;
А как такой вариант?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог