
Patrick B. answered 01/30/21
Math and computer tutor/teacher
import math
#returns: mean,min,max,variance,stdDev
def CalcStats( stats):
results = []
N = len(stats)
print('N=' + str(N))
sum=0
max=-math.inf
min=math.inf
for i in range(int(N)):
sum = sum + float(stats[i])
if float(stats[i])<min:
min = float(stats[i])
if float(stats[i])>max:
max = float(stats[i])
print('sum=' + str(sum))
mean = float(sum)/int(N)
results.append(mean)
results.append(min)
results.append(max)
return results
def Variance(A,meanAvg,n):
Variances = []
sumDevSqr=0
sumXSqr=0
sumDev=0
print(' X devX dev^2 X^2 ')
for i in range(int(n)):
X = float(A[i])
deviation = float(X)-float(meanAvg)
deviationSquared = float(deviation)*float(deviation)
xSqr = float(X) * float(X)
sumDevSqr = float(sumDevSqr) + float(deviationSquared)
sumXSqr = float(sumXSqr) + float(xSqr)
sumDev = float(sumDev) + float(deviation)
print(' ' + str(X) + ' ' + str(deviation) + ' '
+ str(deviationSquared) + ' ' + str(xSqr))
print('-----------------------------------------')
xSum = float(meanAvg)*int(n)
print(str(xSum) + ' ' + str(sumDev) + ' ' + str(sumDevSqr) + ' ' + str(sumXSqr))
varByDef = float(sumDevSqr)/(int(n)-1)
varByShortcut = (float(sumXSqr) - int(n)*float(meanAvg)*float(meanAvg))/(n-1)
Variances.append(varByDef)
Variances.append(varByShortcut)
return Variances
#-----------------------------------
A=[2,5,8,11,13,15,17,20]
results = CalcStats(A)
print(results)
meanAvg = results[0]
print('mean average = ' + str(meanAvg))
print(' min = ' + str(results[1]))
print(' max = ' + str(results[2]))
variances = Variance(A,meanAvg,8)
print('variance = ')
print(variances)
stndDev = math.sqrt(float(variances[0]))
print('standard deviation is ' + str(stndDev))