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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
S1lentZ0mb1E
 Аватар для S1lentZ0mb1E
1 / 1 / 1
Регистрация: 16.12.2009
Сообщений: 31
05.02.2010, 18:04     Генерация случайных чисел #1
Помогите пожалуйста с этой программой, я ни как не могу понять как ее зделать.

Написать программу, которая генерирует три последовательности
из десяти случайных чисел в диапазоне от 1 до 10, выводит
каждую последовательность на экран и вычисляет среднее арифметическое
каждой последовательности.

Среда разработки: С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 18:04     Генерация случайных чисел
Посмотрите здесь:

C++ Генерация случайных чисел
Генерация случайных чисел С++ C++
Генерация случайных чисел C++
C++ Генерация случайных чисел
C++ Генерация случайных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tani
25 / 25 / 1
Регистрация: 27.12.2009
Сообщений: 82
05.02.2010, 20:03     Генерация случайных чисел #2
Три массива? Функцию написать?
Grayswandir
 Аватар для Grayswandir
10 / 10 / 1
Регистрация: 05.02.2010
Сообщений: 12
05.02.2010, 20:22     Генерация случайных чисел #3
Как один из вариантов решения:

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
#include <iostream>
#include <windows.h> 
#include <stdlib.h>
#include <conio.h>
using namespace std;
 
void main()
{
    setlocale (LC_CTYPE, ".1251");
 
    int x, i, j; 
    double srednee_arifm, sum=0;
 
    srand (GetTickCount());
    
    for (i=0; i<3; i++)
    {
        for (j=0; j<10; j++)
        {
            x = rand () % 10 + 1;
            sum+=x;
            cout << x << " --> ";
        }
        srednee_arifm = sum/10;
        cout << "\nСреднее арифметическое чисел последовательности равно: " << srednee_arifm << "\n\n";
        sum=0;
        _getch();
    }
    cout << "\n\n";
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
05.02.2010, 21:00     Генерация случайных чисел #4
S1lentZ0mb1E,
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 <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <numeric>
 
struct RND
{
    RND(int L, int H) : low(L), high(H)
    {}
 
    int operator()() const
    {
        return low + (rand() % ((high - low) + 1));
    }
 
private:
    int low;
    int high;
};
 
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
 
    const size_t N = 10;
    srand(static_cast <unsigned int> (clock()));
 
    std::vector <int> _VEC1(N);
    std::vector <int> _VEC2(N);
    std::vector <int> _VEC3(N);
 
    const size_t LOW = 1;
    const size_t HIGH = 10;
 
    std::generate(_VEC1.begin(), _VEC1.end(), RND(LOW,HIGH));
    std::generate(_VEC2.begin(), _VEC2.end(), RND(LOW,HIGH));
    std::generate(_VEC3.begin(), _VEC3.end(), RND(LOW,HIGH));
 
    std::ostream_iterator <int> _ITER(std::cout," ");
 
    std::cout << "первая последовательность: ";
    std::copy(_VEC1.begin(), _VEC1.end(), _ITER);
    std::cout << std::endl;
 
    std::cout << "вторая последовательность: ";
    std::copy(_VEC2.begin(), _VEC2.end(), _ITER);
    std::cout << std::endl;
 
    std::cout << "третья последовательность: ";
    std::copy(_VEC3.begin(), _VEC3.end(), _ITER);
    std::cout << std::endl;
 
    const double NOL = 0.0;
 
    double first =  std::accumulate(_VEC1.begin(), _VEC1.end(), NOL) / N;
    double second = std::accumulate(_VEC2.begin(), _VEC2.end(), NOL) / N;
    double third =  std::accumulate(_VEC3.begin(), _VEC3.end(), NOL) / N;
 
    std::cout << "ср ар first:  " << first  << std::endl;
    std::cout << "ср ар second: " << second << std::endl;
    std::cout << "ср ар third:  " << third  << std::endl;
 
    return 0;
 
}
S1lentZ0mb1E
 Аватар для S1lentZ0mb1E
1 / 1 / 1
Регистрация: 16.12.2009
Сообщений: 31
06.02.2010, 01:18  [ТС]     Генерация случайных чисел #5
Цитата Сообщение от Андрейка Посмотреть сообщение
S1lentZ0mb1E,
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 <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <numeric>
 
struct RND
{
    RND(int L, int H) : low(L), high(H)
    {}
 
    int operator()() const
    {
        return low + (rand() % ((high - low) + 1));
    }
 
private:
    int low;
    int high;
};
 
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
 
    const size_t N = 10;
    srand(static_cast <unsigned int> (clock()));
 
    std::vector <int> _VEC1(N);
    std::vector <int> _VEC2(N);
    std::vector <int> _VEC3(N);
 
    const size_t LOW = 1;
    const size_t HIGH = 10;
 
    std::generate(_VEC1.begin(), _VEC1.end(), RND(LOW,HIGH));
    std::generate(_VEC2.begin(), _VEC2.end(), RND(LOW,HIGH));
    std::generate(_VEC3.begin(), _VEC3.end(), RND(LOW,HIGH));
 
    std::ostream_iterator <int> _ITER(std::cout," ");
 
    std::cout << "первая последовательность: ";
    std::copy(_VEC1.begin(), _VEC1.end(), _ITER);
    std::cout << std::endl;
 
    std::cout << "вторая последовательность: ";
    std::copy(_VEC2.begin(), _VEC2.end(), _ITER);
    std::cout << std::endl;
 
    std::cout << "третья последовательность: ";
    std::copy(_VEC3.begin(), _VEC3.end(), _ITER);
    std::cout << std::endl;
 
    const double NOL = 0.0;
 
    double first =  std::accumulate(_VEC1.begin(), _VEC1.end(), NOL) / N;
    double second = std::accumulate(_VEC2.begin(), _VEC2.end(), NOL) / N;
    double third =  std::accumulate(_VEC3.begin(), _VEC3.end(), NOL) / N;
 
    std::cout << "ср ар first:  " << first  << std::endl;
    std::cout << "ср ар second: " << second << std::endl;
    std::cout << "ср ар third:  " << third  << std::endl;
 
    return 0;
 
}
Одна ошибка есть:

[C++ Error] Unit1.cpp(37): E2268 Call to undefined function 'clock'

Добавлено через 14 минут
Исправил ошибку. Андрейка огромное спасибо!!!!


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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream.h>
#include <vector.h>
#include <iterator.h>
#include <algorithm.h>
#include <cstdlib.h>
#include <ctime.h>
#include <numeric.h>
#include <conio.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
struct RND
{
int  clock;
        RND(int L, int H) : low(L), high(H)
        {}
 
        int operator()() const
        {
                return low + (rand() % ((high - low) + 1));
        }
 
private:
        int low;
        int high;
};
 
int main()
{
        setlocale(LC_ALL,"RUSSIAN");
 
        const size_t N = 10;
        srand(static_cast <unsigned int> (clock()));
 
        std::vector <int> _VEC1(N);
        std::vector <int> _VEC2(N);
        std::vector <int> _VEC3(N);
 
        const size_t LOW = 1;
        const size_t HIGH = 10;
 
        std::generate(_VEC1.begin(), _VEC1.end(), RND(LOW,HIGH));
        std::generate(_VEC2.begin(), _VEC2.end(), RND(LOW,HIGH));
        std::generate(_VEC3.begin(), _VEC3.end(), RND(LOW,HIGH));
 
        std::ostream_iterator <int> _ITER(std::cout," ");
 
        std::cout << "ïåðâГ*Гї ïîñëåäîâГ*òåëüГ*îñòü: ";
        std::copy(_VEC1.begin(), _VEC1.end(), _ITER);
        std::cout << std::endl;
 
        std::cout << "âòîðГ*Гї ïîñëåäîâГ*òåëüГ*îñòü: ";
        std::copy(_VEC2.begin(), _VEC2.end(), _ITER);
        std::cout << std::endl;
 
        std::cout << "òðåòüÿ ïîñëåäîâГ*òåëüГ*îñòü: ";
        std::copy(_VEC3.begin(), _VEC3.end(), _ITER);
        std::cout << std::endl;
 
        const double NOL = 0.0;
 
        double first =  std::accumulate(_VEC1.begin(), _VEC1.end(), NOL) / N;
        double second = std::accumulate(_VEC2.begin(), _VEC2.end(), NOL) / N;
        double third =  std::accumulate(_VEC3.begin(), _VEC3.end(), NOL) / N;
 
        std::cout << "Г±Г° Г*Г° first:  " << first  << std::endl;
        std::cout << "Г±Г° Г*Г° second: " << second << std::endl;
        std::cout << "Г±Г° Г*Г° third:  " << third  << std::endl;
 
        getch();
 
}
//---------------------------------------------------------------------------
Yandex
Объявления
06.02.2010, 01:18     Генерация случайных чисел
Ответ Создать тему
Опции темы

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