Re: For Loop and Array related
- To: mathgroup at smc.vnet.net
- Subject: [mg58002] Re: For Loop and Array related
- From: "Mariusz Jankowski" <mjankowski at usm.maine.edu>
- Date: Thu, 16 Jun 2005 05:36:00 -0400 (EDT)
- Organization: University of Southern Maine
- References: <d8oucl$t6q$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Strange indeed! However, the following gives a consistent total; in the body
of the loop assign Random to a temporary variable
n = Random[Integer,{1,100}];
Lattice[[n]]++
Also, the Do-loop construct is faster than For, ... and simpler, and if you
need more speed use function Compile.
Mariusz
>>> mchangun at gmail.com<mchangun at gmail.com> 06/15/05 6:03 AM >>>
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.