Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: For Loop and Array related

  • To: mathgroup at smc.vnet.net
  • Subject: [mg58032] Re: [mg57971] For Loop and Array related
  • From: "Koffijberg, H." <H.Koffijberg at umcutrecht.nl>
  • Date: Thu, 16 Jun 2005 05:38:07 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

While I've no idea exactly why your code fails (although i = 16000
should be i <= 16000, but that's not the problem) I found that 
assigning the random integer value to a variable solves this 
problem. Using the code:

Lattice = Table[0, {n, 100}];
For[i = 1, i <= 16000, i++, r = Random[Integer, {1, 100}]; Lattice[[r]]++];

Total[Lattice] always returns exactly 16000. I've programmed in C++ a lot 
but I guess this is not a Mathematica syntax problem but some internal 
Mathematica issue. Anybody else knows what's going on here ?

Best regards,
Erik Koffijberg.




-----Original Message-----
From: mchangun at gmail.com [mailto:mchangun at gmail.com]
To: mathgroup at smc.vnet.net
Subject: [mg58032] [mg57971] For Loop and Array related


Hi All,

I have an array with 100 elements, all set to zero initially.  Then I
want to randomly choose one element and increase its value by one, and
repeat this 16000 times. Here is my code:

Lattice = Table[0, {n, 100}];
For[i = 1, i = 16000, i++, Lattice[[Random[Integer, {1, 100}]]]++]

So now if I add all the elements in the list Lattice together, I should
get 16000 (I use Total[Lattice] to get the sum of the list).  But this
doesn't happen, and strangely, each time I run this, the sum of the
list is different!  What am I doing wrong?

Also I'm aware that a lot of Mathematica newbies try and write code
like it were C++ and I think i've fallen into this trap as well.  So is
there a different (more Mathematica) way which I can implement the
above?

Thanks in advanced.


  • Prev by Date: Re: For Loop and Array related
  • Next by Date: Re: How to rotate a PolarPlot?
  • Previous by thread: Re: For Loop and Array related
  • Next by thread: Re: For Loop and Array related