+ 4

# [SOLVED] Basketball players problem

import statistics players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] statistics.stdev(players) # std is 11.1 , mean is 189.2 So, I need to output how many players are between (189.2 - 11.1) to (189.2 + 11.1)

53 odpowiedzi

+ 89

The correct answer is:
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
mean = sum(players)/len(players)
stdvar = (sum((v-mean)**2 for v in players)/len(players))**0.5
low, high = mean-stdvar,mean+stdvar
count = len([v for v in players if low < v < high])
print(count)

+ 13

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
import numpy as np
mean = np.mean(players)
standard_deviation = np.std(players)
variance = np.var(players)
result = 0
for i in players:
if i >= mean-standard_deviation and i <= mean+standard_deviation:
result += 1
print(result)

+ 11

import numpy as np
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
data = np.array(players)
m = np.mean(data)
std = np.std(data)
under = m - std
above = m + std
fit = data[(data>under) & (data<above)]
print(len(fit))

+ 4

yes, you must loop over the array and count how many values matches the conditions ;)
finally, just output the count...

+ 4

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
mean = sum(players) / len(players)
std = (sum([(i - mean) ** 2 for i in players]) / len(players)) ** 0.5
print(len(list(filter(lambda x: mean - std < x < mean + std, players))))

+ 3

All it was wrriten was just :”players = [180,172,178,185,190,195,192,200,210,190]
My code is : import statistics
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
mean = (180 + 172 + 178 + 185 + 190 + 195 + 192 + 200 + 210 + 190) / 10
statistics.stdev(players)
So, I know the mean and the std, all I have to do now is to check how many players are in that range... like I have to use smth like for players in range... idk...any idea?

+ 1

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
mean = sum(players)/len(players)
std = (sum((height-mean)**2 for height in players)/len(players))**0.5
high = mean+std
low=mean-std
total = len([height for height in players if low < height < high])
print(total)

+ 1

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
total=0
mean=0
for player in players:
total=total + player
mean=total/len(players)
squared_differences = [ (player-mean)**2 for player in players ]
total_squared_differences=0
for squared_difference in squared_differences:
total_squared_differences=total_squared_differences + squared_difference
variance=total_squared_differences/len(players)
standard_deviation=variance**0.5
low, high = mean-standard_deviation,mean+standard_deviation
count = len([player for player in players if low < player < high])
print(count)

+ 1

This is how I solved it:
import math
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
mean = sum(players)/len(players)
total = 0
for x in players:
x = (x-mean)**2
total += x
avgresult = total/len(players)
std_dev = math.sqrt(avgresult)
results = 0
for p in players:
if mean-std_dev < p and mean+std_dev > p:
results = results + 1
print(results)

0

well, you're right...
where is your coding attempt?
we need to see what you've tried so far to be able to help ^^

0

Thank You!

0

Coalemus because your for loop should throw an error, as you're trying to iterate in a range of float (decimal) values, while it expect intergers (whole numbers)...
anyway, you should post your own question to be helped further ^^

0

Oh my bad, thanks anyway!

0

kensy Nicolle Gutierrez Flores kindly stop spamming others threads, and rather post your own question in a brand new thread, by following the Q&A guidelines (accurate and short title, useful tags and explanation of your specific problem in the description field with your code attempt provided)...

0

The given code includes a list of heights for various basketball players.
You need to calculate and output how many players are in the range of one standard deviation from the mean.
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
mean=sum(players)/len(players)
var=sum((x-mean)**2 for x in players)
std=var**0.5
for players in range(int(mean-std),int(mean+std)):
print(players)
what might be the issue with this code??

0

mine says indent 2

0

import math
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
sum = 0
for nums in players:
sum+=nums
mean = sum / len(players)
new_list = []
for i in players:
new_list.append(mean-i)
new_sum = 0
for k in new_list:
new_sum+=k**2
variance = new_sum/len(players)
deviation = math.sqrt(variance)
#print(variance)
#print(deviation)
#print(round(variance))
#print(round(deviation))
range1 = mean - deviation
range2 = mean + deviation
num_players = []
for j in players:
if j in range(round(range1),round(range2)):
num_players.append(j)
else:
pass
print(len(num_players))
This is my answer you can check it out

0

My way:
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
sum =0
count = 0
count1 = 0
sum_sqr = 0
for i in players:
sum += i
count += 1
mean = sum / count
for i in players:
sqr = (mean-i)**2
sum_sqr += sqr
var = sum_sqr / count
std = var**(1/2)
for i in players:
raz1 = mean - std
raz2 = mean + std
if (i > raz1 and i < raz2):
count1 += 1
print(int(count1))

0

# Simple and for beginners and maths lovers
players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
x = 0
y = 0
z = 0
for p in players:
y += p
m = y/len(players)
for p in players :
z = z + (p - m)**2
s = (z/len(players))**(1/2)
for p in players :
if p > m - s and p < m + s :
x += 1
print(x)

0

Doing it without the statistics module, I solved it with:
from math import sqrt
data = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190]
mean = sum(data) / len(data)
pre_variance = list(map(lambda number: (number - mean) * (number - mean), data))
variance = sum(pre_variance) / len(pre_variance)
std = sqrt(variance)
result = list(filter(lambda number: number > (mean - std) and number < (mean + std), data))
print(len(result))