7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
1

Статистика

22.03.2018, 22:31. Показов 33004. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализовать классы MinStat, MaxStat, AverageStat, которые будут находить минимум, максимум и среднее арифметическое последовательности целых чисел.

Экземпляры классов инициализируются без аргументов. Метод add_number должен добавлять в статистику число, которое будет учтено при вычислении финального результата методом result. Для экземпляров MinStat и MaxStat result должен возвращать целое число, для AverageStat — число типа float (это число будет сравниваться с правильным ответом до седьмой значащей цифры).

Если в последовательности отсутствуют числа и статистические величины вычислить невозможно, метод result должен возвращать None.

Формат ввода
Каждый тест представляет собой код, в котором будут использоваться ваши классы. Файл c решением не обязательно называть solution.py, он будет переименован автоматически. Тест запускается с вашими классами, а его вывод сравнивается с правильным решением.

Пример 1
Ввод Вывод
from solution import MinStat, MaxStat, AverageStat

Python
1
2
3
4
5
6
7
8
9
10
11
values = [1, 2, 4, 5]
 
mins = MinStat()
maxs = MaxStat()
average = AverageStat()
for v in values:
    mins.add_number(v)
    maxs.add_number(v)
    average.add_number(v)
 
print(mins.result(), maxs.result(), '{:<05.3}'.format(average.result()))
1 5 3.000
Пример 2
Ввод Вывод
from solution import MinStat, MaxStat, AverageStat

Python
1
2
3
4
5
mins = MinStat()
maxs = MaxStat()
average = AverageStat()
 
print(mins.result(), maxs.result(), average.result())
None None None
Пример 3
Ввод Вывод
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
from solution import MinStat, MaxStat, AverageStat
 
values = [1, 0, 0]
 
mins = MinStat()
maxs = MaxStat()
average = AverageStat()
for v in values:
    mins.add_number(v)
    maxs.add_number(v)
    average.add_number(v)
 
print(mins.result(), maxs.result(), '{:<05.3}'.format(average.result()))

0 1 0.333
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2018, 22:31
Ответы с готовыми решениями:

Статистика по программистам python: предлагаю опрос
вопросы

Статистика по числу
Статистика по числу Герасим любит собирать занимательную статистику по произвольным числам и...

Статистика по клиентам
банка «Сохранбанк» есть короткий номер 800 на который клиенты отправляют смс сообщения для...

Статистика по числам
У Алевтины возникла новая идея для занимательной статистики. Поэтому она просит Вас написать...

Статистика и графы
Только начинаю изучать Python и графы, пытаюсь найти оптимальное решение такой задачи: Нужно найти...

3
4798 / 3198 / 1123
Регистрация: 21.03.2016
Сообщений: 7,915
25.03.2018, 13:49 2
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class MinStat(object):
    def __init__(self):
        self.lst = [ ]
    def add_number(self,x):
        self.lst.append(x)
    def result(self):
        return min(self.lst) if self.lst else None
 
class MaxStat(MinStat):
    
    def result(self):
        return max(self.lst) if self.lst else None
    
class AverageStat(MinStat):
    
    def result(self):
        return sum(self.lst) / len(self.lst) if self.lst else None
5
2 / 2 / 1
Регистрация: 23.10.2018
Сообщений: 15
04.04.2019, 15:40 3
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Если PEP8 Жалуется, вот доделал код, чтобы не жаловался.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class MinStat(object):
    def __init__(self):
        self.lst = []
 
    def add_number(self, x):
        self.lst.append(x)
 
    def result(self):
        return min(self.lst) if self.lst else None
 
 
class MaxStat(MinStat):
 
    def result(self):
        return max(self.lst) if self.lst else None
 
 
class AverageStat(MinStat):
 
    def result(self):
        return sum(self.lst) / len(self.lst) if self.lst else None
1
62 / 54 / 11
Регистрация: 08.04.2019
Сообщений: 97
08.04.2019, 18:43 4
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class MinStat:
    def __init__(self):
        self.v = []
 
    def add_number(self, n):
        self.v.append(n)
 
    def result(self):
        if self.v == []:
            return None
        else:
            return min(self.v)
 
 
class MaxStat:
    def __init__(self):
        self.v = []
 
    def add_number(self, n):
        self.v.append(n)
 
    def result(self):
        if self.v == []:
            return None
        else:
            return max(self.v)
 
 
class AverageStat:
    def __init__(self):
        self.v = []
 
    def add_number(self, n):
        self.v.append(n)
 
    def result(self):
        if self.v == []:
            return None
        else:
            n = len(self.v)
            s = sum(self.v)
            return s / n
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2019, 18:43
Помогаю со студенческими работами здесь

Статистика по клиентам
У банка «Сохранбанк» есть короткий номер 800 на который клиенты отправляют смс сообщения для...

Статистика в тексте
Есть программа первого закона Ципфа. Измерим количество вхождений каждого слова в текст и возьмем...

Статистика типов
Напишите класс TypeStatistics, экземпляру которого при инициализации передается список, метод...

Статистика по клиентам
У банка «Сохранбанк» есть короткий номер 800 на который клиенты отправляют смс сообщения для...

Словарная статистика
Напишите программу, подсчитывающую для каждой буквы слова, сколько раз она в нем встречается....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru