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

Как ограничить функцию rand()? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
GARFT
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 25
15.01.2013, 23:48     Как ограничить функцию rand()? #1
Как ограничить функцию rand()? К примеру, если надо число рандомное от -11.1 до 20.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ласковая Киса
 Аватар для Ласковая Киса
82 / 8 / 1
Регистрация: 11.01.2013
Сообщений: 55
15.01.2013, 23:50     Как ограничить функцию rand()? #2
C++
1
min+rand()%max;

C++
1
-11.1+rand()%20;
как-то так
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
15.01.2013, 23:50     Как ограничить функцию rand()? #3
Вот готовая функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
int random (int min, int max)
{
    srand ( time (NULL) + rand() );
        
    int temp = max - min;
    
    if (temp == 0)
       temp = 1;
    
    int value = rand() % temp + min;
    return value;
}
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
15.01.2013, 23:52     Как ограничить функцию rand()? #4
rand() % 20 + (-11.1);
GARFT
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 25
15.01.2013, 23:58  [ТС]     Как ограничить функцию rand()? #5
Цитата Сообщение от Ласковая Киса Посмотреть сообщение
C++
1
min+rand()%max;

C++
1
-11.1+rand()%20;
как-то так
И

Цитата Сообщение от SeregaC++ Посмотреть сообщение
rand() % 20 + (-11.1);
всегда -10.1 ответ





Цитата Сообщение от coloc Посмотреть сообщение
Вот готовая функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
int random (int min, int max)
{
    srand ( time (NULL) + rand() );
        
    int temp = max - min;
    
    if (temp == 0)
       temp = 1;
    
    int value = rand() % temp + min;
    return value;
}
Только такой вариант или же можно как-то ограничеть максимальное и минимальное значение rand() более простым способом?
FreeMinder
 Аватар для FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
16.01.2013, 00:01     Как ограничить функцию rand()? #6
C++
1
2
3
4
// генерим дробную часть
double dec = (rand()%9+1) * 0.1;
// генерим целое и добавляем дробную
double random = rand()%31 - 11 + dec;
Добавлено через 1 минуту
GARFT,
C++
1
#include<ctime>
и где нибудь в main
C++
1
srand(time(NULL));
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.01.2013, 00:48     Как ограничить функцию rand()? #7
<random>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 00:54     Как ограничить функцию rand()?
Еще ссылки по теме:

Как модернизировать функцию rand, что бы числа генерировались на заданом промежутке от a до b ? C++
Как пользоваться функцией rand()? C++
Rand() как именно генерируются эти числа C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
16.01.2013, 00:54     Как ограничить функцию rand()? #8
#include<ctime>
srand требует также
C++
1
#include <cstdlib>
а как же приятно использовать все-таки готовые решения из С++11 std::uniform_real_distribution<>(), std::uniform_int_distribution<>()
Yandex
Объявления
16.01.2013, 00:54     Как ограничить функцию rand()?
Ответ Создать тему
Опции темы

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