Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 26.12.2019
Сообщений: 29

Написать декоратор для оценки времени вычисления функции

04.05.2021, 19:39. Показов 2916. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать декоратор для оценки времени вычисления функции. Оценить время выполнения функции с его помощью.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def nod(a, b):
    if a > b:
        a = a % b
        if a == 0:
            return b
        else:
            return nod(a, b)
    else:
        b = b % a
        if b == 0:
            return a
        else:
            return nod(a, b)
 
n1 = int(input())
n2 = int(input())
print(nod(n1, n2))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.05.2021, 19:39
Ответы с готовыми решениями:

Написать декоратор для оценки времени вычисления функции
имеется код, написать декоратор для оценки времени вычисления функции. Оценить время выполнения функции с его помощью. Код: import...

Написать простой декоратор, используя декоратор wraps, для передачи данных от оригинальной функции
На python Написать простой декоратор, используя декоратор wraps, для передачи данных от оригинальной функции. Реализовать простую функцию...

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

5
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
04.05.2021, 20:09
Djoniscoh, а где декоратор то?
0
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
04.05.2021, 20:14
Цитата Сообщение от Welemir1 Посмотреть сообщение
а где декоратор то?
Цитата Сообщение от Djoniscoh Посмотреть сообщение
Написать декоратор
все понятно? пишите!!!
я честно с этими декораторами сам туплю. прочитал попробовал забыл
0
 Аватар для menreiven
192 / 136 / 62
Регистрация: 23.05.2013
Сообщений: 299
04.05.2021, 21:10
Если не задумываться с возвращением только одного результата, то, наверное, вот так:
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
def benchmark(func):
    import time
    def wrapper(arg1 , arg2):
        start_time = time.time()
        ret_val = func(arg1, arg2)
        end_time = time.time()
        print(f"Time = {end_time - start_time}")
        return ret_val
    return wrapper
 
@benchmark
def nod(a, b):
    if a > b:
        a = a % b
        if a == 0:
            return b
        else:
            return nod(a, b)
    else:
        b = b % a
        if b == 0:
            return a
        else:
            return nod(a, b)
 
n1 = int(input())
n2 = int(input())
print(nod(n1, n2))
Но это "кривой" подход, так как возвращается значение на каждом шаге рекурсии.
Можно сделать, чтобы только один раз в конце вернулось, но это уже думать надо.
Насколько я понимаю рекурсия и декоратор - не очень подходят друг к другу без "бубна". Ну или я туплю просто, но вроде у многих проблемы с этим.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
04.05.2021, 21:16
Все это прекрасно, но функция nod "раздута". Вполне достаточно так:

Python
1
2
3
4
5
6
7
8
def gcd(a,b):
    if b==0:
        return a
    else:
        return gcd(b,a%b)
        
print(gcd(120,48))
print(gcd(48,120))
Убедитесь, что результат не меняется.
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
04.05.2021, 23:53
menreiven, Важно, какая версия питона у ТС.
"time.process_time() → float

New in version 3.3.

time.process_time_ns() → int

New in version 3.7

Similar to process_time() but return time as nanoseconds.

Аналогично process_time (), но возвращает время в виде наносекунд.

В Python 3.3 в модуле time появились новые интерфейсы, которые спроектированы как более переносимые. В частности, поведение
вызовов clock и time данного модуля меняется в зависимости от платформы, но
его новые функции perf_counter и process_time имеют четко определенную и
нейтральную к платформе семантику."
В последних версиях питона clock и time из модуля time не работают.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2021, 23:53
Помогаю со студенческими работами здесь

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

Написать декоратор check_permission, который проверяет, есть ли у пользователя доступ к вызываемой функции
Добрый день! Прошу помощи в задаче. Есть такая задачка: На вас возложили задачу по созданию и поддержке специализированного...

Написать программу вычисления координат положения руки робота для момента времени t1
Добрый вечер, мне нужна помощь с данными заданиями. Буду очень благодарен! Закон движения руки робота-манипулятора задан в виде ...

Написать программу для сравнения времени вычисления факториала с использованием рекурсивного и нерекурсивного алгоритмов
Доработать код : static long factorial(int n)//рекурсивный метод { if (n == 0 || n == 1) return 1; //нерекурсивная ветвь else...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru