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

Увеличение скорости на python

30.11.2020, 16:44. Показов 1896. Ответов 8

Студворк — интернет-сервис помощи студентам
Всем привет, можно ли как-то увеличить скорость выполнения python, при работе с большими данными? Просто очень обидно стало, так как писал олимпиаду, решение задачи само по себе правильно, но снизили баллы за то, что интерпретатор не успевает уложится в 1 секунду, если много операций из-за ввода больших данных.Если можно, то прошу по-проще, хотя и в сложном думаю разберусь.(Переходить на другой язык не хочется, ведь мне нравится структура python) Спасибо за внимание!
P.S. код сам по себе небольшой(14 строчек)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2020, 16:44
Ответы с готовыми решениями:

увеличение скорости
как сделать чтоб при просмотре видео у меня на сайтеб у людей с маленькой скоростью интернета видео грузилось быстро. Если у поситителя...

Увеличение скорости Wifi
Доброго времени суток, уважаемые гуру. Прошу у вас помощи. Живу в общежитии, и в нём есть общедоступный Wifi с регистрацией по номеру...

Увеличение скорости объекта
Суть программы: есть несколько препятствий и объект,при нажатие на старт препятствия начинают двигаться и объектом надо их...

8
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,241
30.11.2020, 16:57
используйте, например, pypi.
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
30.11.2020, 17:34
Лучший ответ Сообщение было отмечено Gdez как решение

Решение

Цитата Сообщение от Daniil412341 Посмотреть сообщение
решение задачи само по себе правильно
Но, возможно, неоптимально. В олимпиаде должны же учитывать специфику языков и понимать, что вычислительный код на СИ будет быстрее в 100 раз вычислительного кода на Python или любого другого языка этого же типа.
Поэтому если не уложился в секунду, то вовсе необязательно виноват язык. А IO операции (ввод-вывод) выполняются одинаково на всех языках. И тут скорость траффика данных зависит от диска и ОС.
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
30.11.2020, 18:09
какие ограничения были на входные/выходные данные?
хотя без задачи это обсуждение бессмысленно.
0
0 / 0 / 0
Регистрация: 30.11.2020
Сообщений: 5
30.11.2020, 19:29  [ТС]
Прошу прощения, что не выложил задания и решения. Исправляюсь. Вот ссылки на задачи(С, D) https://olymp.informatics.ru/s... ements.pdf
а вот сам код для одной и другой(обе получили неполный балл за время)
Задача C
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
 
n, m = input().split()
n = int(n)
m = int(m)
energy = 0
for i in range(m):
    l, r, k = input().split()
    l = int(l)
    r = int(r)
    k = int(k)
    energy_generate = 0
    if k == 1:
        for j in range(l, r+1):
            if j%2==0:
                energy_generate +=1# понятно, что здесь можно было оптимизировать
            else:
                energy_generate +=1# и не писать это оставив одну
    if k == 2:
        for j in range(l, r+1):
            if j%2==0:
                energy_generate +=1
            else:
                energy_generate +=0
    energy+=energy_generate
energi=int(energy/n)
print(energi)
Задача D
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
n = int(input())
a = input().split()
for L in range(1, n+1):
    N=L
    time_1= 0
    i=0
    while N <= n:
        time = 0
        for j in range(i, N):
            time += int(a[j])
        time_1+=time
        N+=1
        i+=1
    print(time_1,end=" ")
Добавлено через 1 минуту
Цитата Сообщение от eaa Посмотреть сообщение
какие ограничения были на входные/выходные данные?
хотя без задачи это обсуждение бессмысленно.
скинул выше код и задачу
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
30.11.2020, 20:08
Daniil412341, задания надо перепечатывать на форум. Кстати, там access denied.

О главном. Если речь про олимпиадное задание - скорее всего, вы додумались до наивного решения, а олимпиада на то и олимпиада, что надо подумать. Питон тут не при чём, путь к ускорению не там.

Добавлено через 3 минуты
Цитата Сообщение от Daniil412341 Посмотреть сообщение
for j in range(l, r+1):
if j%2==0:
energy_generate +=1# понятно, что здесь можно было оптимизировать
else:
energy_generate +=1# и не писать это оставив одну
Одну неоптимальность я уже вижу. Если "понятно", что ж не оптимизировали? В автотестах вполне могут дать офигенно большие значения, и ваш цикл крутится ещё сам по себе в цикле.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
30.11.2020, 20:29
Daniil412341, C
Python
1
2
3
4
5
6
7
8
9
10
 
n, m = map(int,input().split())
energy = 0
for i in range(m):
    l, r, k = map(int,input().split())
    l = l + (k % 2) * (l % 2)
    for j in range(l, r+1, k):
                energy +=1# понятно, что здесь можно было оптимизировать
energy //= n
print(energy)
Добавлено через 7 минут
Это, если циклом
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
30.11.2020, 20:55
задачу не читал, но по коду 1ая вроде так:
Python
1
2
3
4
5
6
n, m = map(int, input().split())
energy = 0
for _ in range(m):
    l, r, k = map(int, input().split())
    energy += (r-l+1)//k
print(energy//n)
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
30.11.2020, 21:07
Daniil412341, по формуле
Python
1
2
3
4
5
6
7
8
9
 
n, m = map(int,input().split())
energy = 0
for i in range(m):
    l, r, k = map(int,input().split())
    energy +=(r - l + 1) // k + ((l + 1) % 2) * ((r - l + 1) % 2) * ((k + 1) % 2)
    print(energy) # понятно, что здесь можно было оптимизировать
energy //= n
print(energy)
Добавлено через 9 минут
Хотя формулу можно чуть проще
Python
1
energy +=(r - l + 1) // k + ((l + 1) * (r - l + 1) * (k + 1)) % 2
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2020, 21:07
Помогаю со студенческими работами здесь

Увеличение скорости со временем
Хотел увеличивать скорость препятствий по ходу игры, чтобы усложнить прохождение. public class Enemy : MonoBehaviour { private...

Увеличение скорости работы бд
Хотелось бы узнать, какие есть методы по увеличению скорости работы бд? или хотя бы просто &quot;как&quot; лучше создавать архитектуру, для...

Увеличение скорости скачивания в PyCharm
Реализую музыкального бота в PyCharm, но скачивание музыки из YouTube оставляет желать лучшего. Качает со скоростью 50Kib/s, можно ли...

Увеличение скорости обработки запроса
Приветствую читатель! Столкнулся с такой проблемой: В наличии MariaDB 10.2.7, Apache 2.4.6 (CentOS) PHP 5.5.38, phpMyAdmin 4.4.15.10 ...

Увеличение скорости при переходе с 3G на 4G
Есть модем Huawei E171, поддерживает только 3G, максимальная скорость приема в Коннект Менеджере 4.5 Mbit/s, передачи 460 kbit/s, реальная...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru