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

Как ускорить данный код на Python?

22.03.2022, 14:13. Показов 1231. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
from sys import setrecursionlimit
n=int(input())
result=0
setrecursionlimit(1000)
def count(n,k=1):
    if n==0:
        global result
        result+=1
    for i in range(k,n+1):
        if i%2!=0:
            count(n-i,i)
count(n)
print("Результат:",result)
Есть данный код, но он работает медленно , хочу его ускорить.
Требуемые значения:
1 <= n <= 1000
1 секунда
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2022, 14:13
Ответы с готовыми решениями:

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

Как интерпретировать данный код из Python в PascalABC?
Results = {} def gameResult( x, y ): if (x,y) in results: return results if x + y &gt;= TARGET: return 0 ...

Как данный код конвертнуть с языка программирования PYTHON в C#?
def height(man): if man not in p_tree: return 0 else: return 1 + height(p_tree) p_tree = {} n =...

3
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
22.03.2022, 19:08
задача какая?
0
0 / 0 / 0
Регистрация: 22.03.2022
Сообщений: 2
22.03.2022, 19:30  [ТС]
Вычислить количество вариантов разложения числа на нечётные числа, которые меньше или равные ему самому.
Например для 5 будет 3 способа
Для 16 будет 32 способа
Для 47 будет 2590
Для 100 будет 444793

Но нужно , чтобы код считал для 1000 за 1 секунду
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.03.2022, 21:53
Лучший ответ Сообщение было отмечено volandd0v как решение

Решение

Цитата Сообщение от volandd0v Посмотреть сообщение
Но нужно , чтобы код считал для 1000 за 1 секунду
Ты уверен что эта цифра для Python?
Для 1000 существует вот столько вариантов разложений: 8635565795744155161506

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
>>> def compose(n:int):
    counts = [0] * (n+1)
    counts[0] = 1
    m = 1
    for m in range(1, n+1, 2):
        for i in range(m,len(counts)):
            counts[i] += counts[i-m]
            
    return counts[n]
 
>>> compose(5)
3
>>> compose(16)
32
>>> compose(47)
2590
>>> compose(100)
444793
>>> import time; start = time.time(); compose(1000); print(time.time() - start)
8635565795744155161506
0.07800006866455078
>>> import time; start = time.time(); compose(100); print(time.time() - start)
444793
0.031200170516967773
>>>
Время вычисления здесь чистой воды обман: просто после первого запуска функции все циферки оказались в кэше процессора и теперь считается за доли секунды :-)

Нужно будет потом по другому проверить....

Добавлено через 1 час 9 минут
Цитата Сообщение от Garry Galler Посмотреть сообщение
Время вычисления здесь чистой воды обман
Впрочем, нет. Замедление при первом запуске кода у меня было, видимо, по иной причине. После перезагрузки системы показатели скорости выполнения кода для первого запуска остались вполне быстрыми, как и те, что приводились выше:
Python
1
2
%timeit -r 10 -n 10 compose(1000)
69.7 ms ± 901 µs per loop (mean ± std. dev. of 10 runs, 10 loops each)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2022, 21:53
Помогаю со студенческими работами здесь

Ускорить код на Python
Всем привет. Нужна помощь сообщества. Посмотрите пожалуйста код и подскажите где его можно ускорить. Использую: Python, OpenCV,...

Как ускорить данный алгоритм нахождения минимума на отрезке?
Здравствуйте, подскажите, пожалуйста, почему решение не проходит по времени на нескольких тестах? Как исправить это? Рассмотрим...

Объясните, пожалуйста, данный код на python
n = int(input()) if n % 2 == 0: n -= 1 for i in range(n, 1, -2): print(i)

Не работает вся оперативка и как можно максимально ускорить данный ПК
Всем привет! :) Друзья, подскажите пожалуйста новичку - почему комп не использует всю оперативку? Установлено 6, а использует 4. И что...

Перевести данный код паскаля в c# , c++ или Python на ваше усмотрение
Нужно перевести код паскаля в c# , c++ или Python на ваше усмотрение буду очень благодарен uses crt; function F(x:real):real; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru