Впаскале: 1/1! +1/3! -1/ в общем составлял для отдельного числа факториал: factrl : = 1; for i : = 1 to 5 do begin factrl : = factrl * (i) end; но как автоматизировать процесс, чтобы суммировало факториалы с повышением на 2
Программа для вычисления суммы 1/1!+1/3!+1/5!...+1/(2*n-1)! var n,i,f:integer; s:real; begin readln(n); s:=1; f:=1; for i:=1 to n-1 do begin f:=f*(2*i)*(2*i+1); s:=s+1/f; end; writeln('s = ',s); end.
Это называется число перестановок для трёх предметов. Вычисляется через факториал числа предметов (произведение всех целых чисел от единицы до указанного):
ответ: рисунки можно повесить шестью
Почему так вычисляется, несложно понять, если перебрать варианты размещения рисунков: 1) на первое место мы можем поставить один из трёх рисунков (то есть тут возникает три варианта) 2) далее, в каждом из этих трёх вариантах, у нас останутся по два рисунка- значит, на второе место мы можем поставить либо один из них, либо другой (то есть, на этом этапе, каждый из трёх начальных вариантов размещения разветвляется на два варианта -получается всего 3*2 = 6 вариантов размещения 3) ну а далее, остаётся всего один рисунок -значит, на третьем месте получается только один вариант размещения последнего рисунка
var n,i,f:integer; s:real;
begin
readln(n);
s:=1;
f:=1;
for i:=1 to n-1 do
begin
f:=f*(2*i)*(2*i+1);
s:=s+1/f;
end;
writeln('s = ',s);
end.
Пример:
4
s = 1.175198412698413e+00