Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
S1lentZ0mb1E
1 / 1 / 2
Регистрация: 16.12.2009
Сообщений: 32
1

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

05.02.2010, 18:04. Просмотров 1526. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста с этой программой, я ни как не могу понять как ее зделать.

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

Среда разработки: С++
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 18:04
Ответы с готовыми решениями:

Генерация случайных чисел
#include <stdio.h> #include <conio.h> #include <clocale> #include <time.h>...

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

генерация случайных чисел
полазил по форумам, понял что лучшей конструкцией для ввода случайных чисел...

Генерация случайных чисел
Как в С сгенирировать последовательность случайных чисел от x до y.Например от...

Генерация случайных чисел
Здрасти. В общем нужно сгенерировать случайное число никак ни связанное с...

4
Tani
25 / 25 / 3
Регистрация: 27.12.2009
Сообщений: 82
05.02.2010, 20:03 2
Три массива? Функцию написать?
0
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";
1
Андрейка
422 / 226 / 87
Регистрация: 25.03.2009
Сообщений: 744
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;
 
}
1
S1lentZ0mb1E
1 / 1 / 2
Регистрация: 16.12.2009
Сообщений: 32
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();
 
}
//---------------------------------------------------------------------------
0
06.02.2010, 01:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2010, 01:18

Генерация случайных чисел
Здравствуйте! Мне нужно сгенерировать случайные числа, много и за секунду или...

Генерация случайных чисел
Подскажите пожалуйста правильно ли я осуществил перевод строк из С в С++,...

Генерация случайных чисел
Для генерации случайных чисел использую выражение: x = rand() % 4; ...


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

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

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