Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
Алёнка1990
1

Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов

19.11.2012, 11:34. Показов 4942. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов

Добавлено через 12 минут
Дан массив задающийся рандомно. Размерность массива от -50 до + 50
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2012, 11:34
Ответы с готовыми решениями:

Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов
Нужно найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение...

Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение.
Помогите пожалуйста решить задачу, очень нужно В квадратной матрице A(m,n) рассмотреть...

Найти непрерывный участок из 10 элементов, сумма которых максимальна
Найти непрерывный участок из 10 элементов, сумма которых максимальна. Если размерность массива 200,...

Найти непрерывный участок из 10 элементов, сумма которых максимальная
Задание такое: Найти непрерывный участок из 10 элементов, сумма которых максимальная. Нельзя...

7
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.11.2012, 11:59 2
Цитата Сообщение от Алёнка1990 Посмотреть сообщение
который имеет наибольшее среднее значение элементов
А можно объяснить как это? Ну например для такой последовательности 14 -42 35 2 23 -16 -38 42 -36 26 36 5 -7 -7 -32 7 -49 32 12 -32 ?
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
19.11.2012, 12:05 3
yuron_477, сумма десяти последовательных элементов должна быть максимальна. Надо реализовать скользящее суммирование.
Алёнка1990, что значит размерность от -50? Может значения в массиве от -50?
0
Алёнка1990
19.11.2012, 12:39 4
Да значение в массиве от -50

Добавлено через 32 минуты
grizlik78, Да значение в массиве от -50
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
19.11.2012, 12:56 5
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
#include "conio.h"
#include "stdio.h"
#include "math.h"
#include "time.h"
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <numeric>
#include <ctime>
 
int sum(int *a)
{
    int res=0;
    for (int i = 0; i < 10; i++)
    {
        res += a[i];
    }
    return (int)(res/2);
}
 
int main()
{
    ::std::srand((unsigned int)::std::time(NULL));
    const int N = 1000;
    int a[N] = { 0 };
         for ( int i = 0 ; i < N ; i++ )
        {
            a[i] = ::std::rand()%100-50;
             ::std::cout << a[i] << ::std::endl;
        }
        int saveI, saveMax = 0;
        for (int i = 0 ; i < N-10 ; i++ )
        {
            if (sum(&a[i]) > saveMax || i == 0)
            {
                saveI = i;
                saveMax = sum(&a[i]);
            }
        }
        for ( int  j = saveI ; j < saveI+ 10 ; j++ )
        {
            ::std::cout << j << " " << a[j] << ::std::endl;
        }
        ::std::cout << "среднее " << saveMax << ::std::endl;
}
может есть более продвинутые способы для решения этой задачки

Добавлено через 1 минуту
PS если всё правильно с тебя мощный магнитик
0
54 / 54 / 10
Регистрация: 26.09.2011
Сообщений: 186
19.11.2012, 12:58 6
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
 
using namespace std;
 
const int N = 100; //число элементов массива
const int n = 10;  //длина последвательности
 
int main()
{
    srand((unsigned)time(NULL));
    int arr[N] = {0};
    int _i = 0;
    
    float res = -1000;
    
    cout << "Given: \n";
    for(int i = 0; i < N; i++) {
        if(!(i%10)) cout << endl;//по 10 элементов в строке (для вывода)
        arr[i] = rand()%102-51;
        cout << setw(4) << arr[i];
    }
    cout << endl;
    for(int i = 0; i < N - n; i++) {
        float tmp = 0;
        for(int j = i; j < i+n; j++) {
            tmp += arr[j];
        }
        tmp /= n;   //ср арифметическое
        if(tmp > res) {
            res = tmp;
            _i = i;
        }
    }
    cout << endl;
    for(int i = _i, j = 1; i < _i+n; i++, j++ ) {
        cout << "arr[" << i << "] = " << arr[i] << endl;
    }
    cout << "Result: from i[" << _i << "] to i[" << _i+n-1<< "] = " << res << endl;
}
1
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
19.11.2012, 13:08 7
XRuZzz, почему тут
Цитата Сообщение от XRuZzz Посмотреть сообщение
return (int)(res/2);
А вообще да, можно было решить оптимальнее.
Во-первых, не считать среднее арифметическое, а ограничится только суммой. И дальше сравнивать сумму.
Во-вторых, посчитать сумму один раз, а затем вычитать из нее крайний левый элемент и добавлять новый элемент справа
2
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
19.11.2012, 13:11 8
ясно
Цитата Сообщение от I.M. Посмотреть сообщение
XRuZzz, почему тут
тсссс

PS почему? почему! по невнимательности
0
19.11.2012, 13:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2012, 13:11
Помогаю со студенческими работами здесь

Найти непрерывный участок из 10 элементов последовательности, сумма которых максимальна
Добрый вечер. Массив из 200 элементов с диапазоном 50 - 200, заполнение по рандому. Найти...

Найти непрерывный участок массива, в котором сумма положительных элементов максимальна
Решите подобную задачу: Создать массив целых чисел и заполнить его случайными значениями....

Как найти непрерывный участок элементов массива, сумма которых максимальна?
Нужно найти непрерывный участок массива из 10 элементов, сумма которых максимальная, и всё это...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru