diff --git a/zad1/main.py b/zad1/main.py index 520f3d9..ad366ae 100644 --- a/zad1/main.py +++ b/zad1/main.py @@ -3,7 +3,6 @@ Komputerowa analiza danych Zadanie 1 Michał Leśniak 195642 """ -import math import locale locale.setlocale(locale.LC_ALL, '') @@ -26,7 +25,8 @@ def mean(lst): return sum/len(lst) -def median(lst, is_even): +def median(lst): + is_even = len(lst) % 2 == 0 return (lst[len(lst)//2-1]+lst[len(lst)//2])/2 if is_even else lst[len(lst)//2] @@ -34,25 +34,27 @@ def sample_standard_deviation(lst, lst_mean): sum = 0 for x in [(y-lst_mean)**2 for y in lst]: sum += x - return math.sqrt(sum/(len(lst)-1)) + return (sum/(len(lst)-1))**0.5 -def q1(lst, is_even, lst_median): - idx = len(lst)//2-1 if is_even else len(lst)//2+1 +def q1(lst, lst_median): + is_even = len(lst) % 2 == 0 + idx = len(lst)//2 if is_even else len(lst)//2+1 sorted_list = lst[:idx] if is_even: sorted_list.append(lst_median) - return median(sorted_list, is_even) + return median(sorted_list) - -def q3(lst, is_even, lst_median): +# +def q3(lst, lst_median): + is_even = len(lst) % 2 == 0 idx = len(lst)//2+1 if is_even else len(lst)//2 sorted_list = lst[idx:] if is_even: sorted_list.insert(0, lst_median) - return median(sorted_list, is_even) + return median(sorted_list) def min(lst): @@ -64,10 +66,10 @@ def max(lst): def calc_data(lst): - is_even = len(lst) % 2 == 0 lst_mean = mean(lst) - lst_median = median(lst, is_even) - return min(lst), lst_mean, sample_standard_deviation(lst, lst_mean), lst_median, q1(lst, is_even, lst_median), q3(lst, is_even, lst_median), max(lst) + lst_median = median(lst) + return min(lst), lst_mean, sample_standard_deviation(lst, lst_mean), lst_median, \ + q1(lst, lst_median), q3(lst, lst_median), max(lst) def calc_species_data(species): @@ -184,6 +186,7 @@ def main(): petal_width_list.append(float(petal_width)) species_dict[species] += 1 + sepal_length_list.sort() sepal_width_list.sort() petal_length_list.sort()