Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
1

Реализовать генерацию случайных чисел с помощью функции srand()

11.06.2016, 23:39. Просмотров 1021. Ответов 22

Ребят, есть функция srand(time(NULL)). Хочу поместить ее в цикл, чтоб с клавиатуры вводить например 5, а функция возвращала на екран 5 рандомных чисел. Как это правильно записать? помогите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2016, 23:39
Ответы с готовыми решениями:

Реализовать генерацию случайных чисел для игры "Угадай число"
Всем привет!написал код для игры. По условию компьютер должен загадать число от...

сделать генерацию случайных чисел
Как сделать генерацию случайных чисел??

Разработать программу, которая использует генерацию случайных чисел для создания предложений
Помогите пожалуйста составить программу в С++. Задание такое: "Разработать...

Генерация случайных чисел с использованием srand и библиотеки time может выдавать одинаковые числа, если...
... если интервал случайных чисел, из которых идет отбор больше требуемого...

Отсортировать динамически созданный массив случайных чисел по убыванию с помощью функции
Динамически создать массив размера n (n вводится с клавиатуры) и заполнить его...

22
илья9696
120 / 120 / 70
Регистрация: 15.11.2014
Сообщений: 545
Завершенные тесты: 3
11.06.2016, 23:42 2
Она не для этого..

Добавлено через 1 минуту
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using std::cout;
using std::cin;
using std::endl;
 
void arr();
 
int main()
{
    setlocale(LC_ALL, "Russian");
    arr();
    system("pause");
    return 0;
}
 
void arr()
{
    srand(time(NULL));
 
    int arr[5], i;
 
    for(i = 0; i < 5; ++i)
    {
        arr[i] = rand() % 20;
        cout << arr[i] << " ";
    }
}
0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
11.06.2016, 23:43 3
Генерация рандомных чисел
0
илья9696
120 / 120 / 70
Регистрация: 15.11.2014
Сообщений: 545
Завершенные тесты: 3
11.06.2016, 23:57 4
Для ввода с клавиатуры используйте этот код

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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using std::cout;
using std::cin;
using std::endl;
 
void din();
 
int main()
{
    setlocale(LC_ALL, "Russian");
    din();
 
 
    system("pause");
    return 0;
}
 
void din()
{
        const int MAX_SIZE=100;    
        int n;    
        int arr[MAX_SIZE]={0};
        do
        {
        cout<<"Enter dimmension of your array: ";   
        cin>>n;
            }
        while(n<1 || n>100);
 
        for(int i=0;i<n;i++)
        {
        arr[i] = rand() % 20;
        cout<<arr[i]<<" ";
        }    
}
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
11.06.2016, 23:57  [ТС] 5
всеравно немогу вьехать
0
илья9696
120 / 120 / 70
Регистрация: 15.11.2014
Сообщений: 545
Завершенные тесты: 3
11.06.2016, 23:59 6
В чем проблема?
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 00:05  [ТС] 7
вот
0
Миниатюры
Реализовать генерацию случайных чисел с помощью функции srand()  
илья9696
120 / 120 / 70
Регистрация: 15.11.2014
Сообщений: 545
Завершенные тесты: 3
12.06.2016, 00:13 8
Может пора обновиться на новую студию, ну хотя бы 10.

Это ошибка компилятора.

Добавлено через 5 минут
У вас похоже есть объявленный где-то некорректно #define или #inlcude
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 00:16  [ТС] 9
Есть у меня такой код шифрования. нужно сделать так, чтоб рандомные числа можна было задавать с клавиатуры. Да и описание алфавита слишком длинное
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
82
83
84
#include <iostream.h>
#include <cmath>
#include <cstdlib>
#include <string>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int main() 
{
 
int chislo;
char text;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z; // ÂâåäåГ*Г*Гї çì³Г*Г*ГЁГµ
srand(time(NULL));
int ran=rand()%26;
srand(time(NULL));
int rano=rand()%27; //ϳäñòГ*Г*îâêГ* ГўГЁГЇГ*äêîâèõ Г·ГЁГ±ГҐГ«
a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=11,l=12,m=13,n=14,o=15,
p=16,q=17,r=18,s=19,t=20,u=21,v=22,w=23,x=24,y=25,z=26; // ÊîäóâГ*Г*Г*Гї êîæГ*î¿ ГЎГіГЄГўГЁ Г*ëôГ*ГўВіГІГ*
 
cout << "Vvedit kluch" << endl; // Âèâ³ä Г*Г* ГҐГЄГ°Г*Г* ïîâ³äîìëåГ*Г*Гї
cin >> chislo; // ÂâåäåГ*Г*Гї êëþ÷Г* (öèôðГ*)
cout << "kluch = "<<chislo<<", Vvedite text" << endl; // Âèâ³ä Г*Г* ГҐГЄГ°Г*Г* ïîâ³äîìëåГ*Г*Гї
cin >> text; // ÂâåäåГ*Г*Гї ГІГҐГЄГ±ГІГ*, ГїГЄГЁГ© ïîòð³áГ*Г® Г§Г*øèôðóâГ*ГІГЁ
rano+chislo;
 
if (text=='a')
cout << ran <<","<< rano << ","<< a << endl;
else if (text=='b')
cout << ran <<","<< rano << ","<< b << endl;
else if (text=='c')
cout << ran <<","<< rano << ","<< c << endl;
else if (text=='d')
cout << ran <<","<< rano << ","<< d << endl;
else if (text=='e')
cout << ran <<","<< rano << ","<< e << endl;
else if (text=='f')
cout << ran <<","<< rano << ","<< f << endl;
else if (text=='g')
cout << ran <<","<< rano << ","<< g << endl;
else if (text=='h')
cout << ran <<","<< rano << ","<< h << endl;
else if (text=='i')
cout << ran <<","<< rano << ","<< i << endl;
else if (text=='j')
cout << ran <<","<< rano << ","<< j << endl;
else if (text=='k')
cout << ran <<","<< rano << ","<< k << endl;
else if (text=='l')
cout << ran <<","<< rano << ","<< l << endl;
else if (text=='m')
cout << ran <<","<< rano << ","<< m << endl;
else if (text=='n')
cout << ran <<","<< rano << ","<< n << endl;
else if (text=='o')
cout << ran <<","<< rano << ","<< o << endl;
else if (text=='p')
cout << ran <<","<< rano << ","<< p << endl;
else if (text=='q')
cout << ran <<","<< rano << ","<< q << endl;
else if (text=='r')
cout << ran <<","<< rano << ","<< r << endl;
else if (text=='s')
cout << ran <<","<< rano << ","<< s << endl;
else if (text=='t')
cout << ran <<","<< rano << ","<< t << endl;
else if (text=='u')
cout << ran <<","<< rano << ","<< u << endl;
else if (text=='v')
cout << ran <<","<< rano << ","<< v << endl;
else if (text=='w')
cout << ran <<","<< rano << ","<< w << endl;
else if (text=='x')
cout << ran <<","<< rano << ","<< x << endl;
else if (text=='y')
cout << ran <<","<< rano << ","<< y << endl;
else if (text=='z')
cout << ran <<","<< rano << ","<< z << endl;
else
cout << "Vvedit bykvy" << endl;
system ("pause") ;
return 0;
}
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
12.06.2016, 08:46 10
srand() вызывается 1 раз в начале программы. Здесь уже были те, кто пытался многократными вызовами получить числа "ещё случайнее".

Добавлено через 2 минуты
Числа и буквы - в массивы или в std::map.
1
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 11:56  [ТС] 11
Приделал етот цикл к коду. Тепер при выборе с клавиатуры вылетают только одинаковые цифры, а не рандоммные
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
82
83
84
85
86
87
88
89
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <time.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    const int MAX_SIZE=100;  
    char text;
int a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=11,l=12,m=13,n=14,o=15,
p=16,q=17,r=18,s=19,t=20,u=21,v=22,w=23,x=24,y=25,z=26; // Введення змінних, kодування кожної букви алфавіта
        int cluch;    
        int arr[MAX_SIZE]={0};
        do
        {
        cout << "Vvedit kluch" << endl; // Вивід на екран повідомлення   
        cin>>cluch;
        cout << "kluch = "<<cluch<<", Vvedite text" << endl; // Вивід на екран повідомлення
        cin >> text; // Введення текста, який потрібно зашифрувати
            }
        while(cluch<1 || cluch>100);
 
        for(int ii=0;ii<cluch;ii++)
        {
            srand(time(NULL));
        arr[ii] = rand() % 26;
        cout<<arr[ii]<<", ";
        }
    
if (text=='a')
cout << a << endl;
else if (text=='b')
cout << b << endl;
else if (text=='c')
cout << c << endl;
else if (text=='d')
cout << d << endl;
else if (text=='e')
cout << e << endl;
else if (text=='f')
cout << f << endl;
else if (text=='g')
cout << g << endl;
else if (text=='h')
cout << h << endl;
else if (text=='i')
cout << i << endl;
else if (text=='j')
cout << j << endl;
else if (text=='k')
cout << k << endl;
else if (text=='l')
cout << l << endl;
else if (text=='m')
cout << m << endl;
else if (text=='n')
cout << n << endl;
else if (text=='o')
cout << o << endl;
else if (text=='p')
cout << p << endl;
else if (text=='q')
cout << q << endl;
else if (text=='r')
cout << r << endl;
else if (text=='s')
cout << s << endl;
else if (text=='t')
cout << t << endl;
else if (text=='u')
cout << u << endl;
else if (text=='v')
cout << v << endl;
else if (text=='w')
cout << w << endl;
else if (text=='x')
cout << x << endl;
else if (text=='y')
cout << y << endl;
else if (text=='z')
cout << z << endl;
else
cout << "Vvedit bykvy" << endl;
system ("pause") ;
return 0;
}
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
12.06.2016, 12:28 12
Ещё раз прочитай мой текст. Один раз srand() вызывается в начале.
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
int main()
{
    srand(time(NULL));
 
    setlocale(LC_ALL, "Russian");
    const int MAX_SIZE=100;  
    char text;
int a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=11,l=12,m=13,n=14,o=15,
p=16,q=17,r=18,s=19,t=20,u=21,v=22,w=23,x=24,y=25,z=26; // Введення змінних, kодування кожної букви алфавіта
        int cluch;    
        int arr[MAX_SIZE]={0};
        do
        {
        cout << "Vvedit kluch" << endl; // Вивід на екран повідомлення   
        cin>>cluch;
        cout << "kluch = "<<cluch<<", Vvedite text" << endl; // Вивід на екран повідомлення
        cin >> text; // Введення текста, який потрібно зашифрувати
            }
        while(cluch<1 || cluch>100);
 
        for(int ii=0;ii<cluch;ii++)
        {
            arr[ii] = rand() % 26;
            cout<<arr[ii]<<", ";
        }
1
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 14:25  [ТС] 13
Заработало) Спасибо) А как реализовать расшифровку в масиве? Чтоб обойтись без большого количества IF?
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
if (text=='a')
cout << a << endl;
else if (text=='b')
cout << b << endl;
else if (text=='c')
cout << c << endl;
else if (text=='d')
cout << d << endl;
else if (text=='e')
cout << e << endl;
else if (text=='f')
cout << f << endl;
else if (text=='g')
cout << g << endl;
else if (text=='h')
cout << h << endl;
else if (text=='i')
cout << i << endl;
else if (text=='j')
cout << j << endl;
else if (text=='k')
cout << k << endl;
else if (text=='l')
cout << l << endl;
else if (text=='m')
cout << m << endl;
else if (text=='n')
cout << n << endl;
else if (text=='o')
cout << o << endl;
else if (text=='p')
cout << p << endl;
else if (text=='q')
cout << q << endl;
else if (text=='r')
cout << r << endl;
else if (text=='s')
cout << s << endl;
else if (text=='t')
cout << t << endl;
else if (text=='u')
cout << u << endl;
else if (text=='v')
cout << v << endl;
else if (text=='w')
cout << w << endl;
else if (text=='x')
cout << x << endl;
else if (text=='y')
cout << y << endl;
else if (text=='z')
cout << z << endl;
else
cout << "Vvedit bykvy" << endl;
system ("pause") ;
return 0;
И как реализовать расшифровку слов, а не только букв?
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
12.06.2016, 14:39 14
Тебе хватит выражения
C++
1
int x = text - 'a' + 1
1
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 14:51  [ТС] 15
а можно поподробнее?

Добавлено через 3 минуты
разобрался) спасибо большое)) как сделать фразы?)
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
12.06.2016, 16:01 16
Какие фразы?
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 16:06  [ТС] 17
nmcf, ета прога зашифровывает только букву. Как сделать так, чтоб зашифровывала слова, фразы и тд?
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
12.06.2016, 16:19 18
Задаёшь массив этих слов. Индекс будет кодом, для зашифрования ищешь слово в массиве и берёшь индекс, для расшифрования - наоборот.
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 16:28  [ТС] 19
это слишком сложно для меня. вот что получилось. Попытка реализовать шифрование и дешифрование в одной проге. Как описать дешифрование??
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <time.h>
 
using namespace std;
 
int main()
{
 
    srand(time(NULL));
 
    setlocale(LC_ALL, "Russian");
    const int MAX_SIZE=100;  
    char text;
    int a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=11,l=12,m=13,n=14,o=15, p=16,q=17,r=18,s=19,t=20,u=21,v=22,w=23,x=24,y=25,z=26; // Введення змінних, kодування кожної букви алфавіта
        int cluch;
        int ch;
        cout << "Welcome to my crypt project" << endl;
        cout << "Set choise: 1- Crypt; 2-encrypt" << endl;
        cin>>ch;
        int arr[MAX_SIZE]={0};
        if(ch=1)
    {
        do
        {
        cout << "Vvedit kluch" << endl; // запит на введення ключа  
        cin>>cluch;
        cout << "kluch = "<<cluch<<", Vvedite text" << endl; // Вивід на екран повідомлення
        cin >> text; // Введення текста, який потрібно зашифрувати
            }
        while(cluch<1 || cluch>100);
        for(int ii=0;ii<cluch;ii++)
        {
            arr[ii] = rand() % 26;
            cout<<arr[ii]<<", ";
        }
        if (int xx = text - 'a' + 1)
        {
            cout << xx << endl;}
        else if(ch=2){
        {
            cout << "Vvedit bykvy" << endl;}}
        else 
        {
            do
        {
        cout << "Vvedit kluch" << endl; // запит на введення ключа  
        cin>>cluch;
        cout << "kluch = "<<cluch<<", Vvedite text" << endl; // Вивід на екран повідомлення
        cin >> text; // Введення текста, який потрібно зашифрувати
            }
        while(cluch<1 || cluch>100);
        for(int ii=0;ii<cluch;ii++)
        {
            arr[ii] = rand() % 26;
            cout<<arr[ii]<<", ";
        }
        if (int xx = text - 'a' + 1)
        {
            cout << xx << endl;}
        else
        {
            cout << "Vvedit bykvy" << endl;}}
        }
system ("pause");
return 0;
}
Добавлено через 1 минуту
исходник отдельной проги дешифрования
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
82
83
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <string>
#include <stdlib.h>
#include<time.h>
using namespace std; // Підключення бібліотек С++
int main () 
{
int random1;
int random2;
int kluch;
int chislo; //Введення змінних
 
 
cout << "Vvedit kluch" << endl; // Вивід на екран повідомлення
cin >> kluch; // Введення ключа (цифра)
cout<<"Vaw kluch="<<kluch<<" Vvedite try zifry, yakymy bylo zashyfrovano vashe povidomlennya"<<endl; //Вивід на екран повідомлення
 
cin >> random1;
cin >> random2;
cin >> chislo; // Введення шифра(цифри), який потрібно розшифрувати
 
 
if(chislo==1)
cout<< "Rasshifrovanyi text: a"<<endl;
if(chislo==2)
cout << "Rasshifrovanyi text: b"<<endl;
if(chislo==3)
cout<<"Rasshifrovanyi text: c"<<endl;
if(chislo==4)
cout<<"Rasshifrovanyi text: d"<<endl;
if (chislo==5)
cout << "Rasshifrovanyi text: e"<<endl;
if (chislo==6)
cout << "Rasshifrovanyi text: f"<<endl;
if (chislo==7)
cout << "Rasshifrovanyi text: g"<<endl;
if (chislo==8)
cout << "Rasshifrovanyi text: h"<<endl;
if (chislo==9)
cout << "Rasshifrovanyi text: i"<<endl;
if (chislo==10)
cout << "Rasshifrovanyi text: j"<<endl;
if (chislo==11)
cout << "Rasshifrovanyi text: k"<<endl;
if (chislo==12)
cout << "Rasshifrovanyi text: l"<<endl;
if (chislo==13)
cout << "Rasshifrovanyi text: m"<<endl;
if (chislo==14)
cout << "Rasshifrovanyi text: n"<<endl;
if (chislo==15)
cout << "Rasshifrovanyi text: o"<<endl;
if (chislo==16)
cout << "Rasshifrovanyi text: p"<<endl;
if (chislo==17)
cout << "Rasshifrovanyi text: q"<<endl;
if (chislo==18)
cout << "Rasshifrovanyi text: r"<<endl;
if (chislo==19)
cout << "Rasshifrovanyi text: s"<<endl;
if (chislo==20)
cout << "Rasshifrovanyi text: t"<<endl;
if (chislo==21)
cout << "Rasshifrovanyi text: u"<<endl;
if (chislo==22)
cout << "Rasshifrovanyi text: v"<<endl;
if (chislo==23)
cout << "Rasshifrovanyi text: w"<<endl;
if (chislo==24)
cout << "Rasshifrovanyi text: x"<<endl;
if (chislo==25)
cout << "Rasshifrovanyi text: y"<<endl;
if (chislo==26)
cout << "Rasshifrovanyi text: z"<<endl;
if (chislo>26)
cout << "Vy vvelu nevirnuy kod, perezapystit programmy i vvedit novyi kod"<<endl;
else
cout<< "Text rasshifrovano!" <<endl;
system ("pause") ;
return 0;
}
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
12.06.2016, 16:56 20
Массив где?
C++
1
char *arr[] = {"один", "два"};
Ищешь по нему циклом, нашёл - запоминаешь индекс, это и будет код.
0
12.06.2016, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2016, 16:56

Как реализовать генерацию рандомных чисел в заданном диапазоне?
Я Хочу Сделать Генерацию Рандомный Чисел В Заданном Диапазоне ну например от...

Используя функции сформировать с помощью генератора случайных чисел двумерный массив и вывести его на экран
Используя функции сформировать с помощью генератора случайных чисел двумерный...

Как реализовать генерацию псевдослучайных чисел по равномерному и гауссовому распределениям?
Собственно, вопрос в названии. Как реализовать генерацию псевдослучайных чисел...


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

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

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