|
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 59
|
||||||||||||
Оптимизация [сокращение времени выполнения]06.10.2016, 15:27. Показов 1141. Ответов 13
Метки нет (Все метки)
Здравствуйте, стояла такая задача:
В моём случае операция занимает в среднем от 7.5 до 9 секунд. Не могли бы вы помочь с оптимизацией? Желательно с использованием указателей.Добавлено через 1 час 58 минут
0
|
||||||||||||
| 06.10.2016, 15:27 | |
|
Ответы с готовыми решениями:
13
Оптимизация [сокращение времени выполнения] Оптимизация времени выполнения
|
|
7 / 7 / 13
Регистрация: 04.10.2016
Сообщений: 52
|
|
| 06.10.2016, 15:46 | |
|
у вас под переменной timer подразумевается время? если так то это не так, на самом деле это счетчик количества удовлетворенных условию (r1 == r2), как вы время измеряете?
скорость выполнения вашего кода зависит от вычислительной мощности компьютера ![]() Добавлено через 14 минут операции деления занимают "много процессорного времени", и проблема не в 18-21 строках вашего кода, а в 5-17
0
|
|
|
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 59
|
|
| 06.10.2016, 15:55 [ТС] | |
|
Хорошо, про timer знаю, просто название такое в голову полезло))
Слушайте, а альтернатива строкам 5-17 есть? Если да, то можно пример?
0
|
|
|
53 / 53 / 19
Регистрация: 09.12.2015
Сообщений: 215
|
|
| 06.10.2016, 15:58 | |
|
Sultik_Zaka, могу посоветовать книгу: Макконнелл С. "Совершенный код". Именно "Часть V Усовершенствование кода"
В гугле сразу первые две ссылки - документ.
0
|
|
|
7 / 7 / 13
Регистрация: 04.10.2016
Сообщений: 52
|
|
| 06.10.2016, 15:59 | |
|
в том то и дело, вам необходимо разработать более быстрый алгоритм сэкономив на делениях
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 06.10.2016, 16:23 | |
|
Sultik_Zaka, Ваш алгоритм, конечно, чудовищен. Нужен совсем другой подход. Надо выяснить, сколько четырехзначных чисел (от 0 до 9999) дают суммы цифр S = 0, 1, 2 ... 36. Пусть это будем S[i] - количество 4-х значных чисел, дающих сумму i. Затем просто сложить квадраты S[i]. Это будет количество всех счастливых билетов. Потом из них нужно будет отсечь не удовлетворяющие условию a <= N <= b. Как это сделать - вопрос не простой, но решаемый. Во всяком случае задача будет решаться за разумное время.
1
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 06.10.2016, 16:35 | |
|
Байт, но всегда надо начинать с алгоритма в лоб и потом еще оптимизировать делая замеры )
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 06.10.2016, 16:46 | ||
|
Да и замеров никаких не надо. Ясно, что 104 много меньше 108
1
|
||
|
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
|
|||||||||||
| 06.10.2016, 17:50 | |||||||||||
Если не заморачиваться на строгом следование комментам, то можно сразу так:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 59
|
|
| 06.10.2016, 18:10 [ТС] | |
|
Спасибо, однако само задание требует к тому же и использование указателей, в противном случае контестер считает код неправильным.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||||
| 06.10.2016, 19:25 | ||||||||
![]() 10005000 20001000 -214141 20001000 0 Мой вариант:
0
|
||||||||
|
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 59
|
|
| 08.10.2016, 06:45 [ТС] | |
|
Ваш вариант как-то не хочет принимать компилятор
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 08.10.2016, 06:51 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 59
|
||||||
| 09.10.2016, 16:56 [ТС] | ||||||
|
Проблема решена!
Держите код, может кому пригодится:
0
|
||||||
| 09.10.2016, 16:56 | |
|
Помогаю со студенческими работами здесь
14
Ошибка времени выполнения Измерение времени выполнения Ошибка времени выполнения. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью 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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|