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

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

04.05.2021, 19:39. Показов 2945. Ответов 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
04.05.2021, 20:09
Djoniscoh, а где декоратор то?
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
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
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru