|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.01.2016, 08:57 | #1 |
Пользователь
Регистрация: 05.12.2014
Сообщений: 12
|
оптимизация кода
Помогите оптимизировать код
Код:
задача... Найти количество правильных сложений чисел из отрезков [a;b] и [c;d] которые равны числу n. то есть если i принадлежит отрезку [a;b] и j отрезку [c;d] то если i+j==n то k++; и вывсети количество таких правильных сложений. то есть вывести k Последний раз редактировалось Stilet; 12.01.2016 в 09:11. |
12.01.2016, 09:10 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
1. для каждого числа i из [a;b] существует РОВНО ОДНО число дающее в сумме с ним число n. { = n-i }
2. оно может попасть (или НЕ попасть) в другой отрезок [c,d] 3. осталось "понять" КАК проверить что оно ПРИНАДЛЕЖИТ нашему отрезку { с<=n-i<=d }
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 12.01.2016 в 09:16. |
12.01.2016, 09:12 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
так зачем тут два цикла?! В одном проверяйте, находится ли n-i в нужном диапазоне!
примерно так: Код:
p.s. а вообще, думаю, что тут вообще без циклов обойтись можно, если в коде сделать анализ взаимного расположения границ отрезков. |
12.01.2016, 09:15 | #4 | |
Пользователь
Регистрация: 05.12.2014
Сообщений: 12
|
спасибо большое!
а если еще оптимизировать? получиться как нибудь? Можно еще больше ускорить программу? Цитата:
Последний раз редактировалось Stilet; 12.01.2016 в 11:15. |
|
12.01.2016, 09:30 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
12.01.2016, 09:37 | #6 |
Пользователь
Регистрация: 05.12.2014
Сообщений: 12
|
ну да...что дальше?
|
12.01.2016, 13:51 | #7 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
| [a;b] ∩ [n-d;n-c] | (мощность множества)
= max(a, n-d) - min(b, n-c) НО не всегда, а только если есть пересечение (т.е. множество НЕ ПУСТОЕ) иначе =0
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 12.01.2016 в 13:55. |
12.01.2016, 17:37 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
evg_m, спасибо большое!!!
я именно это и пытался утром сказать. но не смог: додумать мысль до конкретной реализации не хватило ума и времени... Оставил это себе на ужин... единственное, если я правильно понимаю, количество должно быть max(a, n-d) - min(b, n-c) +1 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимизация кода | INSIDER73 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 16.12.2014 08:23 |
Оптимизация кода | HDMI | PHP | 16 | 22.10.2012 13:06 |
Оптимизация кода | LuckyTheGreat | C# (си шарп) | 3 | 15.07.2011 00:46 |
Оптимизация кода | viscas | PHP | 3 | 31.05.2009 16:04 |
Оптимизация кода | nusik | Общие вопросы Delphi | 2 | 21.05.2009 17:55 |