[SOLVED] Basketball players problem | Sololearn: Learn to code for FREE!

+2

[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)

3/16/2021 12:05:57 PM

Kristo Kallfa

46 Answers

New Answer

+69

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)

+10

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)

+7

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...

+3

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))))

+2

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?

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))

0

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] mean=sum(players)/len(players) count=0 sum=0 for c in players: sum+=(c-mean)**2 variance=sum/len(players) std=(variance)**(1/2) a,b=mean-std,mean+std for c in players : if a<c<b: count+=1 print(count)

0

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] group =[] ae=[] mean=sum(players )/len(players ) for player in players : a = (player-mean)**2 ae.append(a) sd = (sum(ae)/len(ae))**0.5 upp = mean - sd down = mean +sd for bb in players: if bb in range(upp, down): group.append(bb) print(len(group )) please what is wrong with this code

0

import math players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] new_list = [] sum_of_players = 0 for i in players : sum_of_players += i mean_square_difference = (i-mean)**2 new_list.append(mean_square_difference) n = len(players ) mean = sum_of_players /n sum_of_newlist = 0 for j in new_list: sum_of_newlist += j mean_of_square_difference = sum_of_newlist/(n-1) variance = math.sqrt(mean_of_square_difference) print(variance) print(mean)