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

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

Войти
Регистрация
Восстановить пароль
 
Danzel
6 / 6 / 3
Регистрация: 21.08.2012
Сообщений: 45
#1

псевдослучайное число в заданном отрезке - C++

19.03.2013, 22:27. Просмотров 1009. Ответов 5
Метки нет (Все метки)

Здравствуйте.
Вопрос: можно ли в стандартной функции rand() задать значение в некотором отрезке который мы вводим с клавиатуры?
например мы вводим a и b и он нам генерирует случайное число в этом отрезке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 22:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос псевдослучайное число в заданном отрезке (C++):

Как сгенерировать псевдослучайное число размером 1024 bit? - C++
Уважаемые программисты, очень срочно нужна помощь. Помогите с реализацией функции, которая будет генерировать псевдослучайное число...

Близнецы на заданном отрезке - C++
Я новичок в С++, не могу разобраться как сотавить эту прогу, пожалуйсто помогите: Написать программу, которая на заданном отрезке ...

Нахождение корня в заданном отрезке - C++
Здравствуйте! Собственно, нужно найти корень нелинейного уравнения из заданного отрезка с точностью до eps=0.01, используя метод итераций. ...

На заданном отрезке изменения X {a, b} с шагом h - C++
помогите решить данную задачку пожалуйста, если не сложно киньте код программы. На заданном отрезке изменения X {a, b} с шагом h найти...

Вывод простых чисел на заданном отрезке - C++
Поделитесь мыслью, как это сделать. В теории о том, каким образом искать простое число ничего не говорится а также подскажите каким образом...

Вычислить функцию на заданном отрезке с заданным шагом - C++
Как результат представить в виде таблицы в данном задании? Задание: Составить программу для вычисления функции F(x) на отрезке , с...

5
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
19.03.2013, 22:32 #2
C++
1
2
3
    int x, y;
    std::cin >> x >> y;   // x - min, y - max
    int a = rand() % (y - x) + x;
т.е хотим числа в диапазоне [-50, 100)
Тогда получается rand() % (100 - (-50)) + (-50);
rand() % 150 - 50;
если надо включительно [-50, 100], то int a = rand() % (y - x) + x + 1;
0
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
19.03.2013, 22:32 #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
 
int main()
{
    int a,b;
    srand(time(0));
    cin>>a>>b;
    cout<<(rand()%(b-a) + a);
    system("pause");
    return 0;
}
1
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
19.03.2013, 22:34 #4
C++
1
a+rand()%(b-a);
1
Danzel
6 / 6 / 3
Регистрация: 21.08.2012
Сообщений: 45
19.03.2013, 22:38  [ТС] #5
Большое спасибо!

Добавлено через 2 минуты
а если мне надо чтобы эта случайная величина генерировалась так,чтобы она принимала не только целые но и дробные числа.
например на отрезке (a,b) мне нужно 1000 случайных чисел?
0
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
20.03.2013, 05:10 #6
Цитата Сообщение от SummerRain Посмотреть сообщение
если надо включительно [-50, 100], то int a = rand() % (y - x) + x + 1;
На самом деле rand() % (y - x + 1) + x;

Цитата Сообщение от Danzel Посмотреть сообщение
а если мне надо чтобы эта случайная величина генерировалась так,чтобы она принимала не только целые но и дробные числа.
например на отрезке (a,b) мне нужно 1000 случайных чисел?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/////////////////////////////////////////////////////////////////////////////////////////
#include <cstdlib>
#include <ctime>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
double  get_random_number_on_segment_with_ends_for_values_quantity
    (
        double  a,
        double  b,
        int     n
    )
{
    return  rand() % n / double(n - 1) * (b - a) + a;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    srand(unsigned(time(0)));
    std::cout   <<  "Введите начало и конец отрезка действительных чисел:"
                <<  std::endl
                <<  "a = ";
 
    double  a   =   0;
    std::cin    >>  a;
 
    std::cout   <<  "b = ";
    double  b   =   0;
    std::cin    >>  b;
 
    for(;;)
    {
        std::cout  <<   "Введите требуемое количество случайных чисел на отрезке: ";
        int     n   =   0;
        std::cin    >>  n;
 
        std::cout   <<  "Случайные числа:"
                    <<  std::endl;
 
        for( int  i = 0; i < 6 * n; ++i )
        {
            std::cout   <<  get_random_number_on_segment_with_ends_for_values_quantity
                                (
                                    a,
                                    b,
                                    n
                                )
 
                        <<  std::endl;
        }//for
    }//for
}
1
20.03.2013, 05:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2013, 05:10
Привет! Вот еще темы с ответами:

Отобрать целые значения переменной на заданном отрезке - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #include &lt;math.h&gt; #include...

Определить количество автоморфных чисел на заданном отрезке - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { int n, i, b, c, k, v = 0; cin &gt;&gt; n &gt;&gt; b; ...

Вычислить значения функции на заданном отрезке с заданной точностью - C++
Необходимо подсчитать сумму: cosnx/n^3 на отрезке с заданной точностью e и шагом h. Программа работает, однако если подсчитать вручную,...

Найти максимум функции на заданном отрезке с заданной точностью - C++
Всем привет! Создавал такую же тему в другом разделе не кто не ответил, решил написать сюда простите пожалуйста! Только начинаю в С++ дали...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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