Печать
Категория: Param
Просмотров: 1404

Param5. Описать процедуру Smooth1(A, N), выполняющую сглаживание вещественного массива A размера N следующим образом: элемент \(A_K\) заменяется на среднее арифметическое первых K исходных элементов массива A. Массив A является входным и выходным параметром. С помощью этой процедуры выполнить пятикратное сглаживание данного массива A размера N, выводя результаты каждого сглаживания.

Решение на Python 3:

import random
import statistics
import copy

def Smooth1(Arr):
tmp = []
n = len(Arr)
for i in range(n):
x = Arr[:i+1]
tmp.append(statistics.mean(x))
return tmp

def Smooth11(arr):
n = len(arr)
for i in range(n-1):
arr[i+1] = (arr[i]*(i+1)+arr[i+1])/(i+2)

N = random.randrange(1,10)
A = [random.randrange(10) for e in range(N)]
B = A
print("Original A:", A)
for i in range(5):
A = Smooth1(A)
print("Smoothed A:", A)
print("Original B:", B)
for i in range(5):
Smooth11(B)
print("Smoothed B:", B)