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.