0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 14
1

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

03.11.2010, 05:21. Показов 7211. Ответов 8
Метки нет (Все метки)

извините, я новичок на форуме и не знаю куда податься
дана задача:
задается таблица:
x| x1 | x2 | x3 | xn |x++... |
p| p1 | p2 | p3 | pn |p++... |
Найти: математическое ожидание, дисперсию, и среднее квадратичное
отклонение- это все я реализовал ;
но не могу додуматься как реализовать:
сумма p(вероятностей) всегда должна равнятся 1; если один из элементов не известен , то его необходимо найти по формуле (1 - (сумма известных вероятностей)), т.е если P|P1|P2|P3=?| то P3=1-(P1+P2); Как это сделать?
Помогите, пожалуйста!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2010, 05:21
Ответы с готовыми решениями:

Вычислить математическое ожидание, дисперсию и среднеквадратичное отклонение случайной величины
Пусть массив X(N) - массив возможных значений некоторых случайных величин. Составить подпрограмму,...

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

Найти математическое ожидание, дисперсию и среднее квадратичное отклонение случайной величины - числа выстрелов
помогите с решением задач, пожалуйста. 1. Производится стрельба по некоторой цели до первого...

Вычислить математическое ожидание, дисперсию, среднее квадратичное отклонение
1) Производится три выстрела по мишени. Вероятность поражения мишени первым выстрелом равна 0,4;...

8
134 / 87 / 22
Регистрация: 28.08.2009
Сообщений: 363
03.11.2010, 06:00 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
printf("vvedite nomer neizvestnogo elementa p");
    scanf("%f",&f);
    float sum = 0;
    for(int i=0; i<n; i++)
    {
        if(i==f-1)
        {
            continue;
        }
        else
        {
            sum += p[i]; 
        }
    }
    float res = 1-sum;
    printf("neizvestni element = %f", res);
n - количество элементов p
f - номер элемента, который нужно вычислить
1
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 14
03.11.2010, 06:17  [ТС] 3
спасибо, попробую
0
Эксперт С++
5825 / 3476 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
03.11.2010, 17:45 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
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;
}
1
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 14
07.11.2010, 23:45  [ТС] 5
конечно спасибо, только мне в этом еще разбираться и разбираться)

Добавлено через 2 часа 47 минут
а по проще нельзя:?)
0
Эксперт С++
5825 / 3476 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
08.11.2010, 03:36 6
Цитата Сообщение от hisp Посмотреть сообщение
а по проще нельзя:?)
конечно можно! См. второй пост этой темы
0
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 14
08.11.2010, 21:45  [ТС] 7
у меня так получилось
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
int main()
{
  int i;
  int n;
  float sum=0;
  float st=0;
  cout << "vvedite kol-vo znach p:";
  cin >> n;
  float p[n];
  for (i=0;i<n;i++) 
  { 
        cout << "P" << i << "=";
        cin >> p[i];
  }
  for (i=0;i<n;i++)
  {
         if (p[i]!=0)
        {
              sum+=p[i];
              
        }
        
 } 
st=1-sum;
cout << st;
}
0
134 / 87 / 22
Регистрация: 28.08.2009
Сообщений: 363
09.11.2010, 02:09 8
так получается, что у тебя вероятности, равной нулю вообще не бывает
0
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 14
09.11.2010, 20:35  [ТС] 9
ну в общем да, только у препода спросил, сказал ничего страшного все равно в учебниках не дают такого, чтобы для этой задачи вероятность была нулевая
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2010, 20:35
Помогаю со студенческими работами здесь

Найти среднее квадратичное отклонение, математическое ожидание и функцию распределения
2. Случайная величина Х распределена в интервале (0,5) задана плотностью f(x)= (2/25)x. Найти F(x),...

Найти математическое ожидание, дисперсию и среднее квадратическое отклонение
2)Найти математическое ожидание, дисперсию и среднее квадратическое отклонение числа бракованных...

Найти математическое ожидание, дисперсию, среднее квадратическое отклонение
задан закон распределения дискретной случайной величины Х (в первой строке указаны возможные...

Найти математическое ожидание, дисперсию и среднее квадратическое отклонение
Здравствуйте! Вот такая задача :) Правила форума :rtfm: 5.18. Запрещено размещать задания и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru