16.12.2019, 07:24 [+3 UTC]
в нашей команде: 4 073 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.79 (12.12.2019)
JS-v.1.35 | CSS-v.3.36

Общие новости:
28.04.2019, 09:13

Форум:
29.11.2019, 17:59

Последний вопрос:
15.12.2019, 13:14
Всего: 151290

Последний ответ:
15.12.2019, 16:37
Всего: 259583

Последняя рассылка:
16.12.2019, 05:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 724
puporev
Статус: Профессионал
Рейтинг: 463
Gluck
Статус: 10-й класс
Рейтинг: 462

Перейти к консультации №:
 

Консультация онлайн # 174649
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: angel.nero
Отправлена: 28.11.2009, 18:46
Поступило ответов: 1

Добрый день, уважаемые эксперты! Помогите решить одну задачку!
Даны натуральное число n и вещественное число x. Заполнить вещественный массив а (массив одномерный) элементами, значение которых вычисляются по заданной формуле : ai = x в степени i + i! i=1,2,3…….n

Состояние: Консультация закрыта

Ответ # 257068 от lamed (Академик)

Здравствуйте, angel.nero. Ответ в приложении. Как указывали коллеги, значения ai быстро растут при x>1, так, например, при x=1,1; n=5,
a[5]=149309. Идея заключается в уменьшении количества умножений. a[n]=k1*k2, где k1[1]=x, k1[n]=k1[n-1]*x; k2[1]=x; k2[n]=k2[n-1]^n.

Приложение:


Консультировал: lamed (Академик)
Дата отправки: 29.11.2009, 18:05

5
нет комментария
-----
Дата оценки: 30.11.2009, 13:02

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 174649
Boriss

# 1

= общий = | 29.11.2009, 12:26

Если взять x > 1, то ОЧЕНЬ скоро при вычислении "x в степени i + i!" произойдет переполнение: факториал очень быстро растет
Поэтому нужно ввести ограничения. Какие?
А так задание несложненькое - решается одной операцией умножения, ну и циклы for, кнонечно.

неизвестный

# 2

= общий = | 29.11.2009, 13:01

так х у нас же вещественное число.....массив можно взять до n или чего-то я непонимаю

LfiN
Специалист

ID: 246813

# 3

= общий = | 29.11.2009, 13:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Так же если взять n>12, то даже при степени типа Longint выполнение программы не возможно.
Предполагаю, что в программе возможны ограничения: 1<=n<=12 и -1<x<1; 1<=n<=7 и -6.76<=x<=6.76 и так далее
Даже при таких ограничениях программа может достаточно долго выдавать результат.

неизвестный

# 4

= общий = | 29.11.2009, 18:06

можете показать для случая -1<x<1,пожалуйста!! smile

неизвестный

# 5

= общий = | 29.11.2009, 19:47

angel.nero:
Программу запускать пробовали?
n=7
x=0.900000000
v[1]=0.810000000
v[2]=0.656100000
v[3]=0.387420489
v[4]=0.052334763
v[5]=0.000001907
v[6]=0.000000000
v[7]=0.000000000

n=7
x=-0.900000000
v[1]=0.810000000
v[2]=0.656100000
v[3]=-0.387420489
v[4]=0.052334763
v[5]=-0.000001907
v[6]=0.000000000
v[7]=0.000000000

неизвестный

# 6

= общий = | 30.11.2009, 13:03

leonid59:
А вы можете прокоментировать что делает прога с данного места
k1 := x;
k2 := x;
v[1]:=k1*k2;
for i:= 2 to n do
begin
k1 := k1 * x;
k2this := 1;
for j:= 1 to i do
k2this := k2this*k2;
k2 := k2this;
v[i] := k1*k2;
end;

for i := 1 to n do
writeln('v[',i,']=', v[i]:11:9);
readln;
end.
smile
просто я не понял суть метода

неизвестный

# 7

= общий = | 30.11.2009, 19:45

angel.nero:
Добрый вечер!
an=xn+n!=xn•xn!
an-1=xn-1+(n-1)!=xn-1•x(n-1)!
Пусть
an = k1n•k2n, где
k1n=xn, k2n=xn!.
Тогда
an-1 = k1n-1•k2n-1, где
k1n-1=xn-1, k2n-1=x(n-1)!.
k1n=k1n-1•x
k2n=k2n-1n
Причем k11=x, k21=x, a11=k11•k21=x•x=x2

неизвестный

# 8

= общий = | 20.12.2009, 17:38

lamed:
Добрый вечер,lamed!Вы можете мне подсказать???
вот прога мне что выдает,при заданных х и n
x=2
n=4
v[1]=4.000000000
v[2]=16.000000000
v[3]=512.000000000
v[4]=268435456.000000000

разве она правильно считает???

неизвестный

# 9

= общий = | 20.12.2009, 18:28

angel.nero:
Добрый вечер, angel.nero! Все в мини-форуме поняли как a[i] = x^(i + i!). Может быть, Вы имели в виду a[i] = (x^i) + i!? то есть, для Вашего случая

x=2
n=4
a[1]=x^1+1!=2^1+1!=2+1=3
a[2]=x^2+2!=2^2+2!=4+2=6
a[3]=x^3+3!=2^3+3!=8+6=14
a[4]=x^4+4!=2^4+4!=16+24=40

Тогда программа выглядит так:
{
Вопрос № 174649 
Даны натуральное число n и вещественное число x. 
Заполнить вещественный массив а (массив одномерный) элементами, 
значение которых вычисляются по заданной формуле : ai = x^i + i! i=1,2,3…….n
}
program p174649;
uses
  crt;
const
  size=100;
type
  TVector = array[1..size] of real;
var
  v: TVector;
  n: integer;
  i,j: integer;
  x: real;
  k1,k2,k2this: real;

begin
  clrscr;
  write('x=');
  readln(x);
  
  write('n=');
  readln(n);
  
  k1 := x;
  k2 := 1;
  v[1]:=k1+k2;
  for i:= 2 to n do
    begin
      k1 := k1 * x;
      k2 := k2 * i;
      v[i] := k1+k2;
    end;

  for i := 1 to n do
    writeln('v[',i,']=', v[i]:11:9);
  readln;
end.

неизвестный

# 10

= общий = | 22.12.2009, 19:10

a[i] = (x^i) + i! извините что ввёл вас в замешательство smile

неизвестный

# 11

= общий = | 22.12.2009, 22:25

angel.nero:
Удачи!

неизвестный

# 12

= общий = | 25.12.2009, 00:08

lamed:
спасибо!Приняли

неизвестный

# 13

= общий = | 25.12.2009, 00:27

angel.nero:
Успехов!

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.18450 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.79 от 12.12.2019
Версия JS: 1.35 | Версия CSS: 3.36