Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 160

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
дано уравнение
y=(x^(n^2))/( a^n)
х в степени {n в квадрате} - все это деленное на а в степени n

Предпод задал задание: решить уравнение с помощью схемы горнера (он хотел, чтобы мы уменьшили количество умножений), не используя процедурного программирования!
Приведу пример, в котором уравнение решается без этой схемы, то есть максимальным количеством умножений.
В данном случае используется максимальное количество умножений
как написать прогу так, чтобы количество умножений уменьшилось?
Заранее спасибо!

Приложение:
  1. var a,x,n,i,chislitel,znamenatel:integer;
  2. begin
  3. read(a,x,n);
  4. i:=1;
  5. chislitel:=1;
  6. while (i<=(n*n)) do
  7. begin
  8. chislitel:=x*chislitel;
  9. inc(i);
  10. end;
  11. i:=1;
  12. znamenatel:=1;
  13. while (i<=n) do
  14. begin
  15. znamenatel:=znamenatel*a;
  16. inc(i);
  17. end;
  18. y:=chislitel/znamenatel;
  19. write(y);
  20. readln
  21. end.


Ruslan Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ruslan (статус: 1-ый класс)
Вопрос отправлен: 6 сентября 2009, 21:34
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 7 сентября 2009, 09:50; участников в обсуждении: 1.
Anderson N.N

Anderson N.N (статус: 2-ой класс), 7 сентября 2009, 09:50 [#1]:

Вот ответ на вскидку ...
Раз препод ничего не говорит насчет размера и оптимизации кода ...

Попробуй заменить умножение сложением.
Например: n*m

for i=0 to n do
res= res + m;

Например: n^m

for i=0 to m do
for j=0 to n do
res= res + n;

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:27
Выполнено за 0.02 сек.