|
0 / 0 / 0
Регистрация: 31.05.2022
Сообщений: 12
|
|
Как увеличить скорость31.05.2022, 20:11. Показов 1717. Ответов 13
Метки нет (Все метки)
Добрый день! Написал код на питоне, ничего особенного создаётся список и потом в него добавляются определённые числа, некоторые умножаются, некоторые возводятся в квадрат, сравниваются и в порядке возрастания записываются в список. Вопрос вот в чём при ограничении расчёта до 1000000 считает 26 секунд, до 10000000 считает 48 минут, а 10 в 15 мне скорее всего не дождаться пока рассчитает, при этом цп загружен на 10%, ОЗУ 35%, можно-ли каким-либо способом увеличить скорость? Может как-нибудь через видяху, наподобии того как майнеры крипту добывают? Подскажите кто в курсе или тут уже ничего не поделаешь как есть так и будет.
0
|
|
| 31.05.2022, 20:11 | |
|
Ответы с готовыми решениями:
13
Как увеличить скорость программы Как увеличить скорость при работе с большими списками? Как можно увеличить скорость программы? |
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
|
|
| 31.05.2022, 20:20 | |
|
Чаще всего в алгоритме проблема.
Если только арифметические операции, то есть библиотека numpy... А в общем, без задачи с условиями толку мало...
0
|
|
|
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
|
|
| 31.05.2022, 20:26 | |
|
sega333, попробуйте оценить число операций как О(?)
Это даст понимание что можно и что нельзя ожидать от усилий ускорения. Например, если у вас О(en!), то все печально независимо от вложений в ускорение.
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2022
Сообщений: 12
|
|||||||
| 07.06.2022, 21:00 [ТС] | |||||||
|
Множитель 10, дельта -3, +3. При условии что полученное число меньше 1-го числа в списке vse, то когда -3 полученное число записывается в список chislo, возводится в квадрат и записывается в список vse, так-же это число умножается на 2, затем на 4 и записывается в список vsedop, когда +3 полученное число записывается в список chislo, возводится в квадрат и записывается в список vse, так-же это число умножается на 4, затем на 2 и записывается в список vsedop. Если полученное число больше или равно 1 числу в списке vse, то к этому числу прибавляется первое число из списка vsedop и ставится в список vse в порядке возрастания, в список vsedop с таким-же индексом переносятся 1-е два числа и меняются местами (что-бы в следующий раз брать второе число). В списках vse и vsedop первые числа удаляются. Требуется - получить все числа удовлетворяющие условию до заданного числа и сохранить в фаил. Интересует список chislo, остальные два придумал для выполнения задачи. Первые два числа ввожу в ручную, что-бы было с чем сравнивать.
С numpy попробовал что-то у меня ускорить не получилось, я в питоне толком не разбираюсь может что-то не так делаю.
0
|
|||||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 07.06.2022, 22:27 | |
|
Могу подсказать, как увеличить шансы ответа - используйте тэги кода в своих сообщениях.
1
|
|
|
Просто Лис
|
||||||
| 09.06.2022, 16:57 | ||||||
|
Как вариант, работайте с
0
|
||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 16.06.2022, 12:41 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2022
Сообщений: 12
|
|||
| 17.06.2022, 20:17 [ТС] | |||
|
Переписал программу списки сделал наоборот от большого к малому заработало раз в 10 быстрее!!! Добавлено через 19 минут n1 = p * 10 - 3 n2 = p * 10 +3 p от 1 до 100000000 Условия: Если n(i) = n1 * n1 - удаляется Если n(i) = n1 * n1 + n1 * 2 - удаляется Если n(i) = n1 * n1 + n1 * 2 + n1 * 4 - удаляется Если n(i) = n1 * n1 + n1 * 2 + n1 * 4 + n1 * 2 - удаляется Если n(i) = n1 * n1 + n1 * 2 + n1 * 4 + n1 * 2 + n1 * 4 - удаляется Если n(i) = n1 * n1 + n1 * 2 + n1 * 4 + n1 * 2 + n1 * 4 + ... - удаляется и так до 1000000000 n(i) сравнивается не только c n1, а со всеми предыдущими n.
0
|
|||
|
Status 418
|
||||||||
| 17.06.2022, 20:26 | ||||||||
2
|
||||||||
|
0 / 0 / 0
Регистрация: 31.05.2022
Сообщений: 12
|
||
| 20.06.2022, 16:15 [ТС] | ||
|
В очереди так не получается поэтому приходится сразу высчитывать все n. и добавлять их в очередь т.е. n1 = 7 заносим в список, затем все результаты с n1 заносим в очередь n1 * n1 = 49, 49 + n1 * 2 = 63, 63 + n1 * 4 = 91, 91 + n1 * 2 = 105, 105 + n1 * 4 = 133 и так до 1000000000, затем n2 = 13, n2 сравниваем с самым маленьким из очереди это 49 - n2 меньше, n2 заносим в список, затем все результаты с n2 заносим в очередь n2 * n2= 169, 169 + n2 * 2 = 195, 195 + n2 * 4 = 247, 247 + n2 * 2 = 273, 273 + n2 * 4 = 325 и так до 1000000000, и так со всеми n3, n4 ... n(i), n10 = 53, n10 сравниваем с самым маленьким из очереди это 49 - n10 больше, 49 удаляем из очереди n10 в список не заносим, затем n11 = 57, n2 сравниваем с самым маленьким из очереди это уже не 49, а 63 - n11 меньше, n11 заносим в список, затем все результаты с n11 заносим в очередь n11 * n11= 3249, 3249 + n11 * 2 = 3363, 3363 + n11 * 4 = 3591, 3591 + n11 * 2 = 3705, 3705 + n11 * 4 = 3933 и так до 1000000000. Вот как-то так выглядит алгоритм представляете сколько чисел надо что-бы было в оперативке. А в том алгоритме чисел намного меньше на одно n. одно число во 2 списке и два числа в 3 списке.
0
|
||
|
0 / 0 / 0
Регистрация: 31.05.2022
Сообщений: 12
|
||
| 22.06.2022, 16:29 [ТС] | ||
|
Вопрос решён!!! Всем огромная благодарность, особенно eaa, за подсказку
Всё решилось просто по своему не знанию я решил, что в очередь можно добавлять только отдельные элементы, а оказывается, что можно добавлять ещё и списки. Я пишу n. * n., затем n. * 2, затем n. * 4, а списки ставятся в очередь в порядке возрастания по первому числу в списке. А потом к первому числу, когда надо, я прибавляю по очереди n. * 2, n. * 4. Вот и всё!
0
|
||
| 22.06.2022, 16:29 | |
|
Помогаю со студенческими работами здесь
14
Увеличить скорость кода Улучшить производительность и увеличить скорость загрузки-выгрузки файлов Как увеличить скорость Wi-Fi? Как увеличить скорость Wi-Fi? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки 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.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|