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

Найти математическое ожидание, дисперсию, и среднее квадратичное - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация дека через список http://www.cyberforum.ru/cpp-beginners/thread185579.html
надо реализовать дек через список.очевидно что список должен быть двунаправленным а)как проверить является ли пустой голова/хвост? делал так list *head; ...... if (head==null) ругается на null
C++ хеш-таблица как в хеш таблице на си/си++ мне указать таблицу сегментов?(массив содержащий коды) typedef struct spis { int val; spis *next; } http://www.cyberforum.ru/cpp-beginners/thread185577.html
Построчное чтение из файла C++
такая проблема есть фаил в нем записана информация: 10 Петров А.Л. Сон 1991 4 51 Сидоров В.О. Луна 1970 5 ....... мне нужно считать первую строчку с пробелами передать ее в функцию потом считать вторую так же ..ну и продолжать до конца файла. как это сделать ? Добавлено через 5 минут Попробовал сделать так:
C++ Как в С сделать проверку на вхождение в диапазон?
Добрый вечер! Появился вопросик. Как в С сделать проверку на вхождение в диапазон. ну например входит ли символ из чаровского массива в диапазон от '0' до '9'. или же от А до Z
C++ Функция пользователя http://www.cyberforum.ru/cpp-beginners/thread185558.html
Ребят помогите с задачей плиз!! Функция выделяет с заданого рядка подрядок заданной длины, начиная с заданой позиции. Помогите написать прогу !!
C++ Поменять местами серию с минимальной длиной с последней серией в массиве Задан целочисленный массив размера N. Поменять местами серию с минимальной длиной с последней серией в массиве. Если минимальных серий несколько, то только первую из них. (прога не закончена.сам закончу потом) не выводит последнюю серию элементов #include <iostream> подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
03.11.2010, 17:45     Найти математическое ожидание, дисперсию, и среднее квадратичное
Можно вот так:
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <iostream>
#include <stdexcept>
#include <deque>
#include <cmath>
 
const double eps = .0001;
 
class prob
{
    double  p;
    bool    defined;
 
public:
    prob()
        : p ( 0 ), defined ( false ) {}
 
    prob ( double _p )
    {
        define ( _p );
    }
 
    void define ( double _p )
    {
        if ( ( _p > 1 ) || ( _p < 0 ) )
            throw std::domain_error ( "Illegal value" );
        p = _p;
        defined = true;
    }
 
    void undef()
    {
        p = 0;
        defined = false;
    }
 
    bool isDefined() const
    {
        return defined;
    }
 
    double value() const
    {
        if ( !defined )
            throw std::logic_error ( "Value is not defined" );
 
        return p;
    }
 
    friend std::ostream& operator << ( std::ostream& os, const prob& rhs )
    {
        if ( rhs.defined )
            os << rhs.p;
        else
            os << "<undef>";
        return os;
    }
};
 
bool lookupAndSet ( std::deque<prob>& ps )
{
    std::deque<prob>::iterator it = ps.begin();
    while ( ( it != ps.end() ) && it->isDefined() )
        ++it;
 
    // Если нашли неопределенное значение
    if ( it != ps.end() )
    {
        double undefValue = 1;
        for ( std::deque<prob>::const_iterator i = ps.begin(); i != ps.end(); ++i )
            if ( i != it )
                undefValue -= i->value();
 
        if ( undefValue < 0 )
            throw std::domain_error ( "Illegal value" );
 
        it->define ( undefValue );
        return true;
    }
    else // Если все значения известны
    {
        // Проверяем, равна ли сумма вероятностей единице
        double sum = 0;
        for ( std::deque<prob>::const_iterator i = ps.begin(); i != ps.end(); ++i )
            sum += i->value();
        if ( fabs ( sum - 1 ) > eps )
            return false;
        return true;
    }
}
 
int main()
{
    int i;
    std::deque<prob>::const_iterator it;
 
    std::deque<prob> w;
 
    w.push_back ( prob ( .3 ) );
    w.push_back ( prob ( .027 ) );
    w.push_back ( prob( ) );
    w.push_back ( prob ( .42 ) );
    w.push_back ( prob ( .011 ) );
 
    // Печать вероятностей до установки неизвестной
    std::cout << "The given probabilities:" << std::endl;
    for ( it = w.begin(), i = 0; it != w.end(); ++it, ++i )
        std::cout << "p[" << i << "] = " << *it << std::endl;
 
    if ( !lookupAndSet ( w ) )
    {
        std::cerr << "Error: sum of probabilities is more than 1" << std::endl;
        std::cerr << "The execution is aborting..." << std::endl;
        return 1;
    }
 
    std::cout << std::endl <<
              "The probabilities after lookup:" << std::endl;
    // Печать вероятностей после установки неизвестной
    for ( it = w.begin(), i = 0; it != w.end(); ++it, ++i )
        std::cout << "p[" << i << "] = " << *it << std::endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru