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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
#1

существует ли в С++ генератор случайных не целых чисел - C++

06.12.2011, 23:31. Просмотров 1329. Ответов 14
Метки нет (Все метки)

?????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 23:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос существует ли в С++ генератор случайных не целых чисел (C++):

генератор случайных чисел - C++
как реализовать генератор случайных чисел? чтобы можно было вводить два числа(например 56 и 519), и случайное число генерировалось из...

Генератор случайных чисел - C++
составить генератор случайных чисел, имеющий два члена - границы последовательности. Предоставить метод, который выводит СЧ из диапазона...

Генератор случайных чисел - C++
Вот написал программу, которая генерирует матрицу 9*9. В каждой строке - от 1 до 9, не повторяются В каждом стобце - то же самое. ...

Генератор случайных чисел - C++
Здраствуййте :( int a=rand()%10000; std::cout << a; getchar(); return 0; int a=rand()%1000; std::cout << a; getchar();...

Генератор случайных чисел - C++
Пишу курсовую по криптографии, для генерации ключей, естественно, нужен генератор случайных чисел. Что вообще можно использовать в этом...

Генератор случайных чисел - C++
Здравствуйте! Кто-нибудь объясните пожалуйста. Вот есть функция rand(). Она возвращает псевдослучайные числа от нуля до RAND_MAX. А можно...

14
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2011, 23:34 #2
нееет
0
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
06.12.2011, 23:34 #3
Можно написать самому. В чем проблема?
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
06.12.2011, 23:40 #4
Да, в "С++" есть все, только это все еще надо написать. Как говорит мой хороший друг, без пруда не выловишь и рыбку оттудА.
0
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
06.12.2011, 23:42  [ТС] #5
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// BSU 11.cpp: определяет точку входа для консольного приложения.
//
 
 
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
 
class medicine
{
    int _num;
    int _kol;
    float _cena;
    float _ves;
    static int _c;
public: 
    static int count();
    medicine();
    medicine(int _Kol_Pod){};
    medicine(int,int,float,float);
    void print() const;
};
 
int medicine::_c=0;
int medicine::count()
{
    _c++;
    return medicine::_c;
}
 
medicine::medicine()
{
    count();
    _num=_c;
    _kol=rand()%10+1;
    _cena=rand()%30+10;
    _ves=rand()%60+30;
}
 
medicine::medicine(int num, int kol, float cena, float ves)
{
    _num=num;
    _kol=kol;
    _cena=cena;
    _ves=ves;
}
 
void medicine::print() const
{
    printf("Лекарство № %d. Кол-во: %d, цена: %d, вес: %d\n", _num, _kol, _cena, _ves);
        cout << "Пустой конструктор запускался " << _c;
        if((_c == 2)||(_c == 3)||(_c == 4))
            cout << " раза\n";
        else
            cout << " раз\n";
}
 
int _tmain (int argc, _TCHAR* argv[])
{
    setlocale (LC_CTYPE,"");
    srand (unsigned (time(NULL)));
    for( ; ; )
    {
        system("cls");
        medicine o;
        o.print();
        cout<<"Запустить программу повторно? (Y or N)\n";
        char answer;
        cin >> answer;
        switch (answer)
        {
            case 'Y':
            case 'y': break;
            case 'N':
            case 'n': exit(1);
            default: cout<<"Не то ввели \n"; exit(2);
        }
    }
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Витaлиk Посмотреть сообщение
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// BSU 11.cpp: определяет точку входа для консольного приложения.
//
 
 
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
 
class medicine
{
    int _num;
    int _kol;
    float _cena;
    float _ves;
    static int _c;
public: 
    static int count();
    medicine();
    medicine(int _Kol_Pod){};
    medicine(int,int,float,float);
    void print() const;
};
 
int medicine::_c=0;
int medicine::count()
{
    _c++;
    return medicine::_c;
}
 
medicine::medicine()
{
    count();
    _num=_c;
    _kol=rand()%10+1;
    _cena=rand()%30+10;
    _ves=rand()%60+30;
}
 
medicine::medicine(int num, int kol, float cena, float ves)
{
    _num=num;
    _kol=kol;
    _cena=cena;
    _ves=ves;
}
 
void medicine::print() const
{
    printf("Лекарство № %d. Кол-во: %d, цена: %d, вес: %d\n", _num, _kol, _cena, _ves);
        cout << "Пустой конструктор запускался " << _c;
        if((_c == 2)||(_c == 3)||(_c == 4))
            cout << " раза\n";
        else
            cout << " раз\n";
}
 
int _tmain (int argc, _TCHAR* argv[])
{
    setlocale (LC_CTYPE,"");
    srand (unsigned (time(NULL)));
    for( ; ; )
    {
        system("cls");
        medicine o;
        o.print();
        cout<<"Запустить программу повторно? (Y or N)\n";
        char answer;
        cin >> answer;
        switch (answer)
        {
            case 'Y':
            case 'y': break;
            case 'N':
            case 'n': exit(1);
            default: cout<<"Не то ввели \n"; exit(2);
        }
    }
    return 0;
}
Вот хотелось бы что бы не целые (флоат) случайно выводила.
0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2011, 23:58 #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
double frand(const double down, const double up)
{
   return down + 1.0 * rand() / RAND_MAX * (up - down);
}
 
int main()
{
   srand(time(NULL));
   printf("%f\n", frand(10.0, 20.0)); 
   return 0;
}
1
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
06.12.2011, 23:58 #7
C++
1
2
3
4
double D;
String d_str;
d_str = IntToStr( rand() % 100 ) + "." + IntToStr( rand() % 10000 );
D = StrToFloat( d_str.c_str() );
0
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
07.12.2011, 00:15  [ТС] #8
все отлично))) а можно ли сделать что бы после точки было 2 цифры??
0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2011, 00:18 #9
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
double frand(const double down, const double up)
{
   return down + 1.0 * rand() / RAND_MAX * (up - down);
}
 
double round_value(double value, unsigned number_count)
{
   double base = pow (10., (int)number_count);
   return floor (value * base + 0.5) / base; 
}
 
int main()
{
   srand(time(NULL));
   printf("%f\n", round_value(frand(10.0, 20.0), 2)); 
   return 0;
}
както-так
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
07.12.2011, 00:21 #10
ну, или так

C++
1
d_str = IntToStr( rand() % 100 ) + "." + IntToStr( rand() % 10 );
0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2011, 00:22 #11
BRcr, а если нужно число, а не строка?)
atoi?)
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
07.12.2011, 00:23 #12
нет
Цитата Сообщение от BRcr Посмотреть сообщение
C++
1
2
3
4
double D;
String d_str;
d_str = IntToStr( rand() % 100 ) + "." + IntToStr( rand() % 10000 );
D = StrToFloat( d_str.c_str() );
0
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
07.12.2011, 00:41  [ТС] #13
Alex после точки 2 числа а остальные ноли. их можно убрать?
0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2011, 00:48 #14
C
1
printf("%.2f\n", round_value(frand(100.0, 200.0), 2));
они существуют только при выводе, так сказать
0
Витaлиk
1 / 1 / 0
Регистрация: 25.10.2011
Сообщений: 49
07.12.2011, 01:17  [ТС] #15
спасибо!! все ок!!
0
07.12.2011, 01:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2011, 01:17
Привет! Вот еще темы с ответами:

Генератор случайных чисел - C++
Есть функция, генерирующая случайные целые числа с помощью линейного конгруэнтного метода. Нужно сделать частотный побитовый тест для...

Генератор случайных чисел - C++
В общем, нужно составить программу, которая реализует алгоритм генерации случайных чисел. Естественно не используя random. Перерыла массу...

Генератор случайных чисел (с UI) - C++
Я создал простенький генератор случайных чисел с Пользовательским Интерфейсом (GUI). Добавлено через 21 минуту Актуальна :)

Генератор случайных чисел - C++
Здравствуйте, для программы мне требуется генератор, который будет задавать рандомно число, но данное число должно быть с определенными...


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

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

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