2009-12-12 7 views
-1

s'il vous plaît aider à imprimer série ainsi que la somme des séries comme 1 * 3-3 * 5 + 5 * 7 jusqu'à n termes j'ai utilisé le code comme ceci dans phpsomme de la série 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(); 

juste que j'ai testé 2 fois

+7

Étape 1: formatez votre code pour qu'il soit lisible. Étape 2: Dites-nous quelle langue c'est. Étape 3: N'utilisez pas une fonction membre quand une fonction non-membre suffira. –

+0

Est-ce que ce sont les devoirs? –

+2

Y a-t-il une question? – Ken

Répondre

5

Ceci est probablement devoir, mais ici va de toute façon. J'espère que vous apprenez quelque chose de cela.

Le code ci-dessus est horrible. Trop compliqué pour rien ... Voici une version très simple pour vous. Je ne sais pas dans quelle langue cela se passe, mais je ferai quelque chose de similaire pour vous ... Allez chercher un livre sur la programmation, ce sera un investissement judicieux de votre temps.

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

Espérons que cela aide ... Vous avez probablement l'idée avec ça.

+0

merci de résoudre mon problème – Rajanikant

+1

Vous vous rendez compte qu'il a probablement copié/collé cette réponse sans la lire ou la comprendre? –

+0

Espérons pas pour son propre bien ... –

5

Je préfère la fonction récursive et de cette façon vous pouvez 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

Excellent! mod +1 funny :) –

1

Ou, utilisez les touches suivantes pour calculer les n premiers termes de votre série. Désolé n'a pas compris comment faire pour afficher correctement LaTeX, peut-être quelqu'un peut le modifier pour moi, mais si vous le faites s'il vous plaît laissez un commentaire avec des instructions s'il vous plaît!

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

ou, comme produit par la merveilleuse EquationSheet.com:

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

+2

J'espère que vous trouverez ce site aussi utile que moi, Mark. Collez simplement votre LaTeX, copiez l'URL de l'image générée et ajoutez-la à votre publication SO en tant qu'image. Des trucs géniaux. – duffymo

8

Avec quelques opérations simples, on peut trouver une formule pour la somme S. Si n est pair (somme se) ajouter des paires de termes rendements

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

Les termes entre parenthèses peut être divisé et en résumé:

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

Si n est impair (somme donc) le dernier terme doit être ajouté Se:

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

La mise en œuvre en C:

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

Faire des calculs sur papier avant de vous lancer dans des tonnes de boucles: c'est une véritable optimisation! – siukurnin