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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Случайные числа в заданном диапазоне http://www.cyberforum.ru/cpp-beginners/thread92845.html
Подскажите как написать программу, которая генерирует последовательность из N случайных чисел в диапазоне от 1 до 10, выводит эти числа на экран и вычисляет их среднее арифметическое.
C++ Неожиданное окончание файла Требуется организовать побитовое чтение файла (формат .dat) и компоновка (перестановка 2-х бит) в массив. Написал код. Возникла проблема: происходит неожиданный конец файла (eof) при 85 кадре (1 кадр = чтение 2-х бит). При чтении того же самого файла и вместо fin >> x1 использовать fin.get(x1) конец происходит на 83 кадре. Причём эти прочтённые кадры соответсвуют действительности( проверенно при... http://www.cyberforum.ru/cpp-beginners/thread92839.html
C++ Конвертер (калькулятор)
Задача состоит в том, что на форме есть четыри Эдита и баттон,надо разработать программу которая бы конвертировала числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатиричную. В первом эдите вводиться десятичное число, жмется баттон и в остальных эдитах высвечиваються конвертированные в соответственные системы счисления результаты.
С++ Одномерные массивы C++
Парни помогите решить задачу в С++ Вот условие: Задана последовательность N вещественных чисел. Вычислить Si=корень квадратный(Xi-M)^2/N-1 где М — среднее арифметическое данной последовательности.
C++ Напечатать элементы массива в виде двух параллельных столбцов http://www.cyberforum.ru/cpp-beginners/thread92829.html
Выручайте, помогите решить задания... Самостоятельная работа №6 Задачи по теме «Одномерные массивы» 1.В одномерном массиве размещены: в первых элементах — значения аргумента, в следующих — соответствующие им значения функции. Напечатать элементы этого массива в виде двух параллельных столбцов (аргумент и значения функции). 2.Дан целочисленный массив с количеством элементов п. Сжать массив,...
C++ Указать те слова, которые содержат хотя бы одну букву k Помогите решить задачу что-бы зачёт получить Дана строка. Указать те слова, которые содержат хотя бы одну букву k. подробнее

Показать сообщение отдельно
S1lentZ0mb1E
 Аватар для S1lentZ0mb1E
1 / 1 / 1
Регистрация: 16.12.2009
Сообщений: 31
06.02.2010, 01:18  [ТС]     Генерация случайных чисел
Цитата Сообщение от Андрейка Посмотреть сообщение
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();
 
}
//---------------------------------------------------------------------------
 
Текущее время: 22:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru