Сумма серии 1*3-3*5+5*7

Пожалуйста, помогите напечатать серию, а также сумму серий, как 1*3-3*5+5*7 до n терминов, я использовал такой код в php

class series {
    function ser(){
        $i = 0;
        $k = 3;
        $m = 0;

        for($j = 1; $j < 3; $j++) {
            if($j % 2 == 0 ) {
                $m = $i + ($i * $k);
            } else {
                $m=$m-($i*$k);

            }
        }

        //$m = $m + $i;
        echo "$m";
    }
}

$se = new series();
$se->ser();

Просто я проверил 2 раза

4 ответа

С помощью нескольких простых операций можно найти формулу для суммы S. Если n четное (сумма Se), добавление пары слагаемых приводит к

 Se = (1*3 - 3*5) + (5*7 - 7*9) + (9*11 - 11*13) ...
 Se = -4*(  3 + 7 + 11 + ...  )

Термины в скобках можно разделить и суммировать:

 Se = -4*( 1+2 + 3+4 + 5+6 + ...  )
 Se = -4*( n*(n+1)/2 )
 Se = -2*n*(n+1)

Если n нечетно (сумма So), последний член должен быть добавлен к Se:

 So = Se + 4*n*n-1
 So = +2*n*(n+1) - 1

Реализация в C:

int series ( unsigned int n )
{
  if ( n%2 == 0 )
    return -2*n*(n+1);
  else
    return +2*n*(n+1) - 1;
}

Я предпочитаю рекурсивную функцию, и таким образом вы можете использовать stackru (woot!):):

public static int serie(int n){
    if(n<1){
        return 0;
    }else{
        return (n%2==0?-1:1)*(4*n*n-1)+serie(n-1);
    }
}

Это, вероятно, домашнее задание, но все равно идет. Надеюсь, вы чему-то научитесь из этого.

Код выше ужасен. Слишком сложно ни за что... Вот очень простая версия для вас. Я понятия не имею, на каком языке это написано, но я сделаю для вас нечто подобное... Пойдите и возьмите книгу по программированию, это будет мудрым вложением вашего времени.

function my_sum(int $count) {
    $result = 0;
    $sign = 1;
    for ($i=1; $i<=$count; $i++) {
        $result = $result + $sign * (2*$i-1) * (2*$i+1);
        $sign = - $sign;
    }
    return $result;
}

Надеюсь, это поможет... Вы, наверное, поняли это.

Или используйте следующее, чтобы вычислить первые n членов вашей серии. Извините, так и не выяснили, как заставить SO отображать LaTeX должным образом, возможно, кто-то может отредактировать его для меня, но если вы сделаете это, пожалуйста, оставьте комментарий с инструкциями, пожалуйста!

\ frac {1} {2} \ left (-4 (-1) ^ nn ^ 2-4 (-1) ^ n n + (- 1) ^ n-1 \ right)

Или, как сгенерировано замечательным EquationSheet.com:

http://www.equationsheet.com/latexrender/pictures/6140ef506f6900c756703d4422349361.gif

Другие вопросы по тегам