Задача.
Даны действительные числа [latex]a_{1},\ldots,a_{k}[/latex]. Получить [latex]\sqrt{\frac{\sum\limits_{i=1}^{k}(a_{i}-\tilde{a})^{2}}{k-1}},[/latex] где [latex]\tilde{a}=\frac{1}{k}\sum\limits_{i=1}^{k}a_{i}.[/latex]
Тесты
input | [latex]\tilde{a}[/latex] | [latex]\sqrt{\frac{\sum\limits_{i=1}^{k}(a_{i}-\tilde{a})^{2}}{k-1}}[/latex] | Комментарий |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 8 |
4.4712
|
Пройдено |
2 8 3 4 5 6 7 9 11 15 17 12 19 7 5 1 7 9 19 14 | 9 |
6.35834659 |
Пройдено |
3 3 3 3 3 0 0 0 5 5 5 15 15 15 15 | 6 | 5.8554 | Пройдено |
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 |
#include <iostream> #include <vector> #include <cmath> using namespace std; int main() { double a=0,s=0,z; int y; vector<int> x; while(cin>>z){ x.push_back(z); } for (int i=0;i<x.size();i++){ a+=x[i]; } a=a/x.size(); for (int i=0;i<x.size();i++){ s=s+(a-x[i])*(a-x[i]); } s=s/(x.size()-1); s=sqrt(s); cout<<a<<" "; cout<<s<<" "; return 0; } |
Решение
- Заполняем вектор действительными числами
- Считаем их сумму (с помощью цикла прибавляем каждый элемент вектора).
- Находим значение [latex]\tilde{a}[/latex].
- Находим сумму под корнем второй формулы через цикл (аналогично п.2)
- Производим необходимые арифметические операции для нахождения значения второй формулы.
- Вывод значений.
Ссылка на код
В Ваших обозначениях 15 — это [latex]k[/latex], а 14 — [latex]k-1[/latex].
Исправьте, пожалуйста везде в формулах и программе.
Все исправил, спасибо.
Поправьте, пожалуйста отступы.
поправил, спасибо.
Молодец, продолжайте.