Uses Crt; var i,n:integer; a,s:real; begin Writeln('Вычисление среднего арифметического'); Writeln('последовательности действительных чисел'); Write('Введите количество чисел последовательности ->'); Readln(n); Writeln('Введите последовательность. После ввода каждого числа нажмите Enter'); s:=0; for i:=1 to n do begin Read(a); s:=s+a end; Writeln('Среднее арифметическое введенной последовательности: ',s/n); Write('Для завершения работы программы нажмите Enter'); Readkey end.
Тестовое решение: Вычисление среднего арифметического последовательности действительных чисел Введите количество чисел последовательности ->5 Введите последовательность. После ввода каждого числа нажмите Enter 5.4 7.8 3.0 1.5 2.3 Среднее арифметическое введенной последовательности: 4 Для завершения работы программы нажмите Enter
Для версии Pascal.ABC.Net: var i,n:integer; a,s:real; begin Writeln('Вычисление среднего арифметического'); Writeln('последовательности действительных чисел'); Write('Введите количество чисел последовательности ->'); Readln(n); Writeln('Введите последовательность. После ввода каждого числа нажмите Enter'); s:=0; for i:=1 to n do begin Read(a); s:=s+a end; Writeln('Среднее арифметическое введенной последовательности: ',s/n) end.
Каждая из компонент связности должна быть кликой (иначе говоря, каждые две вершины в одной компоненте связности должны быть связаны ребром). Если в i-ой компоненте связности вершин, то общее число рёбер будет суммой по всем компонентам связности:
Требуется найти максимум этого выражения (т.е. на самом деле - максимум суммы квадратов) при условии, что сумма всех ni равна N и ni - натуральные числа.
Если K = 1, то всё очевидно - ответ N(N - 1)/2. Пусть K > 1.
Предположим, n1 <= n2 <= ... <= nK - набор чисел, для которых достигается максимум, и n1 > 1. Уменьшим число вершин в первой компоненте связности до 1, а оставшиеся вершины "перекинем" в K-ую компоненту связности. Вычислим, как изменится сумма квадратов:
Поскольку по предположению n1 > 1 (тогда и nK > 1), то сумма квадратов увеличится, что противоречит предположению о том, что на выбранном изначально наборе достигается максимум. Значит, максимум достигается, если наименьшая по размеру компонента связности - изолированная вершина. Выкинем эту компоненту связности, останутся K - 1 компонента связности и N - 1 вершина. Будем продолжать так делать, пока не останется одна вершина, тогда получится, что во всех компонентах связности кроме последней должно быть по одной вершине.
Crt;
var
i,n:integer;
a,s:real;
begin
Writeln('Вычисление среднего арифметического');
Writeln('последовательности действительных чисел');
Write('Введите количество чисел последовательности ->');
Readln(n);
Writeln('Введите последовательность. После ввода каждого числа нажмите Enter');
s:=0;
for i:=1 to n do
begin
Read(a);
s:=s+a
end;
Writeln('Среднее арифметическое введенной последовательности: ',s/n);
Write('Для завершения работы программы нажмите Enter');
Readkey
end.
Тестовое решение:
Вычисление среднего арифметического
последовательности действительных чисел
Введите количество чисел последовательности ->5
Введите последовательность. После ввода каждого числа нажмите Enter
5.4
7.8
3.0
1.5
2.3
Среднее арифметическое введенной последовательности: 4
Для завершения работы программы нажмите Enter
Для версии Pascal.ABC.Net:
var
i,n:integer;
a,s:real;
begin
Writeln('Вычисление среднего арифметического');
Writeln('последовательности действительных чисел');
Write('Введите количество чисел последовательности ->');
Readln(n);
Writeln('Введите последовательность. После ввода каждого числа нажмите Enter');
s:=0;
for i:=1 to n do
begin
Read(a);
s:=s+a
end;
Writeln('Среднее арифметическое введенной последовательности: ',s/n)
end.
Требуется найти максимум этого выражения (т.е. на самом деле - максимум суммы квадратов) при условии, что сумма всех ni равна N и ni - натуральные числа.
Если K = 1, то всё очевидно - ответ N(N - 1)/2. Пусть K > 1.
Предположим, n1 <= n2 <= ... <= nK - набор чисел, для которых достигается максимум, и n1 > 1. Уменьшим число вершин в первой компоненте связности до 1, а оставшиеся вершины "перекинем" в K-ую компоненту связности. Вычислим, как изменится сумма квадратов:
Поскольку по предположению n1 > 1 (тогда и nK > 1), то сумма квадратов увеличится, что противоречит предположению о том, что на выбранном изначально наборе достигается максимум. Значит, максимум достигается, если наименьшая по размеру компонента связности - изолированная вершина. Выкинем эту компоненту связности, останутся K - 1 компонента связности и N - 1 вершина. Будем продолжать так делать, пока не останется одна вершина, тогда получится, что во всех компонентах связности кроме последней должно быть по одной вершине.
Итак, должно выполняться
Подставив в исходную формулу, получаем
Это и есть ответ.