2009-12-12 4 views
-1

, пожалуйста, помогите печатать серию, а также сумму серий, подобных 1 * 3-3 * 5 + 5 * 7 до n терминов. Я использовал код, подобный этому, в PHPСумма серии 1 * 3-3 * 5 + 5 * 7

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 раза

+7

Шаг 1: Отформатируйте свой код так, чтобы он был доступен для чтения. Шаг 2. Расскажите, что это за язык. Шаг 3: Не используйте функцию-член, если недостаточно функции-члена. –

+0

Это домашнее задание? –

+2

Возникли вопросы? – Ken

ответ

5

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

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

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; 
} 

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

+0

спасибо решить мою проблему – Rajanikant

+1

Вы понимаете, что он, вероятно, просто копировал/вставлял этот ответ, не читая его или не понимая? –

+0

Надеюсь не ради него ... – 2009-12-14 08:37:15

5

Я предпочитаю рекурсивную функцию и таким образом вы можете StackOverflow (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); 
    } 
} 
+0

Отлично! mod +1 funny :) – 2009-12-12 05:33:17

1

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

\ гидроразрыва {1} {2} \ влево (-4 (-1)^пп^2-4 (-1)^п п + (- 1)^п-1 \ справа)

Или, как порожденная замечательная EquationSheet.com:

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

+2

Надеюсь, вы найдете этот сайт полезным, как я, Марк. Просто вставьте в свой LaTeX, скопируйте URL-адрес сгенерированного изображения и добавьте его в свою публикацию SO как изображение. Блестящий материал. – duffymo

8

с помощью нескольких простых операций можно найти формулу для суммы S. Если п четно (сумма 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) 

Если п нечетно (сумма 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; 
} 
+1

Выполнение некоторых математических на бумаге, прежде чем спешить, чтобы реализовать тонны петель: это реальная оптимизация! – siukurnin

Смежные вопросы