MathGroup Archive 1998

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Help please: Summing a list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg13498] Re: [mg13480] Help please: Summing a list
  • From: BobHanlon at aol.com
  • Date: Fri, 31 Jul 1998 04:33:16 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

Rob,

m = 110; P = Table[6, {x, 0, m}]; P[[0]]

List

Note that your definition has m+1 (i.e., 111) entries in P and that the
first entry is P[[1]], not P[[0]].  P[[0]] is the Head of P, i.e.,
List.

To define PP as a function without memory:

Clear[PP]; 
PP[(i_Integer)?Positive /; i <= Length[P]] := 
	Sum[P[[n]], {n, i}]; 
{PP[0], PP[1], PP[10], PP[m + 1], PP[m + 2]} ?PP

{PP[0], 6, 60, 666, PP[112]}

"Global`PP"

PP[(i_Integer)?Positive /; i <= Length[P]] := Sum[P[[n]], {n, i}]

You could also define PP as

Clear[PP]; 
PP[(i_Integer)?Positive /; i <= Length[P]] := 
	Plus @@ Take[P, i]; 
{PP[0], PP[1], PP[10], PP[m + 1], PP[m + 2]} ?PP

{PP[0], 6, 60, 666, PP[112]}

"Global`PP"

PP[(i_Integer)?Positive /; i <= Length[P]] := Plus @@ Take[P, i]

To define PP as a function with memory:

Clear[PP]; 
PP[(i_Integer)?Positive /; i <= Length[P]] := 
	PP[i] = Sum[P[[n]], {n, i}]; 
{PP[0], PP[1], PP[10], PP[m + 1], PP[m + 2]} ?PP

{PP[0], 6, 60, 666, PP[112]}

"Global`PP"

PP[1] = 6
 
PP[10] = 60
 
PP[111] = 666
 
PP[(i_Integer)?Positive /; i <= Length[P]] := PP[i] = Sum[P[[n]], {n,
i}]

To define PP as an array and assign values only when called:

Clear[PP, elemPP]; 
PP = Array[elemPP, Length[P]]; 
elemPP[(i_Integer)?Positive /; i <= Length[P]] := 
	elemPP[i] = Sum[P[[n]], {n, i}]; 
{PP[[0]], PP[[1]], PP[[10]], PP[[m + 1]]} ?PP

{List, 6, 60, 666}

"Global`PP"

PP = {elemPP[1], elemPP[2], elemPP[3], ..., elemPP[110], elemPP[111]}
 (* middle entries deleted *)

To define PP as an array and assign all values:

Clear[PP, elemPP]; 
PP = Array[elemPP, Length[P]]; 
Do[PP[[i]] = Sum[P[[n]], {n, i}], {i, Length[P]}];  {PP[[0]], PP[[1]],
PP[[10]], PP[[m + 1]]} ?PP

{List, 6, 60, 666}

"Global`PP"

PP = {6, 12, 18, ...,  660, 666} 
(* middle entries deleted *)

Bob Hanlon

In a message dated 7/26/98 5:51:08 AM, robpetersonSPAMME at iname.com
wrote:

>I make a list of numbers, eg:
>
>P=Table[6,{x,0,110}]; (I have a more interesting list to use later if I
>get this working)
>
>Now I want to make another list PP in which each entry PP[[i]] is the
>sum of P's first i entries.  I try
>
>PP[[i]]:=Sum[P[[n]],{n,0,i}];
>
>At the definition, I get the following error: Part::"pspec": 
>    "Part specification \!\(n\) is neither an integer nor a list of
>integers."
>
>I don't know how to make n an integer.  In the definition of Sum[], it
>seems n is an integer unless you add a forth parameter "di" in the
>specification list such as 
>Sum[f, {i, imin, imax, di}]
>
>Can anyone help me to generate this second list?


  • Prev by Date: Re: Packages Search Path: how to set it?
  • Next by Date: Re: discrete math, how many zeroes in 125!
  • Previous by thread: Re: Help please: Summing a list
  • Next by thread: Re: Help please: Summing a list