PDA

Просмотр полной версии : Я ЧАЙНИК. Помогите пожалуйста, не знаю даже от чего отталкиваться



FreeLifeStyler
14.03.2007, 01:20
http://nuclearworldwarsite.com/beginning.html



Задача простая, но додуматься не могу, никак до конца не понять, как использовать некоторые операторы, как всё это привязывать друг к другу. Покажите, пожалуйста, как её решить.
Вычислить х1+х2+...+х20, если последовательность х1, х2...хk образована по следующему законух1=х2=х3=1,
Xi=(Хi-1 -1)*(I+3)+Xi-3*(Xi-2+4) ,i=4,5,6...
То что нежирное и подчёркнутое в формуле-это индекс...Спасибо Вам огромное, что хотя бы это прочитали..

Колядин Максим
14.03.2007, 01:38
Каким языком программирования пользуешься?

BBB
14.03.2007, 09:39
Например, такой вариант. Насчет красоты и оптимальности - не ручаюсь, но работать должен.

Только там такая охрененная (большая, в смысле) сумма получается, что и longint, и даже real переполняются. Пришлось использовать самый "вместительный" тип extended.



const K = 20;
var Sum,
X_minus_3,
X_minus_2,
X_minus_1,
X_next : extended;
iLoop : integer;
begin
X_minus_1 := 1;
X_minus_2 := 1;
X_minus_3 := 1;

{ Сумма первых трех членов последовательности }
iSum := iX_minus_1 + iX_minus_2 + iX_minus_3;


for iLoop:=4 to K do
begin
{ считаем очередной (iLoop - й) член последовательности }
X_next := (X_minus_1 -1) * (iLoop + 3) + X_minus_3 * (X_minus_2 + 4);
{ добавляем (iLoop - й) член последовательности к сумме }
Sum := Sum + X_next;

{ Готовимся к следующему проходу по циклу }
X_minus_3 := X_minus_2;
X_minus_2 := X_minus_1;
X_minus_1 := X_next;
end;

writeln ('Сумма первых ', K, ' членов ряда равна: ', iSum);

end.

Хыиуду
14.03.2007, 10:17
Да, здесь начинаешь ценить умение Питона работать с любыми по длине числами :)
Вот последовательность:
1
1
1
5
25
153
1209
13589
307881
19512737
4398489361
6060384084141
85905351169635825
26657737592601886182881
520619822837068305690957031089
2290042317610384510350413867880110352533
13878546622736380460988534833405532160494316077311 977
11922414256837079417067458880984428216141300629175 32076065348050638361
31782459072994995475792700656896763029935442500247 180740797212373906026995431545893896726713
16546578211909032185463327908253767911178062576579 65837483716183892051397378883642079244991727444242 5752823939166044731845
А вот сумма:
16546578211909032185463327908285550370251057572055 45226773548428565840500158159443864657205044424913 5657797722312995020328

FreeLifeStyler
14.03.2007, 20:27
http://thenuclearworldwar.com/usa.html



Используется паскаль, хотя тут вроде и так разобрались.
ОГРОМНОЕ СПАСИБО за решение!!!! Буду учиться =).