Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 7

Оптимизация задачи

16.12.2016, 09:25. Показов 1481. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите оптимизировать программу если это возможно и может кто переписать её на другой язык программирования, чтобы это было быстрее. Решаю олимпиаду, всё правильно, но выхожу за рамки по времени ( на 10%)
Pascal
1
2
3
4
5
6
7
8
9
10
11
var s,a:longint;
    n,p:real;
begin
read(s); read(n); read(a);
n:=n+a-1;
while a<=n do begin
                 p:=p+(s/(a*(a+1)));
                 a:=a+1;
                 end;
write(p:100:3);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2016, 09:25
Ответы с готовыми решениями:

Оптимизация решения олимпиадной задачи
Всех приветствую. Недавно наткнулся на очень интересную олимпиадную задачу. Полностью переводить её не буду (данная задача представляется...

Типы оптимизация: черная оптимизация, серая оптимизация и белая оптимизация
Много много лет назад, на заре становления профессии &quot;оптимизатора&quot; в какой то умной книжке был создан миф. Это миф о цветовой индефикации...

Оптимизация Кода задачи
Сама задача: Корабль сначала плыл заданным курсом (север, восток, Юг, запад). Потом его курс был изменен согласно приказу ( вперед,...

13
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
16.12.2016, 09:44
Тут не программу а формулу нужно оптимизировать.
Это для математиков задачка
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
16.12.2016, 09:48
А задание-то хоть какое?
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 7
16.12.2016, 09:55  [ТС]
Цитата Сообщение от Hikari Посмотреть сообщение
Тут не программу а формулу нужно оптимизировать.
Это для математиков задачка
Так формула дана в задаче.

Задача про банк.
Начисляются проценты по формуле p=s/(a*(a+1)) и складываются на отдельный счёт (кол-во рублей и копеек может быть дробным). Каждый год коэффициент A увеличивается на 1.
Нужно написать калькулятор процентов для такого вклада.
Начальная сумма, коэффициент А в первый год и кол-во лет задаются.

Мне просто кажется тут на паскале лучше не сделать, а система проверяющая говорит что слишком долго выполняется программа (1.091 в последних тестах про ограничении в 1 секунду)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
16.12.2016, 10:09
Цитата Сообщение от fjughi Посмотреть сообщение
тут на паскале лучше не сделать,
Сделать, просто не нужно решать в лоб, через цикл, это же олимпиада, Вам Hikari, правильно указала
Цитата Сообщение от Hikari Посмотреть сообщение
Тут не программу а формулу нужно оптимизировать.
Чтобы решение свелось к элементарному
Pascal
1
p:=формула
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 7
16.12.2016, 10:19  [ТС]
Так а помогите тогда, а у меня уже нет идей куда двигаться дальше
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
16.12.2016, 10:35
Я так понял что нужно найти не процент(p), aсуму процентов нв отдельном вкладе, е очень понятное условие, если так, то может быть такое?
Pascal
1
2
3
4
5
6
sp:=0; //сумма процентов за N лет
for i:=1 to n do
 begin
  p:=s/((a+i-1)*(a+i)); //процент в данный год
  sp:=sp+s*p/100;//сумма процентов
 end;
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 7
16.12.2016, 10:46  [ТС]
Да, нужно сумму процентов.
Но формула P это не процент, а именно кол-во денег начисленных за этот год
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
16.12.2016, 10:47
Ну тогда
Pascal
1
sp:=sp+p;//сумма процентов
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 7
16.12.2016, 10:50  [ТС]
а разве у меня не так же написано? просто всё в ячейку P складывается, не используя дополнительную
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
16.12.2016, 10:53
Каким компилятором проверяется решение?
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 7
16.12.2016, 10:56  [ТС]
Free pascal 2.4.4
на сайте official.contest.yandex.ru

Сама программа полностью рабочая. Проблема только в том, что я никак не вписываюсь по времени. 1.091 вместо разрешенной секунды в последних тестах
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
16.12.2016, 11:01
Каковы ограничения на исходные данные?
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 7
16.12.2016, 11:05  [ТС]
вот полное условие задачи:

Ограничение времени: 1 секунда
Ограничение памяти: 256 Мегабайт
Ввод: стандартный ввод или input.txt
Вывод: стандартный вывод или output.txt

В одном странном банке действуют очень необычные условия по вкладам. Согласно рекламе, проценты по вкладу начисляются ежегодно исходя из "коэффициента вычисления прибыли" (КВП) и зачисляются на отдельный счет (то есть НЕ прибавляются к сумме вклада). КВП изначально равен A и далее каждый год увеличивается на 1.
В договоре указана точная формула вычисления процентов за год:
P = S / (A * (A + 1)),
где P - проценты за год, S - сумма вклада, A - КВП на текущий год. Условия по вкладу остаются постоянными в течение всего срока хранения вклада.
Еще одна странность банка заключается в том, что на счете, куда зачисляются проценты, может храниться абсолютно любая сумма, даже если в ней не целое число рублей и копеек (например, на счете может храниться 1/3 рубля).
Кирилл хочет сделать вклад в этом странном банке таким образом, чтобы сумма накопленных процентов оказалась ненулевой. Напишите программу – «калькулятор», которая позволит вычислять сумму процентов, накопившихся за N лет хранения вклада.

Формат входных данных:
Единственная строка входного файла содержит три целых числа: S (сумма вклада), N (количество лет), A (начальное значение КВП, которое действует в первый год), разделенных пробелами (1 ≤ S, A ≤ 10^9, 1 ≤ N ≤ 10^18).

Формат выходных данных:
Выходной файл должен содержать одно вещественное число, округленное до 3 знаков после запятой – сумму накопленных процентов за N лет хранения вклада.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.12.2016, 11:05
Помогаю со студенческими работами здесь

Оптимизация олимпиадной задачи по программированию
Есть задача: Ограничение времени на тест: 5 сек Ограничение памяти на тест: 256 Мб Условие Дан массив целых чисел a1, a2, ...,...

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

Оптимизация кода несложной задачи (Статистика всех введённых символов в строке)
Решение задачки(статистика всех введённых символов в строке) мне кажется слишком громоздким и просто деревянным, можно ли как то его...

Оптимизация методом Ньютона (нахождение точки минимума). Оптимизация кода
MATLAB только начал осваивать. Попытался реализовать нахождение точки минимума методом Ньютона для функции 2*X12 - X1*X2 + 3*X22 -...

Отмена задачи, запуск задачи после отмены, перезапуск уже запущенной задачи
Добрый день. Сейчас разбираю TPL и у меня возник вопрос следующего содержания: у меня есть пример на Windows Forms с запуском и отменой...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru